For those of you that have home servers or are considering one, this might be of a little interest to you. Have a look at this quick post first.
First let me talk about Unraid server. Unraid server is a storage server used for media, documents and whatever else you need storage for. It’s essentially a NAS device/server. Disk access is fairly fast and generally faster than most RAID setups. Just like it’s name implies it does not use a RAID array/setup, instead it opts for an array of independently functioning drives with a parity disk. Each drive stores file data that spans only that particular drive. There are several ways that you can fill a drive up with data. When you read or write a file it does not span multiple disks. Check the gallery examples below to see the difference between a RAID5 and unRAID setup.
Images taken from Lime Tech website
What does that mean. Well for starters, unlike a RAID array if more than one drive fail you will not loose all your information. If one drive fails, with the assistance of the parity drive, much like a RAID setup you can still rebuild the information on said failed drive. If more than one drive fails however, for examples sake, if the parity drive and a single storage drive fail, you will only loose the information that was stored on said storage drive that failed. Parity holds no data only a checksum of bits from each drive in the array. Unraid can function without a parity drive. Unraid is also expandable and you can grow your array slowly over time. If you only need a 4 drive array with future expandability that’s fine, you can grow your storage pool up to 24 drives at a later date. You can increment your storage size as you please. Unraid is very flexible.
Unraid v5 has a repository of plugins. Plugins are applications which can be installed and configured to run on the server. Much like most NAS devices available on the market today, applications such as CrashPlan, BTsync, SabNZBD, Couch Potato, Headphones, Sick Bears, and many more can be installed in the unRAID5 environment. Give the software a go, it’s free to try and you don’t need a license for the basic version. Here is the link: http://lime-technology.com/ . The software runs off a flash drive and is accessed via a webpage interface.
So how does unRAID benefit from the Xen hypervisor? At the moment some community plugins for version 5 of unRAID are compiled with different versions of python, 2.6 and 2.7 respectively. Now if you install two of these plugins that have the varying versions of python they will conflict in the same environment. However, if you separate them in to different virtual machines this will not cause any issues. With unRAID6 one does not have to wait for a plugin to be created for the unRAID environment which is based on the slackware 14 linux distribution. Install a linux distribution of your choice or Windows if you’d like, and install the software of your choosing. Another benefit is memory allocation, it has been noted in some posts that PlexServer on unRAID does not have the best memory management around and is quite RAM hungry, sometimes crashing other applications in unRAID. With Xen that is no longer and issue, software will only crash anything inside the VM and the memory space that is allocated to it, anything outside of that VM will be untouched. It all comes down to stability and isolation.
Currently I am running Unraid Server 5.0.4 final. Over the last couple weeks I have put in a lot of research into Unraid6 with the Xen hypervisor, in the hopes of moving to the newer version. In my opinion the Xen hypervisor of Unraid 6 is the bread and butter of the new OS version. What is a Hypervisor? A Hypervisor or virtual machine monitor (VMM) is a piece of computer software, firmware or hardware that creates and runs virtual machines. A virtual machine (VM) is a software-based emulation of a computer. Why is this relevant? Well for starters you can isolate services and machines. You can have a test environment. You can consolidate your hardware into one machine. You can emulate and pass through hardware and even game on a Virtual Machine with the Xen Hypervisor. That’s right, an unRAID forum memeber, ironicbadger, successfully demonstrates a Windows VM with GPU passthrogh and the ability to game inside a Virtual Machine. Unfortunately it is not capable of multi GPU support yet.
At the moment in my home I have an unRAID5 server, a gaming PC, an HTPC, and a raspberry PI for indexing the SQL database used by XBMC. That’s 4 physical devices that could theoretically be consolidated into one piece of hardware through the use of hardware pass through and VMs. Mind you I would never emulate the Gaming PC as it is a beast, and I’m running eyefinity on it. However the potential is there. In order for hardware pass through to be possible your motherboard needs to be equipped with an input/output memory management unit or IOMMU. Essentially the motherboard chipset must support VT-d or AMD-Vi, also you need a CPU capable of handling the VT-x and AMD-V instruction sets.
The unRAID community is using Arch Linux for it’s VMs. Arch is a very minimal and light weight operating system, it can be run on one CPU and 512MB or RAM with some light applications in the background if desired. I also found that the Arch distribution has really amazing documentation and a very large community of contributors. If you want more reading on Arch go to ironicbadgers blog, he loves his Arch distribution, and no one can fault him for it, it’s a rock solid distro. http://blog.ktz.me/
There are two types of methods of virtualizing, PV and HVM. PV or a para virtualization does not require VT-x and AMD-V CPU hardware extensions and runs completely within a software driven environment. HVM or hardware assisted virtualization requires your CPU to be capable of the VT-x and AMD-V extensions. On top of this if you want to pass through any I/O hardware to the VM, like a VGA card or a PCi device, your motherboard needs to support IOMMU and have a chipset capable of the VT-d or AMD-Vi instruction set.