Unraid for Home Lab Use: The Complete Guide
Unraid is the NAS operating system that doesn't follow the rules. While TrueNAS and traditional RAID strip data across drives in a tightly coupled array, Unraid takes a fundamentally different approach: each drive is an independent filesystem, a dedicated parity drive protects against failure, and you can mix and match drive sizes freely. This design makes Unraid uniquely flexible — and uniquely suited to certain homelab use cases.
This guide covers how Unraid actually works, when it makes sense over the alternatives, and how to get the most out of it for your homelab.
How Unraid's Storage Actually Works
Understanding Unraid's storage model is the key to understanding when to use it. It's different enough from traditional RAID that it trips up people coming from ZFS or mdadm backgrounds.
The Array
Unraid's primary storage is called "the array." It consists of data drives and one or two parity drives. Here's what makes it unique:
Each data drive is an independent XFS or BTRFS filesystem. Drive 1 might hold your movies. Drive 2 might hold your documents. Unlike RAID or ZFS, data is not striped across drives. A file lives on one drive, whole and intact.
The parity drive stores parity information for all data drives. If any single data drive fails, Unraid can reconstruct its contents using the parity drive and the remaining data drives. With dual parity (two parity drives), you can survive two simultaneous drive failures.
The parity drive must be the largest drive in the array. Technically, it must be equal to or larger than the largest data drive. This is because it needs enough space to hold parity for every data drive.
You can mix drive sizes. A 4TB drive, a 8TB drive, and a 16TB drive can coexist in the same array. You get the full usable capacity of each data drive. No wasted space from matching drive sizes.
What This Means in Practice
The benefits:
- Add one drive at a time. Start with two drives (one data, one parity), add more as you need them. No need to rebuild the array.
- Mixed sizes work. Upgrade drives incrementally. Replace a 4TB drive with a 16TB drive whenever you want.
- Individual drive access. If your Unraid server dies (hardware failure, not drive failure), you can mount any data drive in another Linux system and read your files directly. Try that with a RAIDZ pool.
- Power management. Drives can spin down independently. If you access files on Drive 1, only Drive 1 and the parity drive spin up. The rest stay asleep.
The trade-offs:
- Write speed is limited. Every write to the array requires updating the parity drive, which means parity reads and writes for every data write. Sequential write speeds are typically 30-80 MB/s to the array, much slower than a RAID array or ZFS pool.
- No checksumming. Unraid does not checksum data. It cannot detect or repair bit rot the way ZFS does. If a bit flips silently on a data drive, Unraid won't know.
- Single-disk failure mode for individual files. If a data drive fails and you don't have parity, that drive's files are gone. Parity protects you, but there's no per-block redundancy like ZFS mirrors.
Cache Pools
The write speed limitation of the array is real, and the cache pool is Unraid's solution. A cache pool is a separate set of drives (usually SSDs) that receives writes first. Data sits on the cache temporarily, then Unraid's "mover" process transfers it to the array on a schedule (typically nightly).
Write → Cache Pool (fast SSD) → [Mover runs at 3am] → Array (slow parity-protected)
Cache pools can be a single SSD (no redundancy), a BTRFS mirror (two SSDs), or a BTRFS RAID pool (multiple SSDs). For most homelabs, a single 1TB NVMe SSD as a cache drive is the sweet spot. If you're running Docker containers, a mirrored cache pool (two SSDs) is worth the extra cost since your container data lives on the cache.
Configure the cache per share. A "media" share might bypass the cache (large files that don't need fast writes), while a "documents" share uses the cache (small files that benefit from fast access):
- Cache: Yes — Writes go to cache, mover pushes to array later
- Cache: No — Writes go directly to array (slow but immediately parity-protected)
- Cache: Only — Data stays on cache permanently, never moves to the array (use this for Docker appdata and VM images)
- Cache: Prefer — Data should be on cache; mover pulls it from array to cache if found there
Docker Support
Unraid's Docker implementation is one of its strongest features. It ships with a Docker engine built in and a web UI for managing containers. No SSH required for basic operations.
Community Applications
The real magic is the Community Applications (CA) plugin. It's an app store for Unraid that provides one-click templates for hundreds of Docker containers. Want to run Plex? Search for it, click install, fill in a few paths, done. Jellyfin, Nextcloud, Home Assistant, Pi-hole, Vaultwarden — they're all there with pre-configured templates that map volumes and ports correctly.
Installing Community Applications:
- Go to Plugins > Install Plugin
- Paste the CA plugin URL:
https://raw.githubusercontent.com/Squidly271/community.applications/master/plugins/community.applications.plg - Click Install
Once installed, you'll see an Apps tab in the Unraid UI. Browse or search for any application, and the template handles the Docker configuration.
Docker Networking
Unraid supports Docker's bridge, host, and macvlan network modes. For most containers, the default bridge mode works fine. For services that need their own IP address on your network (like Pi-hole), use macvlan:
- Go to Settings > Docker > Custom Networks
- Add a macvlan or ipvlan network mapped to your physical interface
- Assign it to the container in its template
Docker Compose on Unraid
Unraid's built-in Docker management is template-based, not Compose-based. If you prefer Docker Compose, you can use it via the Docker Compose Manager plugin:
- Install through Community Applications
- Create compose files in
/boot/config/plugins/compose.manager/projects/ - Manage them through the Unraid UI or SSH
Some advanced users skip Unraid's Docker UI entirely and manage everything through Compose files via SSH. Both approaches work — use whichever fits your workflow.
VM Support
Unraid includes KVM/QEMU virtualization with a web-based management UI. You can run Windows, Linux, and macOS VMs directly from the Unraid dashboard.
Setting Up a VM
- Go to Settings > VM Manager and enable VMs
- Download an ISO image to a share on your server
- Go to VMs > Add VM
- Select the OS type, assign CPU cores, RAM, disk, and network
- Point it to your ISO
- Start the VM
GPU Passthrough
Unraid supports PCIe passthrough, which means you can dedicate a GPU to a VM. This is popular for:
- Windows gaming VMs — Pass through a dedicated GPU and play games on a VM with near-native performance
- Plex/Jellyfin hardware transcoding — Pass through an Intel iGPU for Quick Sync
- AI/ML workloads — Pass through an NVIDIA GPU
GPU passthrough requires IOMMU support in your CPU and motherboard (Intel VT-d or AMD-Vi). Enable it in BIOS, then in Unraid under Settings > VM Manager > IOMMU.
VM Storage
VMs should use the cache pool (SSD), not the array. Running a VM off spinning disks on the parity array is painfully slow. Set the VM's vdisk location to a cache-only share for acceptable performance.
Shares and User Access
Unraid's share system is straightforward but different from traditional NAS setups. A "share" in Unraid is a virtual folder that can span multiple array drives and the cache pool.
Creating a Share
- Go to Shares > Add Share
- Name it (e.g., "media", "backups", "documents")
- Configure cache behavior (Yes, No, Only, Prefer)
- Set allocation method:
- High-water — Fills drives evenly (recommended for most uses)
- Fill-up — Fills one drive before moving to the next (good for media, keeps related files together)
- Most-free — Writes to the drive with the most free space
- Set included/excluded disks if you want to control which drives hold which data
- Enable SMB/NFS export
User Management
Unraid supports user-based access control for SMB shares:
- Go to Users > Add User
- Set permissions per share (Full, Read-only, No Access)
NFS exports are configured per share under the share's settings.
Unraid Pricing and Licensing
Unraid is not free. It's a one-time license purchase tied to your USB boot device's GUID:
| License | Max Drives | Price |
|---|---|---|
| Basic | 6 attached storage devices | $59 |
| Plus | 12 attached storage devices | $89 |
| Pro | Unlimited | $129 |
"Attached storage devices" means data and parity drives in the array. It does not count cache pool drives, USB drives, or unassigned devices.
The license is permanent — no subscription. Updates are included for the major version you purchased (Unraid 6, Unraid 7, etc.). New major versions may require an upgrade fee, though historically Lime Technology has been generous with free upgrades.
There's a 30-day free trial with full Pro features. This is genuinely enough time to set it up, migrate your data, and decide if it works for you.
When to Choose Unraid
Unraid vs TrueNAS vs OpenMediaVault is the eternal homelab debate. Here's when each makes the most sense:
Choose Unraid When
- You want to mix drive sizes and add drives incrementally over time
- Docker convenience matters — Community Applications makes spinning up services trivial
- You want VMs and NAS in one box with a clean UI for both
- Data integrity isn't your top priority — You're storing media, game libraries, and other replaceable data
- You value simplicity and want to manage everything through a web UI without learning ZFS
- You plan to do GPU passthrough for gaming or transcoding VMs
Choose TrueNAS When
- Data integrity is critical — Business documents, photos, databases, anything irreplaceable
- You want ZFS — Checksumming, self-healing, snapshots, replication
- Write performance matters — ZFS pools (especially mirrors) are significantly faster than Unraid's parity system
- You're building a pure NAS without needing VMs or extensive Docker support
Choose OpenMediaVault When
- Budget is the primary constraint — OMV is free and runs on minimal hardware
- You're running on a Raspberry Pi or other ARM device
- You want Debian under the hood and full Linux flexibility
- You need a simple NAS without the complexity of ZFS or the cost of Unraid
Limitations to Know About
Be honest about what Unraid doesn't do well:
Parity writes are slow. If you're ingesting large amounts of data regularly (security camera footage, backup targets receiving nightly backups), the array's write speed will be a bottleneck. The cache pool mitigates this for bursty workloads, but sustained writes will eventually hit the parity speed limit.
No data checksumming on the array. ZFS detects and corrects bit rot. Unraid does not. For long-term archival of irreplaceable data, this matters. You can mitigate this by running periodic btrfs scrub operations if you format your data drives as BTRFS instead of XFS, but this is not the same as ZFS's end-to-end checksumming.
The array must be stopped to change configuration. Adding a drive, replacing a drive, or changing parity requires stopping the array, which takes all shares offline temporarily.
Parity rebuilds are slow. After a drive failure, parity rebuild reads every other drive in the array. With large drives, this takes many hours. During the rebuild, performance is degraded and a second failure means data loss (unless you have dual parity).
USB boot only. Unraid boots from a USB flash drive. The OS and configuration live on this USB drive. If it fails, you need to transfer your license to a new USB drive (Lime Technology supports this, but it's a manual process). Keep backups of your USB drive.
Getting Started: First Steps After Installation
1. Install Unraid
- Download the USB Creator tool from unraid.net
- Flash it to a USB drive (use a quality drive — SanDisk Ultra Fit is popular)
- Boot from the USB drive
- Access the web UI at the IP address shown on the console
2. Assign Drives
Go to Main and assign your drives:
- Parity: Your largest drive
- Disk 1, Disk 2, etc.: Your data drives
- Cache: Your SSD(s)
Start the array. Unraid will format the drives and build initial parity.
3. Install Community Applications
Install CA immediately — it's the gateway to Unraid's ecosystem.
4. Set Up Your Shares
Create shares for your main data categories (media, documents, backups, appdata). Set the "appdata" share to "Cache: Only" so Docker container data stays on your SSD.
5. Install Essential Plugins
Through Community Applications, install:
- Fix Common Problems — Scans your configuration for common issues
- Unassigned Devices — Mount drives outside the array (USB drives, extra SSDs)
- Dynamix System Statistics — Better system monitoring in the UI
- CA Backup/Restore Appdata — Back up your Docker container configurations
6. Set Up Notifications
Go to Settings > Notifications and configure email alerts. At minimum, you want alerts for:
- Drive errors or failures
- Parity check results
- Array start/stop events
- Docker container crashes
7. Schedule Parity Checks
Go to Settings > Scheduler and set up a monthly parity check. This reads every drive and verifies parity consistency. It takes a long time (hours for large arrays) but catches problems before they become data loss.
Unraid isn't perfect, and it's not the right choice for every homelab. But for the common scenario of a mixed-use home server — some media storage, some Docker containers, maybe a VM or two — it hits a sweet spot of flexibility and ease of use that's hard to beat. The Community Applications ecosystem alone is worth the license fee for many homelabbers. Try the 30-day trial with your actual hardware and workload, and you'll know quickly whether it clicks for you.