QVD supports two different virtualisation technologies: KVM (Kernel Virtual Machine) and LXC (Linux Containers). Each virtualisation technology comes with its own set of advantages and will prove more useful for particular use cases. Therefore, a good understanding of your own requirements and an understanding of these two technologies will help you to determine how to configure your QVD deployment.
QVD architecture
This image shows the typical network connectivity and interactions between the different components within a production environment. Here, it is clear that the L7R components are accessed via a standard hardware load-balancer, but are still capable of routing connections to the correct Virtual Machine, even if it is running on a different node server. The image also shows how the Virtual Machines are loaded from images stored within a shared storage environment, while the HKD is able to start up Virtual Machines for users as they are required
High-Level Architecture Diagrams
In this section we will provide some simplistic diagrams explaining the architecture of a typical QVD deployment to show how the different components interact.
1 Client and Server Interaction in the QVD Architecture
2 QVD-WAT and server node interactions in the QVD architecture
Deploy your virtual desktops from different hypervisors
Linux Containers (LXC)
LXC provides Operating system-level virtualisation. In this way, they act as an alternative to the full hardware-level virtualisation provided by the KVM hypervisor. LXC behaves in a similar manner to a chrooted environment within Linux, but offers a greater level of isolation and management of resources between containers through the use of namespaces and cgroups. For instance process IDs (PIDs), network resources and mounts for each container will be isolated from other containers and can be logically grouped together to apply resource management rules and other policies specific to the container. This allows you to gain many virtualisation benefits while keeping down overall resource requirements and by re-using the same kernel across virtual machines. LXC is fully supported by the Linux Kernel, and has been included in QVD.
Kernel Virtual Machine (KVM)
KVM is a fully featured hypervisor that runs inside of the kernel of the linux host operating system. The hypervisor ensures absolute separation from the underlying host operating system, allowing you to load completely different operating systems and distributions into each virtual machine and expect them to function just as if they were running on completely separate hardware.
While there is some debate over whether KVM is actually a Type-1 bare-metal hypervisor, since it does require the linux Kernel in order to function, most virtualisation experts agree that combined with the linux Kernel, KVM functions in exactly the same way as any other bare-metal hypervisor, such as Xen or VMware’s ESXi. In fact, in the recently published SPECvirt 2011 benchmark reports, KVM came second in performance only to VMWare ESX, indicating a high level of viability as a commercial-grade virtualisation platform.
Since KVM uses absolute separation, it is much easier to configure and manage than LXC. However, although it offers competitive performance to other hardware hypervisors, each virtual machine is necessarily running its own kernel. Resources need to be dedicated to each virtual machine, whether they are being used or not. In this way, KVM is not as efficient as LXC, but offers much greater flexibility and ease of management.