11 March 2016

Unraid Server OS 6.2 Public Beta

On behalf of the entire team here at Lime Technology, we are pleased to announce the availability of the Unraid 6.2 public beta. Our goals with this release were simple: add features and make things easier. Let’s go over the changes to show you how:

Increased device limits for Trial and Pro

A number of users have written to us since the release of Unraid 6, asking us to increase the device limit restriction for the trial version. After thoughtful consideration, we have to say, we agree! That’s why we are pleased to announce that as of the 6.2-beta, trial users will be able to attach up to 6 storage devices for their trial.

Pro users will now benefit from no attached device limits whatsoever, and additionally will be able to assign up to a total of 30 devices in the array (2 parity + 28 data) in addition to another 24 devices in the cache pool. That’s over twice as many assignable devices for Pro users!

Dual-parity support

One of the key benefits of Unraid is the ability to isolate the risk to data loss due to device errors. In addition, parity would provide protection for that failure, and if a second disk failed before the first was repaired, only the data on the disks that failed would potentially be lost (other devices in the array would still have 100% of their data intact). This compares to single-parity RAID-5 solutions where two concurrent failures would result in 100% data loss on ALL of the drives in the array.

With dual parity in Unraid 6.2, users can suffer up to two concurrent disk failures and still have access to all of their data. This second level of fault tolerance still shouldn’t be looked at as a replacement for good backups, but it most certainly will improve the reliability of data protection on your system.

GUI boot mode

While getting started with Unraid can be incredibly easy, in 6.2, we’ve made it even easier with our new GUI boot mode. Now you can administer your system locally using a browser inside our new graphical interface. This can be extremely beneficial for users that are troubleshooting networking issues, which can make remote administration a challenge. In this boot mode, browser connection to the web interface is launched automatically once a user logs in. This connection will work even if there is no network cable attached because the server is on the same system.

This new boot mode is NOT a replacement for a desktop VM on Unraid by any means, but rather, provides a simple way to connect to the Unraid web interface, eliminating network issues from interfering. It’s just a friendly interface with the minimal tools required to administer your system.

Docker made even easier

One of the biggest advantages of Unraid’s approach to Docker management has been simplicity. With 6.2, our focus was to make things even easier for new and existing users alike, reducing the number of steps for initial configuration and for adding new applications to your system.

Default volume mapping for appdata

The majority of containers out there are configured to store application-specific data through a Docker volume mapping. This mapping is most commonly tied to a sub-folder off of a share that most users have named “appdata.” Since this is a fairly common occurrence, we thought it’d be helpful for people if they could automatically map that path for the containers that require it. Specifying a path here just reduces the number of steps required to add future containers to your system. ​With this new default setting, containers that specify a volume mapping for “/config”, it will map to a sub-folder off the path specified for this setting, and the sub-folder name will match the name specified for the container.

Simplified controls for Basic view

With these new default settings options, users will now also be greeted with an even simpler process for adding containers to your system. The new basic view mode when adding a container will reduce the number of fields displayed to only the ones that require a setting to be specified, while all other fields will be hidden. The idea is to let basic users get started faster, while letting advanced users have access to the tunable controls they need. This applies to both the Docker Settings and Add Container pages in the webGui.

Update containers without starting them

In the past, when containers were updated, they would also be run at the same time. While this typically isn’t a big deal, it is kind of annoying that the two actions have been connected when truthfully we want the ability to update the app independent from turning it on and off. Thankfully in this release, this is no longer the case, and containers can be updated without turning them on.

Get started faster with new auto-share creation

New users that want to take advantage of Docker or virtual machines will find getting started with them to be much quicker than before. When these services are enabled, Unraid will automatically create whatever shares are necessary and set them to utilize the most ideal share settings. This means that new users will no longer have to manually create shares to store their application data or their virtual disk images. Users can still opt to provide storage locations for some of this manually, but our goal with this is to simplify things for the user.

One thing important to note is that this will only apply for users that have at least one cache device assigned to their systems. Users without a cache device will still need to manually enable Docker and VMs as well as specify a storage location for their image files.

Major upgrades to virtual machines

Thanks to a lot of coffee, testing, and reporting from our wonderful user community, we are really excited to talk about some of the new enhancements to virtual machines for 6.2.

Simplified VM storage management

Similar to Docker, we really wanted to simplify the process for users to create virtual disks on Unraid. With this release, you can set an Unraid share as the default storage location for your new virtual disks. The vdisks will get created on a device per the policies on the share, but you’ll be able to manually designate a specific disk target on a vdisk-by-vdisk basis as well. The idea is that all vdisks you create for a VM will stay in the same folder and on the same share, but you can manually choose where each vdisk will live (on a disk in the array or in the cache/pool).

Improved support for OVMF

With version 6.2, users will be able to create multiple OVMF VMs without difficulty (previous releases only supported a single OVMF VM per Unraid system). OVMF represents a major step forward in VM technology as it adds support for UEFI and SecureBoot. A key benefit of UEFI is better support for passing through physical graphics devices to VMs (GPU pass through). When assigned to an OVMF virtual machine, if your GPU supports UEFI, it should work fine. Most modern operating system support UEFI (Windows 10/8.1/8, Ubuntu 14/15, SteamOS, etc.), so why not take advantage of it?

Support for Hyper-V in Windows VMs with NVIDIA GPU pass through

