Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Proposal: Use BTRFS as default and only filesystem for data pools #101

Closed
votdev opened this issue May 9, 2018 · 273 comments
Closed

Proposal: Use BTRFS as default and only filesystem for data pools #101

votdev opened this issue May 9, 2018 · 273 comments

Comments

@votdev
Copy link
Member

votdev commented May 9, 2018

Shared folders will be implemented via subvolumes. Thus it is easy to create snapshots with the ability to rollback to a previous state.

If this feature is implemented as planned, there will be no migration path from 4.x because EVERYTHING is based on the BTRFS features then. Maybe we can implement a backend layer that allows the use of other filesystems with equal features like ZFS.

Removable devices won't be supported the way it is done in 4.x, too. The only way to import data from external devices will be the openmediavault-usbbackup plugin then. The filesystem management UI will be removed completely and replaced by a pool management UI to create/edit/resize/shrink/convert and delete pools based on BTRFS (or ZFS via plugin). The UI to manage these pools is limited to the required configuration options, e.g. creating a pool will not show ALL possible options that are available for BTRFS, instead only the most used options are displayed. Special scenarious must be done manually via CLI by power users. Note, OMV is no UI to manage BTRFS (ZFS) pools.

The MDADM management UI (Software RAID) will be removed and LVM plugin will be discontinued because it does not make sense to use BTRFS on top of MDADM and LVM devices.

Other benefits:

  • It will be possible to implement quota per shared folders which is currently not possible, or at least for the volume that contains the shared folder.
  • It will be possible to support the ability to enable/disable execution permission per shared folders. Now this is only possible via custom env variables per volume.

Plugins that are using shared folders are not affected by these plans because the shared folder handling will not be changed at all.

@votdev votdev self-assigned this May 9, 2018
@votdev votdev added this to To do in 5.x May 9, 2018
@ryecoaaron
Copy link
Contributor

Please use btrfs for the OS drive as well.

@votdev votdev changed the title Use BTRFS as default filesystem Use BTRFS as default and only filesystem for data pools May 9, 2018
@ryecoaaron
Copy link
Contributor

I like this idea especially if you keep zfs as a possibility when designing it.

@davidh2k
Copy link

davidh2k commented May 9, 2018

Does that mean that you even consider dropping support for using ext4/xfs/... as data drives?

@votdev
Copy link
Member Author

votdev commented May 9, 2018

@davidh2k Yes, that's true. As mentioned above, the shared folder management will be completely focused on BTRFS features. Keeping support for other filesystems that do not have these features will make the UI and backend more complex. The shared folder database structure and handling will not be touched, so it might be possible to bring back the old functionality via plugin.

@ryecoaaron
Copy link
Contributor

@votdev database structure will not be touched? Are you going to stay with xml?

@votdev
Copy link
Member Author

votdev commented May 9, 2018

@ryecoaaron Yes, don't want to change too much things in one step. And really, i don't have a good idea what to use to replace it. Until now it has done a good job.

@ryecoaaron
Copy link
Contributor

@votdev I agree and it is easy to fix. I don't think there is much else out there that has as good a selection of tools that can be used from all of the languages that OMV uses.

@adaxi
Copy link

adaxi commented May 9, 2018

BTRFS has issues with RAID56, the developers do not recommend using this kind of RAID.

I am currently using RAID6 (using mdadm) since it is the most cost effective solution in my case.

If the plan to is support only BTRFS, I don't see using in openmediavault in the future.

@ryecoaaron
Copy link
Contributor

BTRFS has issues with RAID56, the developers do not recommend using this kind of RAID.

Considering OMV 5.x is probably a year or more away and a patch has been developed (possibly included in 4.16 kernel), I don't see this as an issue. Volker mentions that zfs will also be possible via plugin and possibly other filesystems. I could also see a plugin for xfs once its CoW features are added and bcachefs once it is in the kernel.

@adaxi
Copy link

adaxi commented May 9, 2018

If RAID56 is mature by the release of OMV 5.x, then for sure I don't see any reason not to use it. I am just voicing my concerns since this issue has been dragging for quite some time.

@ryecoaaron
Copy link
Contributor

I agree but the other point is that the web interface won't allow raid5/6 creation. So, most users won't be using raid5/6 and btrfs is very stable in those cases.

@subzero79
Copy link
Contributor

LUKS should be part of openmediavault also. Is built in kernel and has very good integration with systemd.

@modelrockettier
Copy link
Contributor

I first used Rockstor on my NAS before I was bit by BTRFS stability and data integrity issues a couple years ago.

That's the main reason I'm using OpenMediaVault today (since it uses MDADM + LVM + EXT4/XFS instead of BTRFS).

