Introduction

Quality Virtual Desktop is a powerful, open-source virtual desktop infrastructure (VDI) that makes it easy to deploy highly scalable and low-cost solutions to provision any number of users with local and remote access to their Linux desktop environments. QVD provides the perfect way to manage Linux users within large organizations, allowing systems administrators to effectively implement security policies, manage application installation and provision remote desktop access with ease.

QVD virtualizes Linux desktops by using one of two virtualization technologies. Most commonly the Linux Kernel Virtual Machine (KVM) is used as a complete bare-metal hypervisor, however as of QVD 3.1, it is also possible to take advantage of Linux Containers (LXC) to achieve operating-system level virtualization. This virtualization helps to keep each user’s environment as its own discrete entity, to improve security and stability.

Regardless of the virtualization technology employed, QVD uses a number of core client-side and server-side components to create a complete QVD solution. In the client-side is the QVD GUI Client. The client software can be installed on any host and is capable of connecting to a VM running on a QVD Server Node.

QVD overview

Figure 1 : The QVD architecture overview

The QVD Server Node is a server-side component. It is a host that runs the QVD Server Node components, including the QVD Node daemon, the L7R daemon and the HKD. A QVD Server Node is responsible for accepting requests from the QVD Client and for loading a VM to serve the client request. QVD is designed to work with clusters of Server Nodes, each running the virtual machines to service different sets of users. The L7R daemon on a Server Node is nothing but the Layer-7 Router, which is responsible for authenticating users and routing client requests to the appropriate Server Node in the cluster that is running the VM for an authenticated user. HKD is the House Keeping Daemon, which is responsible for starting and stopping virtual machines and for performing virtual machine health checking.

Besides the QVD Server Nodes, the following components are also available in the server-side:

  • Administration Server: The Administration Server or the QVD Web Admin Tool is a web-based GUI that allows an Administrator to configure and monitor the running of the QVD environment.

  • PostgreSQL DBMS: In order to facilitate authentication requests, and to determine which image to load within the Virtual Machine, QVD Server makes use of a PostgreSQL database which is generally referred to as QVD-DB.

Since most QVD deployments comprise of a cluster of Server Nodes, the following components are also becoming common-place in many QVD environments:

  • Load Balancer

  • Shared Storage Facility (e.g. NFS etc)

Figure 2 depicts how all these components work together.

howcompsworktogether

Figure 2 : How QVD delivers virtual desktops to users?

When a user logs in via a QVD GUI Client and requests for a virtual desktop, the load-balancer routes the request to that Server Node that is least-loaded and has the most resources. The L7R component within that Server Node connects to the PostgreSQL database to check configuration settings and to authenticate the user. This configuration information is typically entered by an Administrator via the QVD Web Admin Tool.

Once authenticated, the server and client renegotiate an NX protocol connection secured using SSL. The client is then able to connect to a desktop loaded within the allocated virtual machine running on the Server Node. To prepare the desktop for provisioning to a user, prior to any connection from the client, the Server Node will load a disk image from the Shared Storage into VM. Also, when a disk image is available within the Shared Storage, the QVD Web Admin Tool can be used to convert it to an OSF (Operating System Flavor). When the VM is started for a particular user, a qcow image is created for the user’s home directory. This is also stored on the Shared Storage. Shared Storage is usually accessed on a mounted network filesystem such as NFS.

As you can see, these client and server-side components closely co-ordinate with each other to deliver desktops to users. This implies that a problem in any one of these components can ripple and affect the performance of the dependent components, thereby slowing down or suspending desktop delivery! Typically, users to the QVD service expect their virtual desktops running on Server Nodes to operate as well (if not better than!) as the physical desktops. Slowdowns in desktop delivery can hence leave users disappointed with the quality of the virtual desktop service, forcing them to either reconsider or worse, shelve, QVD rollout plans! If this is to be avoided, administrators should be able to quickly locate the source of a slowdown in the QVD service – is it the network? the web client? the load balancer? the Server Node? the Virtual Desktop? the PostgreSQL server? Or the Shared Storage? Rapid and accurate root-cause identification can hasten problem resolution, thus ensuring high uptime of the QVD service and an excellent user experience! To achieve this, administrators need visibility into the performance and status of every layer of every tier of the QVD service. This is exactly what eG Enterprise offers!

eG Enterprise offers dedicated monitoring models for each of the component silos engaged in delivering the QVD service. Specialized monitors are available out-of-the-box for the web server hosting the web client, the PostgreSQL database server, the NAS/SAN device hosting the shared storage, and even the routers/switches providing network connectivity to the components. In addition, eG Enterprise also offers extensive monitoring support to the QVD Server Nodes and the virtual desktops running on them. Performance metrics collected from each of these applications are automatically correlated by eG using its patented correlation algorithm – this algorithm analyzes the real-time performance results gathered from the service components in the light of the inter-component dependencies that the eG agent auto-discovers. Based on this analysis, eG Enterprise accurately pinpoints the root-cause of the slowdown!