Like most other engineers I have a profound interest in my field and quite often either take my work home with me or just play around in free time. Unfortunately I do not have an arsenal of AWS instances at my disposal outside of work or a limitless supply of cash. The solution or at least my solution, host it yourself.
I can't recall exactly how I stumbled across Unraid, I believe I was reading an unrelated hardware article and decided it was worth a look. Worth a look it was. Unraid provides and simplifies three main technologies. Network-Attached Storage, Container Orchestration and Virtualisation. All of which are very useful to me both inside and outside of work.
Unraid takes a slightly different approach to NAS. Most significantly in that it distributes data at a file level. While this isn't optimal for performance it does however simplify storage which is beneficial for a couple of reasons. Firstly the array can be expanded or shrunk (capacity permitting) at will as the data is just redistributed. Secondly disk size does not need to be consistent, you can throw anything you have lying around into the array. Thirdly should the system fail recovery is as simple as plugging in the disks elsewhere and reading the contents.
One final winner is the interface LimeTech cooked up for management.
Shares can created effortlessly and configured to to use any combination of AFP, NFS and SMB with a shared user base should you wish to restrict access. Some final noteworthy thoughts, the array can be protected with up to two parity disks allowing for the consecutive failure of up to two disks before data is lost, unraid also supports caching which can be configured on a per share basis and finally Unraid also supports time machine which personally comes in incredibly handy.
Unraid also provides a container orchestration service which under the hood is Docker with a web management interface. I won't go into much detail about Docker as it been covered in previous posts. Once more simplicity is the key.
Unraid has a rich library of images that can be started up at the touch of a button and completely configured via the web UI. Should you think of something a template does not yet exist for you can either create one or just go ahead and build/start the container via the Docker CLI. Due to the container running on the same host as your storage you can also map your shares directly to the container via the filesystem.
The final component Unraid provides is a Virtualization host. Should you want to run something on a non linux host or map specific hardware components to a virtual machine this is the place to do it. Once again a nice and simple ui that makes for a quick and easy setup.
As I mentioned you can assign physical hardware to the virtual machine including a graphics card. This in my case allowed me to build a VM that could run 3D applications and stream them to less powerful devices with the help of software such as Parsec (see my previous post to read more about Parsec and streaming). As a final note, once again your VM's will have filesystem access to your storage array.
give unraid a try
Unraid works well for me and should you want to give it a try you can download the USB image from their website.
If you enjoyed the read, drop us a comment below or share the article, follow us on Twitter or subscribe to our #MetaBeers newsletter. Before you go, grab a PDF of the article, and let us know if it's time we worked together.