osd: fine-grained statistics of logical object space usage
To test this change, we create an image of 5GB and do rbd bench write of 1GB:
./bin/rbd create bar -s 5120 && ./bin/rbd bench --io-type write --io-size 32K --io-total 100M --io-pattern rand rbd/bar
Below is the test result.
Was:
GLOBAL:
SIZE AVAIL RAW USED %RAW USED
30911M 27052M 3859M 12.49
POOLS:
NAME ID USED %USED MAX AVAIL OBJECTS
rbd 0 3191M 26.36 8914M 1174
cephfs_data_a 1 0 0 8914M 0
cephfs_metadata_a 2 2246 0 8914M 21
Now:
GLOBAL:
SIZE AVAIL RAW USED %RAW USED
30911M 27050M 3861M 12.49
POOLS:
NAME ID USED %USED MAX AVAIL OBJECTS
rbd 0 101216k 1.10 8913M 1178
cephfs_data_a 1 0 0 8913M 0
cephfs_metadata_a 2 892 0 8913M 21
E.g., this change can make "osd pool set-quota max_bytes" work nicely.