Even though that happened a couple years ago, it will be quite a while longer before I will be able to trust BTRFS with my data again. (Although I'm quite hopeful about bcachefs)

So while I understand the decision, I am a little disappointed.

@DisasteR
Copy link

Btrfs dont support bloc device that's a bad move for me...

@ryecoaaron
Copy link
Contributor

Btrfs dont support bloc device that's a bad move for me...

In what way? You can put a btrfs filesystem on a block device. Not sure what you mean.

@Ansem93
Copy link

Ansem93 commented May 16, 2018

I don't have any problem with using btrfs, but what about eeryone that have ZFS or EXT4 partition? There is any way to convert an ext4 RAID1 into a RAID1/mirror btrfs without losing everything??

@subzero79
Copy link
Contributor

Ext4 conversions are not recommended any more with kernels higher than 4.x, it was possible and worked ok. Guess people will have to use their backups to reformat. Zfs doesn’t have the door closed

@Ansem93
Copy link

Ansem93 commented May 16, 2018

Understood!
Just a request: if the support to ext3/4 will be dropped, can you please make some giant post on forum and blog? I don't think I'm the only one with OMV4 and an ext4 partition with data.

I think it would be better to warn everyone about the big change as soon as it 100% confirmed so that they have time to plan how to go from ext4 to btrfs. Hope that ZFS will still have support (maybe natively instead that with a plug-in?).

@danielbibit
Copy link

Does that mean that you even consider dropping support for using ext4/xfs/... as data drives?

@davidh2k Yes, that's true. As mentioned above, the shared folder management will be completely focused on BTRFS features. Keeping support for other filesystems that do not have these features will make the UI and backend more complex. The shared folder database structure and handling will not be touched, so it might be possible to bring back the old functionality via plugin.

In this case, how is this going to affect snapraid users ?

I have a small mdadm raid1 array that I can convert to BTRFS without a problem, actually, is going to be really nice to have all the goodies that BTRFS has on the GUI, and it seems pretty stable in RAID1.

But I also have a huge pool with mergerFS + SnapRAID, and I don't plan to change this setup anytime soon. Will OMV5 support such scenario with ease ?

@ryecoaaron
Copy link
Contributor

mergerfs and snapraid work on top of filesystems. So, these should still work if the filesystem on each drive is supported. But that isn't an issue for OMV. That is an issue for me to get those plugins to work on OMV 5.

@alpapad
Copy link

alpapad commented May 19, 2018

Can we get a decent btrfs plugin (like the zfs one) for 4.0?

@DisasteR
Copy link

@ryecoaaron you cannot create bloc device on btrfs. Like logical volumes on lvm.

@ryecoaaron
Copy link
Contributor

@DisasteR I am well aware of that but why would you need to? btrfs does pretty much everything that ext4 on lvm does since it allows resizing, snapshots, and subvolumes.

@DisasteR
Copy link

DisasteR commented May 23, 2018

@ryecoaaron i'm using lvm to present block locally or over iscsii to be used as vm disks.

@github-actions github-actions bot added the stale label Oct 29, 2022
@github-actions
Copy link

This issue has been automatically closed because there has
been no activity for 90 days. We are sorry that we haven't been
able to prioritize it yet. Please feel free to reopen this
issue or create a new one. Thank you!

@votdev votdev added backlog and removed stale labels Nov 28, 2022
@votdev votdev reopened this Nov 28, 2022
@tmihai20
Copy link

tmihai20 commented Feb 7, 2023

Hello. I have been following this since it was proposed for OMV 6.x. As someone else already said here and in another issue, there is no issue against having BTRFS specific features or usage, but against having to use BTRFS exclusively for data. I kind of skipped 6.x (not necessarily because of this issue) and I like what I am reading about upcoming 7.x features. What is the plan right now?

@votdev
Copy link
Member Author

votdev commented Feb 7, 2023

What is the plan right now?

With #1479 and #1480 BTRFS support has been extended in OMV. Shared folders that are on a BTRFS volume will support snapshots now. Other file systems will not be supported for shared folder snapshots because they are more complicated than BTRFS (ZFS is completely out because of the license issues). Shared folders can still be created on every file system that is supported by OMV.

@tmihai20
Copy link

tmihai20 commented Feb 7, 2023

Other file systems will not be supported for shared folder snapshots because they are more complicated than BTRFS

This is perfectly fine in my book. Whomever wants to have folder snapshots can use BTRFS.

@MeisterHeinz
Copy link

With #1479 and #1480 BTRFS support has been extended in OMV.

Great to hear to finally get snapshots in OMV, thank you! I was using OMV for a very long time in the past but then switched to Synology because of the snapshots missing. Now my device is running out of warranty and I planned to come back to OMV - thinking it had already implemented snapshots on BTRFS. Can you give us a hint when this will be implmented in the stable repository?

@votdev
Copy link
Member Author

votdev commented Feb 7, 2023

Can you give us a hint when this will be implmented in the stable repository?

Soon.

@molnarti
Copy link

molnarti commented Feb 8, 2023

Soon, meaning still in the 6.x branch? I think there will be a 7.x release sometime in the second half of the year with the new Debian release

@votdev
Copy link
Member Author

votdev commented Feb 8, 2023

Soon, meaning still in the 6.x branch? I think there will be a 7.x release sometime in the second half of the year with the new Debian release

No, 6.3.0.

@MeisterHeinz
Copy link

Soon.

Thank you, this was very soon. :-) Just upgraded to 6.3.0 and the snapshot option appeared in my BTRFS shared foldes.
But two questions: After sucessfully creating a snapshot, I tried the share button but this happens:

