June 28Jun 28 Hi everyone,I'm looking for advice on the optimal storage configuration for my Unraid 7.3.1 homelab server.## Hardware- Dell OptiPlex 7050 Micro (Mini Form Factor)- CPU: Intel Core i5-6600T (upgrading to i7-7700T soon)- RAM: 32GB DDR4- Internal storage slots: 1x M.2 NVMe + 1x 2.5" SATA- External: IcyBox USB enclosure (2 bays)## Current Disks- SPCC NVMe 1TB (M.2 internal) → currently Cache pool (btrfs)- SPCC SSD 1TB (SATA internal) → currently Array Disk 1 (xfs)- SPCC SSD 2TB (IcyBox USB) → currently Array Parity- SPCC SSD 2TB (arriving soon) → not yet assigned## Primary Use Case- Docker containers (NetAlertX, Guacamole, Homepage, Portainer, Heimdall)- Virtual Machines (Linux)- Time Machine server for macOS clients (planned)- General file storage (secondary priority)## Current Issues / Concerns1. TRIM not supported in Unraid array — I recently discovered that Unraid doesn't support TRIM/Discard for SSDs in the main array. Both my Parity (2TB SSD via USB) and Disk 1 (1TB SSD SATA) are affected. Should I migrate to ZFS pools?2. USB disk as Parity — My 2TB SSD is connected via USB (IcyBox enclosure) because the OptiPlex 7050 Micro only has one internal SATA bay. Is this a significant risk? Any recommended precautions?3. Optimal disk layout with 4 SSDs — Once the second 2TB SSD arrives, what would be the best configuration for these 4 disks?- NVMe 1TB (internal, fastest)- SSD 1TB (internal SATA)- SSD 2TB x2 (USB enclosure)4. Cache management — Should I use the NVMe as Cache for Docker/VM data only, or also for general writes? Currently all shares are set to Array only (no cache) to avoid the "unprotected files" warning. Is this correct for my use case?5. Time Machine — Any specific recommendations for setting up a Time Machine share on Unraid with this storage layout?## What I'm considering- Migrating to ZFS pool(s) to support TRIM for SSDs- Using NVMe as primary fast pool for Docker/VM data- Using the two 2TB SSDs as a ZFS mirror for Time Machine and general storageI'm fully aware that using a USB-connected disk as Parity is not a best practice and not recommended by Unraid. This is a hardwarelimitation of the OptiPlex 7050 Micro which only has one internal SATA bay and one M.2 slot. I'm looking for the best possible configuration given these physical constraints, not an ideal unlimited budget setup.Any advice on the best approach would be greatly appreciated!Thanks Edited June 28Jun 28 by djmayone
June 28Jun 28 Community Expert Put the 2TB as a ZFS pool, nvme fine as is. Leave out the others and USB, except perhaps as Unassigned Devices. If you eventually need more capacity you can make a real HDD array on different hardware.
June 28Jun 28 Author 21 minutes ago, trurl said:Put the 2TB as a ZFS pool, nvme fine as is. Leave out the others and USB, except perhaps as Unassigned Devices.If you eventually need more capacity you can make a real HDD array on different hardware.Thank you for the quick and clear advice!Just to confirm I understand correctly:- SSD 2TB → ZFS pool (main storage)- NVMe 1TB → Cache pool (unchanged, for Docker appdata)- SSD 1TB SATA + IcyBox USB → leave as Unassigned DevicesA few follow-up questions:1. When the second SSD 2TB arrives, would you recommend adding it to the existing ZFS pool as a mirror for redundancy, or just leave it as an Unassigned Device too?2. For Time Machine backups (macOS clients), would the ZFS pool be the right place to store them?3. With no traditional array and no parity, any specific backup strategy you'd recommend for this setup?Thanks again!
June 28Jun 28 Community Expert Backup to the Unassigned Devices. Docker appdata plus whatever of your other files are important and irreplaceable. Mirror or parity is never a substitute for backups.If the only way you can attach the second 2TB SSD is USB, I wouldn't do it. SATA + USB as mirror doesn't seem like a good idea.An alternative configuration would be 1TB SSD on SATA as ZFS pool, and experiment with 2x2TB ZFS pool on USB.USB not recommended for assigned disks for many reasons, but some are successful with it depending on specific hardware.
June 28Jun 28 Author 45 minutes ago, trurl said:Backup to the Unassigned Devices. Docker appdata plus whatever of your other files are important and irreplaceable. Mirror or parity is never a substitute for backups.If the only way you can attach the second 2TB SSD is USB, I wouldn't do it. SATA + USB as mirror doesn't seem like a good idea.An alternative configuration would be 1TB SSD on SATA as ZFS pool, and experiment with 2x2TB ZFS pool on USB.USB not recommended for assigned disks for many reasons, but some are successful with it depending on specific hardware.Thank you again for the detailed advice!Based on your suggestions, I'm planning to go with this configuration:- NVMe 1TB (M.2 internal) → Cache pool (Docker appdata)- SSD 1TB (SATA internal) → ZFS pool (main storage)- SSD 2TB (IcyBox USB) → Unassigned Device (manual backups)This way I avoid USB for assigned disks, keep things simple and reliable, and follow your advice about backups being more important than mirror/parity.One more question: besides Docker appdata, would you recommend putting anything else on the NVMe cache? For example VM disk images (domains share) or system data?Does this seem like a reasonable approach for my use case (mainly Docker, VMs, and Time Machine server)?Thanks!
June 28Jun 28 Community Expert 1 hour ago, djmayone said:VM disk images (domains share) or system data?Yes, but no need to backup docker.img in system, since it is easily restored by reinstalling from Previous Apps.
Monday at 07:55 AM5 days Author Hi everyone, just wanted to close the loop and share the final configuration we ended up with, following the advice received here.Final Configuration:- NVMe 1TB (M.2 internal) → Cache pool (btrfs) — Docker appdata only- SSD 1TB (SATA internal) → ZFS pool "data" — system, domains, backup, isos- SSD 2TB (IcyBox USB) → Unassigned Device — manual backups- Array slots → none (no traditional array)What We Did:1. Backed up all data from the old array to the IcyBox USB drive2. Removed Parity and Disk 1 from the array and set slots to "none"3. Created a new ZFS pool with the SSD 1TB4. Restored data from IcyBox to the ZFS pool5. Reconfigured all shares to use the ZFS pool6. Left Docker appdata on the NVMe Cache poolResult:All 6 Docker containers running, VMs accessible, ZFS TRIM working correctly, no more "unprotected files" warnings. The IcyBox 2TB stays as Unassigned Device for manual backups, following your advice that backups are more important than mirror/parity.Any further optimizations recommended?- Should VM disk images (domains) stay on ZFS or move to NVMe Cache?- Any recommended ZFS settings for an SSD pool on Unraid 7?- Best practice for automated backups from ZFS pool to the Unassigned IcyBox?Thanks again for the excellent guidance! Edited Monday at 07:57 AM5 days by djmayone
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.