In Windows-based virtual machines, Microsoft enabled a method for hypervisors to “enlighten” Windows to the fact that it is running in a virtual machine. This knowledge let Windows act a little differently because it knew that certain hardware it was being presented with was just being emulated. This allows for improved performance, plain and simple. However, when passing through an NVIDIA GTX-series GPU to a VM, the NVIDIA drivers would detect this enlightenment and disable the GPU with a “Code 43” error. To get around this, Unraid’s webGui would automatically disable the Hyper-V enlightenments when an NVIDIA GTX GPU was assigned. While this does have an impact on guest performance in general, gaming performance didn’t seem too bad for most games. However, there were some games (in one cited example, a game called Tera) where the performance hit was massive to the point where players said it was “unplayable.” While all the games we’ve tested haven’t really exhibited this behavior, our library is limited and so is our time to play :-(. However, with version 6.2, we have implemented a patch from the upstream that once again enables us to enlighten Windows VMs without the Code 43 error! Existing VMs will need to be edited to toggle the Hyper-V setting to yes, but new VMs will automatically keep Hyper-V on for all Windows guests by default.

Miscellaneous bug fixes and enhancements for GPU pass through

In addition to the NVIDIA specific benefit mentioned previously, we have also made a number of ‘under the hood’ adjustments to the OS to improve the likelihood of successful GPU pass through with various hardware. This includes setting the IOMMU mode to pass through by default, as well as adding some custom patches to libvirt to support x-vga directly, eliminating the need to use custom QEMU commands altogether. There are a number of other minor tweaks and adjustments that have been made to improve this even more.

Assign stubbed PCI devices to VMs

While Unraid has had support for passing through GPUs and sound cards to VMs for some time, many users have enjoyed passing through other PCIe devices to their VMs as well. Things like capture cards, tuner cards, USB controllers, network controllers, and lots of other devices work well using the same virtualization pass through technology we do for graphics and audio. However, the process for users to do this in the past has been a bit arduous. In Unraid 6.2, users can “stub” a PCI device and when they reboot their system, the VM add/edit pages will now show the device they stubbed as assignable to the VM.

Improved support for assigning USB devices

When it comes to assigning USB devices to virtual machines, Unraid 6.2 features support for a new USB3 virtual controller. In the previous releases, Unraid has defaulted to using the libvirt created USB controllers for all virtual machines. Libvirt defaults to leveraging a legacy controller model that has been around much longer, but does not work with all USB devices. The USB3 controller in this release is known to reduce virtualization overhead compared to the USB2 counterpart, and can support more devices. We’ve been experimenting with it for quite some time and have had great success, which is why you’ll now see it as the default USB controller selected when creating your VMs, but you can still toggle to the legacy USB2 controller if your VM guest lacks driver support for it (Windows 7 is known to NOT support this controllers, but Windows 8 and above do).

OpenELEC 6.0.0 VM Template

Earlier this month, the OpenELEC team published 6.0.0 stable for the world to use. The major highlight of this release is the upgrade to Kodi 15.2. We recently completed our virtual machine support for this and users of the 6.2-beta will be able to download this new VM template for testing.

Improved VNC quality and performance

Another big improvement folks will find with 6.2 is support for a better virtual graphics device. In previous Unraid releases, we would utilize the Cirrus or vmvga virtual graphics adapter to generate the graphics for a VNC session to the VM. These virtual adapters are considered the “tried and true” of the virtualization world, but QXL can provide a higher-resolution session as well as better performance within virtual guests that support it. Similar to the USB 3 controller, we have defaulted graphics through QXL in this release, but you can toggle the legacy methods through a drop-down if you run into issues (please let us know if you do).

Download VirtIO drivers in the webGui

In the past, we have asked users to download the VirtIO drivers on another device, and then copy them to the ISO share on Unraid. With version 6.2, you will find a new option on the VM Manager settings page that allows you to select and download a driver ISO for VirtIO directly within the webGui. The ISO will automatically be saved to your ISOs share (or one will be created for you if you don’t have one already). Just another step in trying to make things a little easier.

General storage performance improvements

Some users had previously reported performance issues when writing to SSDs in their cache pool. In our testing, we were able to find that this isn’t universally true, but for those that have experienced any performance issues in this scenario, Unraid 6.2 may deliver a better experience. This improvement comes from a tweak made to the IO scheduler specifically for SSDs that can improve performance, especially for virtual disks and when multiple I/O operations are occurring.

In addition, a number of users had reported performance issues with parity check speeds on some SATA controllers (Marvell in particular). While this issue didn’t affect everyone with these devices, we were able to narrow down a few key factors that would cause the issue to surface. After much research and testing, we were able to implement some performance improvements that should restore any previously lost performance on these (and potentially other) storage controllers.

Lastly, we also have added official support for Unraid’s “Turbo Write” mode. This mode utilizes all the disks in the array when writes are occurring to reduce the amount of IOs required per write operation (the technical way to describe this is that turbo write switches Unraid from using a read/modify/write algorithm to a reconstruct-write algorithm). The result is that in an array of all modern storage devices, write speed can typically saturate a 1gbps network without the need for a cache. While this mode does require all your disks to remain spinning when writes are occurring, it can be ideal when bulk copying data to your system, or other times where you simply want to bypass using a cache device and have faster write performance to the array.