Skip to content
View in the app

A better way to browse. Learn more.

Unraid

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Tired of slow ZFS, shall I switch to BTRFS?

Featured Replies

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:

  1. is BTRS significantly faster than ZFS?

  2. Is there a written procedure somewhere to switch the filesystem of the array?

Thanks a lot.

Solved by JorgeB

  • 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.

  • 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...

  • 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.

  • Author

Ok thank you. So I think time to migrate to BTRFS then. Wish me luck 🙏 😅

  • 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.

  • 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.

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.

Guest
Reply to this topic...

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.