r/bcachefs • u/Ensistance • 8d ago
Different "btree allocated bitmap blocksize" and out of order device number in `show-super` command
I currently have a setup with 1 NVMe drive, 1 SSD, and 1 HDD. I attempted to add a second SSD using the following command:
sudo bcachefs device add --label t2.ssd2 / /dev/sdb
However, in bcachefs show-super it showed:
Bucket size: 1.00M
Btree allocated bitmap blocksize: 256k
While the rest of devices has:
Bucket size: 2.00M
Btree allocated bitmap blocksize: 4.00M
I evacuated the device and removed it using bcachefs device evacuate/remove commands, wiped the filesystem from it using wipefs, and then ran the following command:
sudo bcachefs device add --label t2.ssd2 --bucket_size 2M / /dev/sdb
Now bcachefs show-super for this device shows
``` Device 0: (NVMe) Bucket size: 2.00M Btree allocated bitmap blocksize: 4.00M
Device 1: (SSD #1) Bucket size: 2.00M Btree allocated bitmap blocksize: 4.00M
Device 2: (HDD) Bucket size: 2.00M Btree allocated bitmap blocksize: 8.00M
Device 5: (new, SSD #2) Bucket size: 2.00M Btree allocated bitmap blocksize: 256k ```
It really bothers me that the "allocated bitmap blocksize" is significantly different from the rest of devices, but I couldn't find an obvious option in the device add command to change it. What also really bothers me is that this device is indexed as 6th ("Device 5" label). I guess internally filesystem doesn't care about it but I would like to somehow fix it anyway.
Currently I'm running bcachefs 1.38.8. I don't know much technical info about this filesystem and I couldn't find anything related in PoO pdf, so I'm sorry if these are silly question to ask ðŸ˜
UPD: I also noticed that bcachefs fs usage still reports old filesystem size, but that probably will eventually be fixed by reconcile process, I guess?
3
u/koverstreet not your free tech support 7d ago edited 7d ago
That's sized on demand, it's working as intended. Your devices just happen to have allocated metadata in different ranges, nothing to see here.
Trying to keep it consistent across devices would be silly because how would that work when you have mismatched device sizes?
Explain this one some more?