"500 - Internal Server Error
privileges: The value "" is not an object."

Second question: is it normal behaviour that these snapshots do not appear in CIFS shares under "previous versions" in Windows?

@votdev
Copy link
Member Author

votdev commented Feb 9, 2023

Soon.

But two questions: After sucessfully creating a snapshot, I tried the share button but this happens:

"500 - Internal Server Error privileges: The value "" is not an object."

Fixed with 3191ea4

Second question: is it normal behaviour that these snapshots do not appear in CIFS shares under "previous versions" in Windows?

Snapshots are only for backup purpose. There is no intention to integrate them somehow into SMB (if that is possible). Maybe i'll have a look into it, looks interesting for Windows users.

@neheb
Copy link
Contributor

neheb commented Feb 9, 2023

That would be lovely (Windows user).

@MeisterHeinz
Copy link

Fixed with 3191ea4

Thank you, will report if its works as soon as the update is available.

Snapshots are only for backup purpose. There is no intention to integrate them somehow into SMB (if that is possible). Maybe i'll have a look into it, looks interesting for Windows users.

Well, from the sight of an it specialist, snapshots are not backups but snapshots can be used as a base for making backups: Creating a snapshot for "quiescing" the file system and than backing up that snapshotted filesystem (because of the nature of a snapshot there will be no changes in the filesystem during the backup process). Thank you for that newly opened issue 1490 - yes, indeed for windows users it would be lovely like neheb wrote.

@votdev
Copy link
Member Author

votdev commented Feb 10, 2023

Fixed with 3191ea4

Thank you, will report if its works as soon as the update is available.

Snapshots are only for backup purpose. There is no intention to integrate them somehow into SMB (if that is possible). Maybe i'll have a look into it, looks interesting for Windows users.

Well, from the sight of an it specialist, snapshots are not backups but snapshots can be used as a base for making backups: Creating a snapshot for "quiescing" the file system and than backing up that snapshotted filesystem (because of the nature of a snapshot there will be no changes in the filesystem during the backup process). Thank you for that newly opened issue 1490 - yes, indeed for windows users it would be lovely like neheb wrote.

OK, backup was the wrong wording. For me a snapshot is a tool for archiving a current state to be able to rollback if something went terribly wrong.

@ryecoaaron
Copy link
Contributor

I will admit that "Previous versions" support via snapshots on the cifs shares (on a netapp that takes snapshots every 15 mins) is very popular at my job.

@HannesJo0139
Copy link

HannesJo0139 commented Feb 10, 2023

Snapshots are only for backup purpose. There is no intention to integrate them somehow into SMB (if that is possible). Maybe i'll have a look into it, looks interesting for Windows users.

On my nas, every user has a samba share "user" and a readonly samba share "user.snaps". It is the easiest way to enable everyone to rollback his files himself if necessary. Works like a charm for years. Also snaps are created and deleted automatically. Is that possible using the new built-in snaps?

@molnarti
Copy link

it seems snapshots are not supported for mergerfs even if the underlying FS is btrfs. is there a solution planned for this scenario?

@neheb
Copy link
Contributor

neheb commented Feb 10, 2023

@votdev
Copy link
Member Author

votdev commented Feb 11, 2023

it seems snapshots are not supported for mergerfs even if the underlying FS is btrfs. is there a solution planned for this scenario?

No. OMV will only support BTRFS.

@neheb
Copy link
Contributor

neheb commented Feb 11, 2023

@votdev does that mean mdadm support will go away? I currently plan to migrate from my btrfs raid5 setup to mdadm+raid5 for performance reasons (mdadm supports the mv_xor driver to accelerate parity calculations whereas btrfs does not).

@votdev
Copy link
Member Author

votdev commented Feb 11, 2023

@votdev does that mean mdadm support will go away? I currently plan to migrate from my btrfs raid5 setup to mdadm+raid5 for performance reasons (mdadm supports the mv_xor driver to accelerate parity calculations whereas btrfs does not).

Software RAID will be still supported, it does not change anything. OMV will support other file systems like it does in the past, but special features like snapshots are only supported by BTRFS. Regarding MDADM, it will be separated into a plugin someday.

@neheb
Copy link
Contributor

neheb commented Feb 13, 2023

alright. creating my mdadm array right now. nice to see interrupts:

 56:    5473125          0     GIC-0  54 Level     f1060800.xor
 57:    9674358          0     GIC-0  97 Level     f1060900.xor

I hope btrfs will get this ability soon.

@votdev votdev added this to Done in 6.x Feb 14, 2023
@votdev votdev removed this from Backlog in 7.x Feb 14, 2023
@votdev votdev closed this as completed Feb 14, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
6.x
  
Done
Development

No branches or pull requests