Q&A with Tom on unRAID® Virtualization

As many of our regular forum visitors know, there’s a huge amount of interest in unRAID and virtualization. But why all the passion and excitement, what are the benefits, what are the challenges, and what will the impact be on customers who aren’t interested in virtualization capability? Being a relative newbie to unRAID, I sat down with Tom Mortensen (owner of Lime Technology) to get a better understanding and put it in perspective for those who haven’t been closely following all of the forum threads on this.

What is your definition of virtualization?

Tom: Virtualization is a technology that lets you run multiple, complete operating systems in parallel on a single physical hardware platform.

What are the benefits of virtualization to an unRAID customer?

Tom: From a hardware perspective, the amount of compute power to run a NAS verses what’s available can under-utilize the CPU/RAM by gross amounts. Now you can leverage your unRAID hardware investment for other computing purposes.

unRAID users know this, so they’ve written plugins that permit other apps to be installed on the unRAID OS platform. But for complex apps, this has proven to be difficult because the unRAID OS has been designed to be minimalist to efficiently support NAS functions only. With Xen/unRAID, you can install another OS and not be limited. Not only that, but you can install full or partial versions of other OS platforms and avoid having to create and maintain complex plugins.

I think one of our forum members, bkastner (Bill), actually has one of the best explanation of the benefits both from a B-to-B and consumer perspective, which you can find here. Just to highlight some of what he shared:

“From a consumer perspective (specifically with unRAID), virtualization allows you to remove some of plugins from the UnRAID server and run these applications in isolated VMs. This gives you the following benefits:

1. Improved stability of UnRAID
Right now you could have 10 different plugins running on unRAID. Each is potentially created by a different person, each has unique requirements, and each has the potential to blow up unRAID. If one of those 10 plugins was updated incorrectly, it could cause unexpected side effects, and it could have nasty consequences. The more you add on top of unRAID, the higher the associated risk of something going wrong. By taking plugins away and running them in a VM (such as SAB, SickBeard, CouchPotato, Plex, MySQL), you reduce the complexity of your unRAID environment, and decrease the possibility of an unexpected event occurring due to an incorrect updated plugin, or a conflict of plugins.

2. Application Isolation
Along with improving the stability of unRAID, you also reduce the results of unRAID blowing up. Currently, if you have everything running on unRAID as I mentioned at the top of this post, then if your USB stick died, it would be a ton of work to re-set everything up and reconfigure it. If you had a separate VM that was running SAB, SB and CP, and another VM running Plex, and possibly another running MySQL and XBMC updater, then if unRAID died it would only impact unRAID. All your other VMs would still be fine, which means you don’t need to worry about re-creating or re-configuring those apps. If unRAID is your base OS as suggested in the virtualization categories, then these VMs would be out of commission until the server was rebuilt, but you would only need to re-point the virtualization software to the pre-existing VMs and then restart them.

3. Server/Computer Consolidation
Even though this is not as prevalent an issue as in the corporate world, many users here have multiple computers for different tasks. Some have spoken about software-based routers, whereas others (such as myself) have Active Directory and Exchange running at home, or other software. Rather than buying additional servers to manage this, being able to virtualize on top of unRAID allows you to expand your home server environment as your needs grow, without having to invest in additional hardware (unless you have a minimal unRAID hardware config, in which case you may need to make an investment).

4. Test environments
One of the really nice options virtualization allows is that you can easily create and destroy VMs. This gives you a ton of options to try different configurations (again, without needing new hardware) and figuring out exactly what you want to do before moving it into production. For example, say you want to add new functionality to unRAID (like MySQL and maybe XMBC centralized library), but have no idea what you are doing, and don’t really want to mess around with your unRAID server. With virtualization you could easily create, tweak, and modify a test VM until you are happy with the results, and then, once you are comfortable you can make the necessary changes to your production unRAID server. This is a far better approach than trying to undo changes on your production server if you find something went wrong.”

Bill then added at the end:

“Lastly, while I’ve made reference to unRAID blowing up and other nasty things happening to highlight my points, the likelihood of this is pretty small (I think). The way we run things now (i.e., unRAID with plugins) works for thousands of people without issue, and likely will continue to do so for years to come – I don’t want to leave anyone with the impression they are running around with a ticking time bomb just waiting for it to explode.”

Can you give me a visual on how this all works?

