Unraid has been the foundation of my home lab setup for several years. It was first introduced to me by a former co-worker. It is a proprietary NAS system by Lime Technology. I switched to it after using FreeNAS for quite a few years. After hitting some failures, I eventually switched to Unraid and never looked back. Unraid has many features that compete with other open-source NAS systems like Rockstor and FreeNAS. Like the other two solutions mentioned, Unraid also supports the following:
- Disk shares over SMB, NFS and SFTP
- VM Manager over virtio
- Docker support
- Time Machine support
However, there are several places where Unraid differentiates itself.
Flexible Disk configurations while providing redundancy
Most software NAS solutions today leverage ZFS to help create flexibility while providing redundancy. ZFS requires you to create a pool of disks about the same size for it to work. ZFS is most stable in a Raid 0 or Raid 1 configuration. They don't recommend ZFS Raid 5 and 10 configurations for production use. Unraid has a proprietary redundancy system. It separates your storage disk from your parity disks. The result is that you can have any type or sized disks for your storage disks. Your constraints are that your parity disks have to be the size of the biggest single disk of your storage disks, and it has a maximum of 2 parity disks.
Disk pools work like RAID 4 configured disks and can withstand the failure of one disk. You can set up multiple pools of storage, which are different from the configuration of the primary disk.
The other feature I like about Unraid is its notion of caching. It allows me to create pools of disks that you can allocate to caching. This feature will enable you to assign faster disks for fast reads and writes, depending on your wants. There are four caching options: no, yes, only, prefer. The No option writes it to the standard disk automatically. The Yes option will write it to the cache file but will be moved to the regular disk set on your scheduling preferences. Only will write into the cache disks until it's full. Once it's full, it will then failover. Prefer will store data on your cache drives until you run out of room and fall back into your regular hard drives.
Specifying shared folder configuration
One of the things that I like about Unraid is the ability to do some sophisticated configurations with Unraid. I can specify what disks I want to use for a particular folder and how I want to fill up the disks. My options are high-water, fill-up and most-free. The high-water aims to fill up a disk as much as possible before moving onto other disks. This option is generally the most performant. Fill-up chooses the lowest number of disks above the minimum disk-free setting, and most free will find the disk with the most amount of disk space.
App Store with Docker configurations for Unraid
Docker is a standard technology now, but you must be tech-savvy to figure out how to configure it. The App Store has docker repositories that extract all the configuration files, making it easy to configure an app for Unraid. The App Store also generally alerts you when Docker containers have been updated, which is helpful.
Unraid Remote Service
Unraid currently allows you to access your Unraid server remotely through a plug-in it created. It works relatively well. It's now beta, and this will likely become a paid service in the future.
My Unraid configuration
I have my Unraid installed on an off-lease HP DL360 with 12 slots of 3.5" bays. 3.5" bays are ideal for me because the main reason for having a NAS is to store lots of information. In my case, it's storing backups of all the VMs I run in the house. I typically use the Western Digital Red drives for storage as they are the preferred disks for NAS. I use a blend of ADATA and Samsung SSDs for cached storage. I've configured two 4-TB disks as my parity drives, and I have two 2-TB and one 4-TB disk for my main storage for a total of 9 TB of storage space. I have one 1-TB SSD as my non-cached fast-storage disk, but since this is part of my main disk configuration, it is part of the two disk redundancy I've set up. I also have 240-GB and 500-GB disks as a cache pool resulting in 370 GB of cached storage.
I generally have most of my folders set as high-water and cache set to no by default, as most things stored on my NAS aren't for constant access, with a few exceptions. I will typically use this to back up files I work on here and create archived versions. However, Unraid creates a default drive called app data for Docker apps, and I have this configured to write to the 1-TB SSD as read and write speeds make the apps run smoother.
Apps and other configurations
I recommend configuring your Unraid http and HTTPS ports not to be 80 and 443. This way, you can set up a proxy container like Apache or Traefik to route traffic to a DNS name for your internal apps
If you're going to install a home server, I recommend Unraid because it's user-friendly in two ways that matter. The ability to run both VMs and Docker, its intuitive user interface, and easy-to-manage disk configurations make it easy for this to be the first step in creating your home lab. While Unraid may not be a free service, it's a low one-time cost and the support for Unraid both from Lime Technologies and the community has generally been phenomenal.