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.

Optimal storage layout for SSD-only setup on OptiPlex 7050 Micro (NVMe + SATA + USB) - ZFS or Array?

Featured Replies

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 / Concerns

1. 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 storage

I'm fully aware that using a USB-connected disk as Parity is not a best practice and not recommended by Unraid. This is a hardware

limitation 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 by djmayone

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

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

A 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!

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

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

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

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

2. Removed Parity and Disk 1 from the array and set slots to "none"

3. Created a new ZFS pool with the SSD 1TB

4. Restored data from IcyBox to the ZFS pool

5. Reconfigured all shares to use the ZFS pool

6. Left Docker appdata on the NVMe Cache pool

Result:

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

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.