libblockdev icon indicating copy to clipboard operation
libblockdev copied to clipboard

fs: basic bcachefs support

Open jelly opened this issue 1 year ago • 6 comments

I was interested in learning a bit more about libblockdev/udisks so I've looked into adding bcachefs support to libblockdev (although it is not merged yet in the kernel). So far it only supports mkfs/get_info, some notable things which are missing are:

  • [ ] tests
  • [ ] get_fs_size support and similar functions.
  • [ ] set/get label
  • [ ] repair
  • [ ] resize
  • [ ] set uuid (if possible)

Like btrfs this likely needs a specialized plugin for volume's, adding two devices together and other interesting features. I don't for see myself writing support for that. But I would be happy to implement enough to get basic support on the same level as other filesystems.

FYI: I can understand that the lack of bcachefs support in mainline and userspace tooling in CI blocks this PR.

jelly avatar Sep 25 '23 15:09 jelly

Can one of the admins verify this patch?

StorageGhoul avatar Sep 25 '23 15:09 StorageGhoul

Like btrfs this likely needs a specialized plugin for volume's, adding two devices together and other interesting features. I don't for see myself writing support for that. But I would be happy to implement enough to get basic support on the same level as other filesystems.

Important question for this is whether people will want to use bcachefs as "simple" filesystem. We originally didn't have support for btrfs as a simple single device filesystem, just as a multi-device volume manager and we added it as a filesystem because people were asking for it. I am not sure if this will be the same for bcachefs as well. I am not against adding it, but I'd like to avoid supporting something for years that might not be used as much. But it looks simple enough for now.

I can understand that the lack of bcachefs support in mainline and userspace tooling in CI blocks this PR.

I guess we could realistically expect that bcachefs will be available in next kernel release, right? So it might be available in Fedora 40. My only concern right now is stability of the userspace tools "API", we can expect changes in the output and that's always tricky to support.

vojtechtrefny avatar Sep 25 '23 16:09 vojtechtrefny

Like btrfs this likely needs a specialized plugin for volume's, adding two devices together and other interesting features. I don't for see myself writing support for that. But I would be happy to implement enough to get basic support on the same level as other filesystems.

Important question for this is whether people will want to use bcachefs as "simple" filesystem. We originally didn't have support for btrfs as a simple single device filesystem, just as a multi-device volume manager and we added it as a filesystem because people were asking for it. I am not sure if this will be the same for bcachefs as well. I am not against adding it, but I'd like to avoid supporting something for years that might not be used as much. But it looks simple enough for now.

Half supporting something might be worse then lacking support. As I most likely won't be pushing this a lot forward, mostly did it as a learning exercise. So I'll close it for now, anyone who is deeply invested in bcachefs can pick up this PR and push it to the finishing line.

I can understand that the lack of bcachefs support in mainline and userspace tooling in CI blocks this PR.

I guess we could realistically expect that bcachefs will be available in next kernel release, right? So it might be available in Fedora 40. My only concern right now is stability of the userspace tools "API", we can expect changes in the output and that's always tricky to support.

It's now in linux-next, I have no idea when it ends up in mainline. It also depends on Fedora packaging bcachefs-tools which has some Rust so that might not be super trivial.

jelly avatar Sep 26 '23 08:09 jelly

Now it's the time: https://www.phoronix.com/news/Bcachefs-Merged-Linux-6.7

bcachefs-tools Fedora review: https://bugzilla.redhat.com/show_bug.cgi?id=2247350

tbzatek avatar Nov 01 '23 11:11 tbzatek

6.7 be in rawhide soon and bcachefs-tools is packaged. I'll rebase this PR somewhere this week

jelly avatar Jan 15 '24 17:01 jelly