Tom: To demonstrate the benefits from a HW perspective, let’s see how this can play out by using a typical unRAID home AV set up. As you can see in the diagram below, the unRAID server streams content to several devices, which in turn feed either a TV or a monitor.

unRAID home AV setup without virtualization

Now look what happens to the setup when we install Xen/unRAID.  We virtualized four applications into the Xen/unRAID server, eliminating four items of hardware that were taking up space and drawing power.

unRAID home AV setup with virtualization

Here’s another visual to show you the difference in architecture between unRAID and Xen/unRAID.

Comparison between unRAID and Xen-unRAID Architecture

As you can see in the diagram above on the right-hand side, the Xen Hypervisor runs directly on the hardware. It is responsible for managing CPU, memory, and interrupts. The Control Domain (dom0) is the host virtual machine (VM). It has special privileges like the capability to access the hardware directly, handles all access to the system’s I/O functions and interacts with the other VMs. It also exposes a control interface to the outside world, through which the system is controlled. The Xen hypervisor is not usable without Domain 0, which is the first VM started by the system.

When did you first become interested in virtualization from an unRAID perspective?

Tom: I’ve been excited about virtualization for a couple of years now. I designed the AVS-10/4 with virtualization in mind, looking for motherboards and processors that could utilize virtualization technology.

Why the recent impetus and focus on unRAID virtualization?

Tom: Virtualization technology has come a long way, especially in the last couple of years. It’s now a mature and trusted technology, used by huge corporations. The Open Source tools have matured to the point that it’s pretty easy to incorporate into unRAID. Another reason I focused more on this recently was because I wanted to improve the user experience in running media-based applications, and I wanted users to utilize their hardware better, especially AVS-10/4 owners.

Another reason I focused on virtualization now is because the latest implementations provide a very effective separation between functionality. This also increases security. If you expose your server to the Internet, you have to be concerned about security. You need to make sure that Internet-facing VMs you install are “battle hardened” (such as Centos).

Why did you pick Xen as your first hypervisor?

Tom: I consulted with several virtualization experts, and the consensus was that Xen would be the best to start with. I know that some may disagree, and it’s not a knock against other virtualization options such as KVM, but we had to start with one.

Do you plan supporting additional virtualization hypervisors?

Tom: We’re studying this. I expect there will be a shake out in the virtualization field in the next couple of years as it’s very competitive. Some will drop off. I expect Xen is around to stay. If this isn’t the case, then we’ll adapt.

Are there any disadvantages to virtualization?

Tom: Three come to mind:
1. You need to use reliable hardware and have a good backup strategy. If your hardware fails (CPU, RAM, motherboard, power supply, disk controller, etc.), all functionality provided by your virtual machines is unavailable. Xen has failovers built in and one of the many advantages of unRAID OS, aside from it’s rock-solid reliability, is that it’s hardware agnostic, enabling rapid recovery.  I also made sure that the selection of components for the AVS-10/4 were high quality and very reliable.
2. From a software perspective, you had better trust the source of your virtual machine images. This would include people on the unRAID forum who will be creating VM “Appliances”.
3. Potential performance slowdown. If you put too many VMs on the platform, you may have a performance problem (speed of execution, and not results). If this happens, you’ll need to get a more powerful processor, add more RAM, or get an additional server.

How will this impact unRAID plugins?

Tom: There are a lot of very sophisticated plugins for unRAID that our users have developed to run applications like XBMC, Yamj, CouchPotato, etc. Everytime there’s an update to the unRAID Server OS, the plugin authors have had to make changes. However, when Xen/unRAID is implemented, the more heavyweight applications will be run in VMs and changes to the unRAID OS won’t affect them. Hopefully, this will help plugins be more limited in scope to lightweight applications and webGUI extensions for control/status.

What will the impact be on your customers who aren’t interested in Xen/unRAID?

Tom: Little to none. You can boot normally just as you do now.

Will you be selling fully-configured servers with Xen/unRAID pre-installed?

Tom: Yes, as soon as we’re out of beta on 6.0, you’ll hear more about this.

What are some useful links to learn more about Xen and unRAID virtualization?

Tom: Here are a few:

  • Introduction_to_Xen_Architecture (by Linux Foundation)
  • There’s a virtualization category listed on the main page of the unRAID Forum, where our super smart, knowledgeable, and helpful unRAID users have created some great posts and are willing to answer your questions on virtualization.

Discuss this in the unRAID Community Forum (registration required to post)…