About a year ago I switched to ZFS for Proxmox so that I wouldn’t be running technology preview.
Btrfs gave me no issues for years and I even replaced a dying disk with no issues. I use raid 1 for my Proxmox machines. Anyway I moved to ZFS and it has been a less that ideal experience. The separate kernel modules mean that I can’t downgrade the kernel plus the performance on my hardware is abysmal. I get only like 50-100mb/s vs the several hundred I would get with btrfs.
Any reason I shouldn’t go back to btrfs? There seems to be a community fear of btrfs eating data or having unexplainable errors. That is sad to hear as btrfs has had lots of time to mature in the last 8 years. I would never have considered it 5-6 years ago but now it seems like a solid choice.
Anyone else pondering or using btrfs? It seems like a solid choice.
Don’t use btrfs if you need RAID 5 or 6.
The RAID56 feature provides striping and parity over several devices, same as the traditional RAID5/6. There are some implementation and design deficiencies that make it unreliable for some corner cases and the feature should not be used in production, only for evaluation or testing. The power failure safety for metadata with RAID56 is not 100%.
https://btrfs.readthedocs.io/en/latest/btrfs-man5.html#raid56-status-and-recommended-practices
Or run the raid 5 or 6 separately, with hardware raid or mdadm
Even for simple mirroring there’s an argument to be made for running it separately from btrfs using mdadm. You do lose the benefit of btrfs being able to automatically pick the valid copy on localised corruption, but the admin tools are easier to use and more proven in a case of full disk failure, and if you run an encrypted block device you need to encrypt half as much stuff.
I have no problem running it with raid 5/6. The important thing is to have a UPS.
I’ve been running a btrfs storage array with data on raid5 and metadata I believe raid1 for the last 5 or so years and have yet to have a problem because of it. I did unfortunately learn not to fully trust the windows btrfs driver but was fortunately able to restore from backups and redownloading.
I wouldn’t hesitate to set it up again for myself or anybody else, and adding a UPS would be icing on the cake. (I added UPS to my setup this last summer)
I’ve got raid 6 at the base level and LVM for partitioning and ext4 filesystem for a k8s setup. Based on this, btrfs doesn’t provide me with any advantages that I don’t already have at a lower level.
Additionaly, for my system, btrfs uses more bits per file or something such that I was running out of disk space vs ext4. Yeah, I can go buy more disks, but I like to think that I’m running at peak efficiency, using all the bits, with no waste.
btrfs doesn’t provide me with any advantages that I don’t already have at a lower level.
Well yeah, because it’s supposed to replace those lower levels.
Also, BTRFS does provide advantages over ext4, such as snapshots, which I think are fantastic since I can recover if things go sideways. I don’t know what your use-case is, so I don’t know if the features BTRFS provides would be valuable to you.
Generally, if a lower level can do a thing, I prefer to have the lower level do it. It’s not really a reason, just a rule of thumb. I like to think that the lower level is more efficient to do the thing.
I use LVM snapshots to do my backups. I don’t have any other reason for it.
That all being said, I’m using btrfs on one system and if I really like it, I may migrate to it. It does seem a whole lot simpler to have one thing to learn than all the layers.
A bit of topic; am I the only one that pronounces it “butterface”?
No reason not to. Old reputations die hard, but it’s been many many years since I’ve had an issue.
I like also that btrfs is a lot more flexible than ZFS which is pretty strict about the size and number of disks, whereas you can upgrade a btrfs array ad hoc.
I’ll add to avoid RAID5/6 as that is still not considered safe, but you mentioned RAID1 which has no issues.
I’ve been vaguely planning on using btrfs in raid5 for my next storage upgrade. Is it really so bad?
Check status here. It looks like it may be a little better than the past, but I’m not sure I’d trust it.
An alternative approach I use is mergerfs + snapraid + snapraid-btrfs. This isn’t the best idea for a system drive, but if it’s something like a NAS it works well and snapraid-btrfs
doesn’t have the write hole issues that normal snapraid
does since it operates on r/o snapshots instead of raw data.
It’s affected by the write-hole phenomenon. In BTRFS case that can mean that perfectly good old data might corrupt without any notice.
You shouldn’t have abysmal performance with ZFS. Something must be up.
What’s up is ZFS. It is solid but the architecture is very dated at this point.
There are about a hundred different settings I could try to change but at some point it is easier to go btrfs where it works out of the box.
Since most people with decently simple setups don’t have the described problem likely somethings up with your setup.
Yes ifta old and yes it’s complicated but it doesn’t have to be to get a decent performance.
I have been trying to get ZFS working well for months. Also I am not the only one having issues as I have seen lots of other posts about similar problems.
What seems dated in its architecture? Last time I looked at it, it struck me as pretty modern compared to what’s in use today.
It doesn’t share well. Anytime anything IO heavy happens the system completely locks up.
That doesn’t happen on other systems
You’ve been downvoted, but I’ve seen a fair share of ZFS implementations confirm your assessment.
E.g. “Don’t use ZFS if you care about performance, especially on SSD” is a fairly common refrain in response to anyone asking about how to get the best performance out of their solution.
Btrfs came default with my new Synology, where I have it in Synology’s raid config (similar to raid 1 I think) and I haven’t had any problems.
I don’t recommend the btrfs drivers for windows 10. I had a drive using this and it would often become unreachable under load, but this is more a Windows problem than a problem with btrfs