April 3Apr 3 Hi all,I am experiencing some slow transfer rates on my array which is made of 3 disks formatted as 3 x ZFS single disk pools. When copying a file from one disk to another the typical speed is around 80-100 MB/s, moving files between 2 datasets on the same disk I am at 40-50 MB/s.I chose ZFS because I need snapshots. My other alternative is to switch to BTRFS.Questions: is BTRS significantly faster than ZFS?Is there a written procedure somewhere to switch the filesystem of the array?Thanks a lot.
April 4Apr 4 Community Expert Solution There's a known write performance issue with ZFS on the array, pools are not affected, btrfs is a good alternative for the array, it doesn't have that issue.
April 4Apr 4 Author Is the white performance issue being worked on? I would risk going through the hassle of migrating my FS if a fix to the ZFS issue is about to be released...
April 4Apr 4 Community Expert 1 minute ago, googleg said:Is the white performance issue being worked on?I dont think so.Its more or less a "buildin" feature.It happens because ZFS is autotuning its disks.Since you have 3 independent pools, each of them "optimizes" when they think there is spare time.But they do not (and cannot) know about the UNRAID array / parity on top of them.This parity needs to follow each write command of each optimizing pool. So it gets stressed x times (x=no of pool disks). This overloads the single drive very easily slowing down the whole system.ZFS can only be used it its own RAIDZ array type.
April 4Apr 4 Community Expert 46 minutes ago, googleg said:Is the white performance issue being worked on?LT is aware of the problem, and I hope there will be a fix in the future, but I don't have any ETA.
April 4Apr 4 Community Expert Just to be clear, for the array devices, Unraid used an extra driver, the md driver, and there are some optimizations needed for that driver when working with ZFS, it's not a feature, it's a bug.
April 4Apr 4 Since the procedure question didn't get a direct answer — the migration is straightforward but requires a full data offload first since there is no in-place conversion between ZFS and BTRFS.Steps:1. Back up all data from your 3 pools to temporary storage (another drive, network share, whatever you have). Parity does not protect pool disks so treat this as mandatory rather than optional.2. Stop the array.3. In the Main tab, click on each pool disk. Change the file system from ZFS to BTRFS and click Format. This wipes the disk and creates a fresh BTRFS filesystem.4. Start the array.5. Restore your data back to the newly formatted pools.One thing worth planning for: if you were relying on ZFS snapshots, BTRFS does have snapshot capability (btrfs subvolume snapshot) but Unraid's UI doesn't expose it directly. You would manage BTRFS snapshots from the CLI or a user script. Worth checking whether whatever you were using to trigger ZFS snapshots has a BTRFS equivalent before committing to the migration.After the switch you should see write performance closer to what your drives are actually capable of.
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.