Virtualization with passthrough of the video card and USB
QTS operating system from QNAP (version 4.3 at the time of this review) supports two virtualization environments: traditional and container. The first uses its own hypervisor Virtualization Station 3, which is based on KVM. For containers used plugin Container Station, which supports both format - Docker and LXC, the repository QNAP also available private server storage object for accessing third-party servers to containers on OpenStack and S3 protocols.
The built-in hypervisor allows you to allocate hardware resources with redundancy, that is, each guest you can present all the physical CPU cores and all the memory, but when you start the guest you may be denied if more virtual resources are used than is available. But especially interesting is the function of passing thru the video card to the virtual machine. Why might I need to do this in the NAS?
If you look at the new SOHO/SMB/Enterprise class QNAP servers, many of them support GPU installation, and have additional power for powerful graphics cards that are planned to be used for applications related to artificial intelligence and machine learning. On the entry-level models can be quite a deal with experimentation and development, and the top models - to use in combat. It is already quite obvious that GPU in NAS is a new trend that can only be welcomed, because in addition to AI and ML applications, now you can create a full-fledged virtual workstation with 3D graphics and sound on the file server, which we will do now.
Our test QNAP TDS-16489U was released 2 years ago, and does not have power cables for the graphics card, so in terms of the voracity of the GPU, we are limited to 75 Watts, which can give the slot PCI-E 16x. NVIDIA’s professional series of Quadro graphics cards has the P2000 model, which does not require additional power, has 4 ports for monitors and drivers optimized for professional applications, including work in virtual environments. The technical ability to install a video card in the NAS and display the image on the video wall of 4 monitors looks very tempting, especially if you realize that you have no restrictions on performance or file download speed: on the left - 32 Xeon cores (16 physical and 16 logical), on the right - 2-level storage of 180 TB with SSD cache, on top - 256 GB of RAM…
Specialists working with 3D graphics and VDI repeatedly dissuaded me from the idea of setting up a workplace for CAD using the RDP Protocol. All as one agreed that it will be buggy and slow down, regardless of the network, and if you use a video card for such purposes, then immediately display the image on the screen via Displayport locally or IP-extension. We didn’t have a high-quality Video-over-IP extender at hand, but we did have a flagship KVM switch with IP access, Aten KN2124VA, designed to monitor and maintain a large fleet of servers in the data center. This IP-KVM provides direct access to the console from a browser window or through its own software, and can be connected to video cards with VGA, DVI, HDMI and DisplayPort outputs, and the device itself can work in both Gigabit and 100-megabit networks, which uses special algorithms for compressing the media stream. Console modules are connected to IP KVM directly by CAT5 cable, do not require installation of software on the server side and are powered by USB. Assuming the video-over-IP compression algorithms would kill all the picture quality in 3D, I thought we wouldn’t need this device, but I was wrong…
Everything went well - in one click we create a virtual machine, select the pool on which its files are stored, connect ISO Windows 10 x64 from the image and install the operating system in 5 minutes, allocating 8 CPU cores and 16 GB of memory. We launch Windows 10 using the built-in VNC console, install a package of virtual tools, a demo version of 3D Studio Max 19, the latest version of SketchUp, check the availability of the machine through RDP: everything works except SketchUp, which swears at the lack of a 3D accelerator, and now we will give it the whole Quadro P2000.
In QNAP QTS, the GPU assignment of the Board is configured in the HD Station application. You can give the video card to the built-in programs of the operating system, for example, for transcoding video streams, and you can choose the Passthrough mode for the virtualization station. Select the second and in the settings of the guest OS add our Quadro P2000 tab “GPU” on the principle of one video card to one VM. Run - not loaded. The built-in VNC console of the hypervisor does not work with the hardware GPU, and remote access via RDP does not connect at all, so it’s time to connect via IP KVM Aten, and lo and behold - it worked! Windows 10 has booted up, drivers have been installed and the NVIDIA logo has habitually spun in the remote desktop window, which means 3D support. Perhaps the video card needed to see the monitor connection to activate at boot.
SketchUp editor started almost instantly, feeling the presence of hardware 3D video core, but 3D Studio Max, which worked perfectly with a virtual VGA driver, refused to start. After downloading a large SketchUp project and playing with objects, I came to the following conclusions: a virtual workstation for working with graphics on the NAS is not fantastic, the QNAP QTS 4.3 operating system supports the entire range of professional and gaming NVIDIA graphics cards, and 3D acceleration works both on direct connection and via remote access protocols. But the example with 3D Studio Max still says that not everything is as smooth as we are described by marketers, and even QNAP itself draws attention to the fact that the graphics cards in their NAS are installed primarily for computing on the GPU.
And here, by the way, full expanse. First, the container hypervisor has built-in templates for artificial intelligence frameworks. Second, there is a separate QuAI application to manage various machine learning models on the GPU (supported by Caffe, CNTK, MXNet, and Tensorflow) that runs on top of the container hypervisor and can easily monitor the load on the graphics card. However, on our TDS-16489U this app was unavailable.
Interestingly, when creating a new path, it automatically enabled snapshots, and some configuration changes, the hypervisor itself creates a snapshot. Snapshots can be configured on a schedule and viewed in a convenient directory.there is, incidentally, full expanse. First, the container hypervisor has built-in templates for artificial intelligence frameworks. Second, there is a separate QuAI application to manage various machine learning models on the GPU (supported by Caffe, CNTK, MXNet, and Tensorflow) that runs on top of the container hypervisor and can easily monitor the load on the graphics card. However, on our TDS-16489U this app was unavailable.
Virtual switches allow not only to configure the topology of the network, rigidly tying the network port to the guest machine, but also to combine ports before forwarding, as well as to include the Protocol of protection against the formation of loops, STP. Note that Qnap Virtual Switch does not have a dedicated network port for management, and if you are keen on distributing IP addresses of the internal subnet to virtualka, you can cut off access to the Web-interface of the entire NAS. The only thing lacking in such an abundance of virtualization is the ability to fully migrate virtual machines from one storage to another. This feature does not exist at all, and you can only migrate a guest OS by cloning a powered-off virtual machine and then importing a copy.
By the way, in terms of importing foreign VMS everything is more than pleasant: VMX, OVA, OVF and QNAP formats are supported. We tested the migration of Ubuntu 18.04, Debian 9 LTS and Windows Server 2016 from VSphere 6.0 to QNAP Virtual Station - everything went smoothly: the copy is deployed in a new directory, so you can import the same VM multiple times.
In General, all the software functions of QNAP servers in one article will not consider, so let’s continue to get acquainted with the NAS itself.