December 6, 20241 yr **NOTE: THIS PLAN OPERATES IN DEGRADED AND UNPROTECTED STATES. I HAVE MULTIPLE BACKUPS AND I AM COMFORTABLE TAKING THIS RISK. DON'T JUST BLINDLY FOLLOW THIS APPROACH IF YOUR SITUATION IS DIFFERENT.** Thanks to some Black Friday deals and in anticipation of Unraid 7, I picked up some more hard drives to be ready to migrate my array to a ZFS pool. I'm doing this for better performance and better data protection versus XFS and FUSE, and to get full ZFS functionality we have to use a separate pool and not the Unraid array. Current config: 3 disks in Unraid Array (1 parity + 2 data) Future config: 6 disks in RaidZ2 pool (2 protection + 4 data) THE PLAN Inspired by: [zfs-discuss] Can I create ZPOOL with missing disks? and Creating a degraded pool and Setting up new 4 disks RAIDz1 pool; build degraded Create RaidZ2 ZFS pool with four real drives and two fake drives (guide here: Setting up new 4 disks RAIDz1 pool; build degraded) 1. Pull parity drive from Array. Unraid Array is now degraded. 2. Create two sparse file "fake drives" to make ZFS think it has six disks available. These will later be replaced by the real disks from the Array. 3. Create a six-disk RaidZ2 pool using the four real disks (three new disks plus the parity we pulled) and the two fake disks. Copy data from Array to ZFS Pool 4. Offline and delete the two "fake" sparse drives so they don't interfere with our data transfer. ZFS pool is now degraded but still operational. 5. Copy the data from the Array (Disk B and Disk C) to the ZFS pool. 6. Scrub ZFS pool to confirm no errors. Restore ZFS Pool to full operation 6. Remove Disk B and Disk C from Unraid Array. 7. Use ZFS replace to switch the two fake drives with the two real drives. 8. Allow ZFS to resilver / repair until it returns to normal status. QUESTION: aside from the obvious lack of protection due to the degraded state, are there any other considerations here? Do these steps make sense? Am I missing something? Edited February 5, 20251 yr by scud133b fixed title
December 6, 20241 yr Author @SpaceInvaderOne any chance you have a video planned for migrating from the array to a ZFS pool for Unraid 7? I've already watched your videos on changing to ZFS within the array but with Unraid 7 coming out, I suspect there will be other people who want to move off the array completely. Edited December 8, 20241 yr by scud133b
January 15, 20251 yr Author Writing in here to confirm that this finished successfully! After 7.0 came out, I began the process using a tedious combination of CLI and Unraid GUI to make this work. In short, you have to: Create the RaidZ pool in the CLI in order to use the degraded method, as described in the OP. After everything is created, data is copied and confirmed safely, then you export the pool from the CLI to make it available for the Unraid GUI. Create a new pool in the Unraid GUI, assign all the disks to this pool, and then confirm that your pool file system is auto. This will cause it pick up the existing ZFS pool you created earlier (and not try to make a new file system). Kudos to @JorgeB for that guidance. If you decide to drop your array entirely in Unraid 7, then you'll have to make sure the Array section is empty of drives and execute a New Config in the Tools menu to be able to fully start Unraid again. Most likely the user share mover settings will be all messed up after doing this. I had to go one-by-one through each Share and re-assign them to the new ZFS pool. I also made them exclusive shares pointing to the ZFS pool, which will help the ZFS pool performance substantially by bypassing FUSE. Edited January 15, 20251 yr by scud133b
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.