0. OK, not sure this is informative: 2020-11-26 19:40:01.726 7fd10d09b700 20 bluestore(/var/lib/ceph/osd/ceph-252) statfs store_statfs(0x18391370000/0x227b00000/0x74702800000, data 0x5c0ef8b8393/0x5c149980000, compress 0x0/0x0/0x0, omap 0x9163, meta 0x227af6e9d) 2020-11-26 19:40:02.078 7fd0fe87e700 20 bluestore(/var/lib/ceph/osd/ceph-252) pool_statfs pool 68 2020-11-26 19:40:02.078 7fd0fe87e700 10 bluestore(/var/lib/ceph/osd/ceph-252) pool_statfsstore_statfs(0x0/0x0/0x0, data 0x5c090850000/0x5c0e7fa0000, compress 0x0/0x0/0x0, omap 0x0, meta 0x0) 2020-11-26 19:40:02.078 7fd0fe87e700 20 bluestore(/var/lib/ceph/osd/ceph-252) pool_statfs pool 72 2020-11-26 19:40:02.078 7fd0fe87e700 10 bluestore(/var/lib/ceph/osd/ceph-252) pool_statfsstore_statfs(0x0/0x0/0x0, data 0x4cc00018/0x4cc10000, compress 0x0/0x0/0x0, omap 0x0, meta 0x0) 2020-11-26 19:40:02.768 7fd10d09b700 20 bluestore(/var/lib/ceph/osd/ceph-252) statfs store_statfs(0x18391370000/0x227b00000/0x74702800000, data 0x5c0ef8b8393/0x5c149980000, compress 0x0/0x0/0x0, omap 0x9163, meta 0x227af6e9d) 2020-11-26 19:40:03.728 7fd10d09b700 20 bluestore(/var/lib/ceph/osd/ceph-252) statfs store_statfs(0x18391370000/0x227b00000/0x74702800000, data 0x5c0ef8b8393/0x5c149980000, compress 0x0/0x0/0x0, omap 0x9163, meta 0x227af6e9d)
1. Anyway, I found something weird... I created a new 1-PG pool "foo" on a different cluster and wrote some data to it. The stored and used are equal. Thu 26 Nov 19:26:58 CET 2020 RAW STORAGE: CLASS SIZE AVAIL USED RAW USED %RAW USED hdd 5.5 PiB 1.2 PiB 4.3 PiB 4.3 PiB 78.31 TOTAL 5.5 PiB 1.2 PiB 4.3 PiB 4.3 PiB 78.31 POOLS: POOL ID STORED OBJECTS USED %USED MAX AVAIL public 68 2.9 PiB 143.54M 2.9 PiB 78.49 538 TiB test 71 29 MiB 6.56k 29 MiB 0 269 TiB foo 72 1.2 GiB 308 1.2 GiB 0 269 TiB But I tried restarting the relevant three OSDs, and the bytes_used are temporarily reported correctly: Thu 26 Nov 19:27:00 CET 2020 RAW STORAGE: CLASS SIZE AVAIL USED RAW USED %RAW USED hdd 5.5 PiB 1.2 PiB 4.3 PiB 4.3 PiB 78.62 TOTAL 5.5 PiB 1.2 PiB 4.3 PiB 4.3 PiB 78.62 POOLS: POOL ID STORED OBJECTS USED %USED MAX AVAIL public 68 2.9 PiB 143.54M 4.3 PiB 84.55 538 TiB test 71 29 MiB 6.56k 1.2 GiB 0 269 TiB foo 72 1.2 GiB 308 3.6 GiB 0 269 TiB But then a few seconds later it's back to used == stored: Thu 26 Nov 19:27:03 CET 2020 RAW STORAGE: CLASS SIZE AVAIL USED RAW USED %RAW USED hdd 5.5 PiB 1.2 PiB 4.3 PiB 4.3 PiB 78.47 TOTAL 5.5 PiB 1.2 PiB 4.3 PiB 4.3 PiB 78.47 POOLS: POOL ID STORED OBJECTS USED %USED MAX AVAIL public 68 2.9 PiB 143.54M 2.9 PiB 78.49 538 TiB test 71 29 MiB 6.56k 29 MiB 0 269 TiB foo 72 1.2 GiB 308 1.2 GiB 0 269 TiB It seems to report the correct stats only when the PG is peering (so some other transition state). I've restarted all three relevant OSDs now -- the stats are reported as stored == used. 2. Another data point -- I found another old cluster that reports stored/used correctly. I have no idea what might be different about that cluster -- we updated it just like the others. Cheers, Dan On Thu, Nov 26, 2020 at 6:22 PM Igor Fedotov <ifedo...@suse.de> wrote: > > For specific BlueStore instance you can learn relevant statfs output by > > setting debug_bluestore to 20 and leaving OSD for 5-10 seconds (or may > be a couple of minutes - don't remember exact statsfs poll period ). > > Then grep osd log for "statfs" and/or "pool_statfs" and get the output > formatted as per the following operator (taken from src/osd/osd_types.cc): > > ostream& operator<<(ostream& out, const store_statfs_t &s) > { > out << std::hex > << "store_statfs(0x" << s.available > << "/0x" << s.internally_reserved > << "/0x" << s.total > << ", data 0x" << s.data_stored > << "/0x" << s.allocated > << ", compress 0x" << s.data_compressed > << "/0x" << s.data_compressed_allocated > << "/0x" << s.data_compressed_original > << ", omap 0x" << s.omap_allocated > << ", meta 0x" << s.internal_metadata > << std::dec > << ")"; > return out; > } > > But honestly I doubt this is BlueStore which reports incorrectly since > it doesn't care about replication. > > It rather looks like lack of stats from some replicas or improper pg > replica factor processing... > > Perhaps legacy vs. new pool what matters... Can you try to create a new > pool at old cluster and fill it with some data (e.g. just a single 64K > object) and check the stats? > > > Thanks, > > Igor > > On 11/26/2020 8:00 PM, Dan van der Ster wrote: > > Hi Igor, > > > > No BLUESTORE_LEGACY_STATFS warning, and > > bluestore_warn_on_legacy_statfs is the default true on this (and all) > > clusters. > > I'm quite sure we did the statfs conversion during one of the recent > > upgrades (I forget which one exactly). > > > > # ceph tell osd.* config get bluestore_warn_on_legacy_statfs | grep -v true > > # > > > > Is there a command to see the statfs reported by an individual OSD ? > > We have a mix of ~year old and recently recreated OSDs, so I could try > > to see if they differ. > > > > Thanks! > > > > Dan > > > > > > On Thu, Nov 26, 2020 at 5:50 PM Igor Fedotov <ifedo...@suse.de> wrote: > >> Hi Dan > >> > >> don't you have BLUESTORE_LEGACY_STATFS alert raised (might be silenced > >> by bluestore_warn_on_legacy_statfs param) for the older cluster? > >> > >> > >> Thanks, > >> > >> Igor > >> > >> > >> On 11/26/2020 7:29 PM, Dan van der Ster wrote: > >>> Hi, > >>> > >>> Depending on which cluster I look at (all running v14.2.11), the > >>> bytes_used is reporting raw space or stored bytes variably. > >>> > >>> Here's a 7 year old cluster: > >>> > >>> # ceph df -f json | jq .pools[0] > >>> { > >>> "name": "volumes", > >>> "id": 4, > >>> "stats": { > >>> "stored": 1229308190855881, > >>> "objects": 294401604, > >>> "kb_used": 1200496280133, > >>> "bytes_used": 1229308190855881, > >>> "percent_used": 0.4401889145374298, > >>> "max_avail": 521125025021952 > >>> } > >>> } > >>> > >>> Note that stored == bytes_used for that pool. (this is a 3x replica pool). > >>> > >>> But here's a newer cluster (installed recently with nautilus) > >>> > >>> # ceph df -f json | jq .pools[0] > >>> { > >>> "name": "volumes", > >>> "id": 1, > >>> "stats": { > >>> "stored": 680977600893041, > >>> "objects": 163155803, > >>> "kb_used": 1995736271829, > >>> "bytes_used": 2043633942351985, > >>> "percent_used": 0.23379847407341003, > >>> "max_avail": 2232457428467712 > >>> } > >>> } > >>> > >>> In the second cluster, bytes_used is 3x stored. > >>> > >>> Does anyone know why these are not reported consistently? > >>> Noticing this just now, I'll update our monitoring to plot stored > >>> rather than bytes_used from now on. > >>> > >>> Thanks! > >>> > >>> Dan > >>> _______________________________________________ > >>> ceph-users mailing list -- ceph-users@ceph.io > >>> To unsubscribe send an email to ceph-users-le...@ceph.io _______________________________________________ ceph-users mailing list -- ceph-users@ceph.io To unsubscribe send an email to ceph-users-le...@ceph.io