November 10, 2025Nov 10 Hello,I'm planning to migrate my ~100TB Windows Server 2019 (with DrivePool) to Unraid and would appreciate some feedback on my migration strategy.I used Claude AI to create a migration plan, but I'd like to get it reviewed by the community to make sure I'm not missing anything or if there are any outdated practices.My setup goals:No parity drive - mostly media files that are easily replaceable512GB M.2 SSD - cache drive for Sabnzbd extraction and Docker databases4TB WD Purple - dedicated to Frigate (security camera footage)2x 8TB WD Red - documents and photos with file duplication/mirroringRemaining drives (~9 drives) - simple media storage for Plex (no protection)Does this approach make sense, or are there better practices I should consider? Any feedback appreciated!Your Drive Setup SummaryTotal: ~106TB raw capacityUnraid target configuration:🟣 WD Purple (4TB) - Frigate only🔴 2x WD Red (8TB) - Documents/photos with duplication📦 9x Mixed drives - Media storage (no protection)💾 SSD 512GB - Cache drive for databases/DockerMigration Strategy: "Rolling Consolidation"Since you have no parity, this is actually easier! We'll consolidate data onto larger drives first, then build Unraid array.Phase 1: Preparation (Still in Windows)Goal: Consolidate all data onto 8-9 drives, leaving 4-5 drives emptyStep 1: Calculate your actual dataMove all data TO these drives (keep full):1. ✅ 12TB WD (Drive 1)2. ✅ 10TB WD (Drive 2) 3. ✅ 18TB WD (Drive 5)4. ✅ 8TB SMR (Drive 3)5. ✅ 8TB SMR (Drive 4)6. ✅ 8TB SMR (Drive 6)7. ✅ 8TB SMR (Drive 7)8. ✅ 8TB SMR (Drive 8) Leave EMPTY (or minimal data):- ⬜ 8TB SMR (Drive 9)- ⬜ 8TB WD Red (Drive 10)- ⬜ 4TB WD Purple (Drive 11)- ⬜ 8TB WD Red (Drive 12)- ⬜ 512GB SSD (Drive 13) **In DrivePool, use "File Placement" rules:**```- Move data to fills drives 1-8 completely- Empty drives 9, 10, 11, 12, 13## **Phase 2: Create Initial Unraid Array****Shutdown Windows → Boot Unraid USB****Initial Unraid array (NO PARITY):**```Array Configuration:├─ Cache: 512GB SSD (XFS)├─ Disk 1: 8TB SMR (Drive 9) - WILL BE FORMATTED├─ Disk 2: 8TB Red (Drive 10) - WILL BE FORMATTED ├─ Disk 3: 4TB Purple (Drive 11) - WILL BE FORMATTED└─ Disk 4: 8TB Red (Drive 12) - WILL BE FORMATTED Total: 32TB usable (all formatted XFS)Unassigned (keep NTFS, read-only):Drive 1-8 (all your data is here)Format and start array - This gives you 32TB to work with.Phase 3: Copy Data Stage 1Install plugins:bash# In UnraidCommunity Applications → Install:- Unassigned Devices- Dynamix File Manager (optional)- MC (Midnight Commander) via Nerd ToolsMount old drives:Go to: Main → Unassigned DevicesMount drives 1-8 as read-onlyThey appear as: /mnt/disks/WD120EDJAZ/, etc.Copy data:bash# For each NTFS drivecd /mnt/disks/[DRIVE_NAME]/PoolPart.xxx/ # Copy to Unraid user sharesrsync -avh --progress --ignore-existing ./ /mnt/user/media/ # For SMR drives (slower), use:rsync -avh --progress --no-compress --ignore-existing ./ /mnt/user/media/``` **Strategy:**- Copy from Drive 3 (8TB SMR) first → takes ~24 hours- Verify copy completed- Once Drive 3 is empty, stop array --- ## **Phase 4: Expand Array (Repeat)** **Add Drive 3 to array:**1. Stop Unraid array2. Go to Main → Array Devices3. Assign Drive 3 (8TB SMR) to next available slot4. Start array → formats Drive 3 as XFS5. Now you have 40TB usable **Repeat copy process:**- Copy from Drive 4 → Add Drive 4 to array- Copy from Drive 6 → Add Drive 6 to array- Continue until all drives added --- ## **Phase 5: Final Unraid Configuration** Once all data copied and all drives in array: **Create shares with specific allocations:** **1. Frigate Share (Purple drive only):**```Share: frigateIncluded disks: disk3 (Purple 4TB)Excluded disks: All others``` **2. Documents Share (Both Reds with duplication):**```Share: documentsIncluded disks: disk2, disk4 (both 8TB Reds)Allocation method: High-waterMinimum free space: 10GB # Enable duplication at share level (not drive level)# Use Unraid's "User Share Copy" plugin or manually rsync``` **3. Media Share (Everything else):**```Share: mediaIncluded disks: disk1, disk5-13 (all others)Allocation method: Most-freeSplit level: Automatically splitOrder of Drive Addition (Optimized)Copy priority (fastest first):Drive 9 (8TB SMR) → already empty, format firstDrive 10 (8TB Red) → already empty, format firstDrive 11 (4TB Purple) → already empty, format firstDrive 12 (8TB Red) → already empty, format firstThen copy from and add:Drive 3 (8TB SMR) → 24h copyDrive 4 (8TB SMR) → 24h copyDrive 6 (8TB SMR) → 24h copyDrive 7 (8TB SMR) → 24h copyDrive 8 (8TB SMR) → 24h copyDrive 2 (10TB WD) → 30h copyDrive 1 (12TB WD) → 36h copyDrive 5 (18TB WD) → 48h copy (LAST - biggest)Keep SSD (Drive 13) for cache throughout.
November 11, 2025Nov 11 Community Expert well, lots going on here. First FYI SMB on unraids doesn't have nor natively support Active Directory. I would highly recommend going ZFS:Since using zfs please review:https://forums.unraid.net/topic/177887-os-70beta4-best-practice-storagediskcache-configuration/#findComment-1478045Short answer: your plan is solid, but you can make it safer, faster, and simpler by (a) using a small ZFS or btrfs mirrored pool for your important data (docs/photos), (b) keeping Frigate on its own device, and (c) being picky about rsync flags and share settings. Below is a tight review plus a ZFS-based variant you asked for.As I Understand it:Quick review of your current planNo parity for the media: totally fine for “easy-to-replace” Plex content. Consider at least good backups for irreplaceables.512 GB SSD cache: great for Docker/appdata and SABNZBD extraction. Make sure appdata, domains, and system shares are set to Primary storage: Cache (or a pool) and Mover: Prefer/Only so they don’t spray onto array disks.WD Purple for Frigate: ok for 24×7 sequential writes. I’d still keep Frigate’s DB/thumbs on SSD for responsiveness; keep the recordings on the Purple.2×8 TB Reds “duplicated”: Unraid array itself does not do duplication like DrivePool. Use a pool (btrfs RAID1 or ZFS mirror) for this. That way duplication is automatic and bullet-proof.SMR drives in the array: fine for large sequential media. Don’t use them for metadata-heavy workloads.Some of my Notes / Revisions:Migration flow tweaks (keeps your rolling-consolidation idea)Prep in Windows (DrivePool)Your “empty 4–5 drives, fill others” approach is good.Optional but recommended: run chkdsk /f on each NTFS volume before shutdown.Build first Unraid boot with empty drivesAssign the 3–4 empty disks, format XFS (or make pools—see ZFS section below). the layout you chose will matter latter I recommend pool devices only no d1 unraid array...Install: Community Apps → Unassigned Devices; from "unget/NerdTools" 3rd party install: screen https://slackware.pkgs.org/15.0/slackware-x86_64/screen-4.9.0-x86_64-1.txz.html.--Helpfull later and a nice side scripting tool... https://forums.unraid.net/topic/129200-plug-in-nerdtools/page/25/#comment-1513524 Copy from NTFS (Unassigned Devices) → UnraidMount NTFS read-only in Unassigned Devices Plugin. Copy with rsync:# example: NTFS drive mounted at /mnt/disks/WD10 # copy into a user share named "media" rsync -aHAXv --info=progress2 --preallocate --numeric-ids \ --inplace \ /mnt/disks/WD10/PoolPart.*/ /mnt/user/media/ Notes:-aHAX preserves hardlinks, ACLs, xattrs (keep what’s there).--preallocate reduces fragmentation; --inplace avoids temp space spikes.For very slow SMR, add --no-compress.Do not mix /mnt/diskX and /mnt/user on the same copy command (classic “user share copy bug” rule). Your source is /mnt/disks so you’re safe.Verify, then add the emptied drive to the array/poolAfter each copy:# quick verification pass (no rewrites) rsync -aHAXvn --delete /mnt/disks/WD10/PoolPart.*/ /mnt/user/media/ If the dry-run shows nothing to copy/delete, you’re good. Now stop array → assign the just-emptied disk → format → continue.Permissions sweep once at the endUse Tools → Docker Safe New Perms (from Fix Common Problems) on your media/document shares to normalize to nobody:users.chmod 777 -R * && chown nobody:users -R *Share layout (Unraid array + pools)frigate (recordings): point to the Purple disk (or a “purple” pool/dataset).Include disks: only the Purple (or set Primary storage: the Purple pool).Keep frigate’s DB on the SSD cache/pool (e.g., appdata/frigate).documents (mirrored): place this on a mirror pool (ZFS or btrfs RAID1) made from the 2×8 TB Reds.media (unprotected): send to the XFS array disks (all except Purple and the mirrored Reds).Review the Docs:Manage storage | Unraid DocsShares | Unraid DocsA key feature of Unraid is the management of shares. Shares are folders or drives on your Unraid server that can be accessed over a network. You can create as many shares as you want on your Unraid seMy ZFS setup Recommendation (min on Unraid 6.12+)Unraid now supports named pools. You can create a ZFS pool in the GUI (recommended) or CLI. Here’s the practical layout:Pools and datasetsPool safe (ZFS mirror) for documents/photosDevices: the two 8 TB Reds.Pool properties (GUI → set per dataset after creation):compression=lz4xattr=saatime=offrecordsize=128K (good default for mixed small/medium files)Datasets:safe/documents (Primary storage for your “documents” share)Optional: safe/photos if you want a separate shareSnapshots: enable regular snapshots (e.g., daily, keep 30). You can script with User Scripts:zfs snapshot -r safe@daily-$(date +%F) # prune: zfs list -t snap; zfs destroy safe@daily-YYYY-MM-DD Off-box backups: later you can zfs send | zfs receive to another ZFS machine/NAS or to a USB backup drive with ZFS.Pool purple (single-disk ZFS or XFS) for Frigate recordingsDevice: 4 TB WD Purple.If ZFS:recordsize=1M (video)compression=lz4xattr=sa, atime=offKeep sync=standard (don’t disable sync unless you fully accept data-loss risk on power loss).Put Frigate clips/recordings at purple/frigate-recordings. Point the Frigate share to this dataset.Pool cache (SSD, single-device)Device: 512 GB NVMe/SATA SSD.ZFS or btrfs are both fine here. If ZFS:compression=lz4, xattr=sa, atime=off, recordsize=16K–64K are fine for DBs.Datasets:cache/appdata, cache/system, cache/domainsSet the Appdata/Systems/Domains shares: Primary storage: cache; Mover: Prefer/Only.Array (unprotected XFS disks) for Plex mediaAll remaining HDDs (including SMR) as individual XFS disks, no parity.Share media → Primary storage: Array; Allocation Most-free; Split level automatic.Exclude the Purple and the 2×8 TB Reds from media if you want a hard separation.Wiring shares to pools (Storage settings in each share)documents → Primary storage: safe (ZFS mirror). Mover: Only/Prefer safe.photos (if separate) → Primary storage: safe.frigate:appdata/frigate → cachefrigate/recordings → purpleIn Frigate’s config, point clips/recordings to /mnt/purple/frigate-recordings (or to the share that maps there).media → Primary storage: Array.Optional CLI creation (if you prefer)Do this only once; GUI is safer and keeps Unraid in sync. (Better with zfs master plugin!)# Mirror pool (two 8TB Reds) zpool create -f -o ashift=12 safe mirror /dev/disk/by-id/RED_8TB_A /dev/disk/by-id/RED_8TB_B zfs set compression=lz4 safe zfs set xattr=sa safe zfs set atime=off safe zfs create safe/documents zfs set recordsize=128K safe/documents # Purple pool for Frigate zpool create -f -o ashift=12 purple /dev/disk/by-id/PURPLE_4TB zfs set compression=lz4 purple zfs set xattr=sa purple zfs set atime=off purple zfs create purple/frigate-recordings zfs set recordsize=1M purple/frigate-recordings # Cache pool (single SSD) zpool create -f -o ashift=12 cache /dev/disk/by-id/SSD_512G zfs set compression=lz4 cache zfs set xattr=sa cache zfs set atime=off cache zfs create cache/appdata zfs create cache/system zfs create cache/domains Other Docker/ Frigate placement tipsDB (SQLite) and thumbnails on SSD (/mnt/cache/appdata/frigate). (asuming one primary location for storage! per unraid shares doc...)Recordings on Purple (/mnt/purple/frigate-recordings), recordsize=1M.If you ever see dropped frames or slow clips, confirm the recordings path isn’t accidentally on the array.?trying to setup PLex and *Arrs stack... I recommend using docker compose:example ars compose setup...https://forums.unraid.net/topic/194760-dockers-fail-to-communicate-on-unraid-72/#findComment-1588190Preclear & healthBefore adding any drive to array/pools: run Preclear Disks (plugin) or at least a long SMART test. You’ll catch early failures.Backups & “what ifs”Documents/Photos: ZFS mirror + snapshots + periodic send/receive to an external ZFS disk is the best “DrivePool duplication” analogue—and more robust.Media: you’ve accepted risk; if you later change your mind, you can add one parity and keep the rest unprotected, or move media into a ZFS pool with RAIDZ.
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.