Samiksha Jaiswal (Editor)

QVD (software)

Updated on
Edit
Like
Comment
Share on FacebookTweet on TwitterShare on LinkedInShare on Reddit
Developer(s)
  
Qindel Group

Operating system
  
Linux

Type
  
Application Delivery

Stable release
  
3.4 / 2013

Platform
  
i386, amd64

License
  
GNU GPL

QVD is an open-source Virtual Desktop Infrastructure (VDI) product built on top of Linux. Its main purpose is to provide remote desktops to users.

Contents

Desktop support

QVD can support any Linux Desktop that runs on top of X11 (GNOME, KDE, Xfce, LXDE, etc.).

Client support

Currently, clients are available for Microsoft Windows, Linux, Mac OS X and Android.

Scalability and reliability

The server software can run both on a single-node configuration or in a multi-node configuration.

In the later case, the user sessions (or virtual machines) are automatically distributed along the running nodes. The software is able to recover automatically in the case of one node failing, redistributing the user sessions over the remaining nodes.

Network bandwidth requirements

The NX libraries are used to reduce the network traffic resulting in very low bandwidth requirements for most common corporate desktop usage (i.e. browsing the web, handling email, editing documents, etc.).

Hypervisor

QVD can run virtual machines using KVM or LXC.

KVM allows for a complete isolation between the host and the guest virtual machines.

LXC on the other hand, runs the virtual machined inside isolated containers inside the host. That greatly reduces the CPU and memory requirements per user session as the kernel is able to share resources (i.e. disk buffers) between the containers more effectively.

Administration

Administration of the platform can be performed through a web-based tool or using the provided command line utilities.

Provisioning of new users can be automated.

Several back-ends are available for authentication and new ones can be independently developed as plugins.

Open source

QVD is a pure open-source project, accessible to the whole developers community. That means:

  • The availability of the source code and the right to modify it is very important. It enables the unlimited tuning and improvement of a software product. It also makes it possible to port the code to new hardware, to adapt it to changing conditions, and to reach a detailed understanding of how the system works. This is why many experts are reaching the conclusion that to really extend the lifetime of an application, it must be available in source form. In fact, no binary-only application more than 10 years old now survives in unmodified form, while several open-source software systems from the 1980s are still in widespread use (although in many cases conveniently adapted to new environments). Source code availability also makes it much easier to isolate bugs, and (for a programmer) to fix them.
  • The right to redistribute modifications and improvements to the code, permits all the advantages due to the modifiability of the software to be shared by large communities. This is usually the point that differentiates open-source software licences from nearly free ones. In substance, the fact that redistribution rights cannot be revoked, and that they are universal, is what attracts a substantial crowd of developers to work around open-source software projects.
  • The right to use the software in any way. This, combined with redistribution rights, ensures (if the software is useful enough), a large population of users, which helps in turn to build up a market for support and customization of the software, which can only attract more and more developers to work in the project. This in turn helps to improve the quality of the product, and to improve its functionality, which, once more, will cause more and more users to give the product a try, and probably to use it regularly.
  • 1.x, 2.x

    QVD 1.x and 2.x were versions of the product based on FreeNX tailored for a specific client and never publicly released.

    3.0

    QVD 3.0 was released at May 2011. Its main Features were:

  • Able to provide Linux remote desktops to users.
  • Supported on Ubuntu Linux.
  • KVM was used as the hypervisor.
  • The connection protocol was HTTP-based and run on top of SSL.
  • The NX libraries were used to reduce bandwidth usage.
  • Bidirectional audio.
  • Multi-node support.
  • 3.1

    QVD 3.1 was released in October 2012.

    The main addition in this version was the support for Linux containers. That made possible to reduce the CPU and memory requirements per user session.

    Other features in this version were:

  • A versioning system for the guess operating system images.
  • Support for SuSE Linux Enterprise Edition (SLES) platform.
  • 3.2

    QVD 3.2 was released by December 2012.

    The main additions on this release were as follows:

  • Support for Btrfs as the storage back-end.
  • Support for a private communication channel between the client and the VM that could be used by extensions. I.e. to support serial port redirections or VPN.
  • Better cluster support, reducing the recovery times from host and network failures.
  • Fundamentals

    QVD is written mostly in Perl, with some parts in C/C++ and Javascript.

    It runs in a Linux OS.

    As the delivery protocol it uses the NX technology, the user desktop runs as a remote X11 session even across slow or low-bandwidth connections. It is possible to run the client on Windows and Linux platforms or via Thin Clients.

    The main focus is to provide desktop access for large number of users with a very small footprint for each user session by:

  • Using the same OS image for all the users (using overlays)
  • Sharing memory between user processes (using LXC)
  • Using low bandwidth (using NX)
  • Basics

    QVD is composed by actors and components.

    The QVD’s actors are

  • Users (End users): People that work at their desks, using office packages, email, whatever. Generically identified by login and password.
  • Virtual Machines: Running Linux Desktops and owned by the users. These VM’s runs under a virtual machine on Linux Nodes.
  • Nodes: Physical servers where the VM’s run.
  • Images: Templates with shared properties as the applications installed, memory for the VM or space for the user’s home.
  • The QVD components are

  • QVD-Client: The QVD client software that connects with and displays the user's desktop from the server. QVD currently has clients for Windows, Linux, OS X (Beta), and Android.
  • QVD-L7R: Level 7 router. In charge to balance the connections from the QVD-Client to the Virtual Machines and the responsibility for login user before they went into their Virtual Machines.
  • QVD-HKD: House keeping daemon. Responsible to interact with the Virtual Machines, starting, stopping, and update the VM’s status in the QVD Database. Currently it supports KVM and LXC as their virtualization models.
  • QVD-Database: Holds the status for all users, Vitual Machines, images, hosts. All the platform information is stored in the database.
  • QVD-Administrative tools: Composed by CLI and the WAT (Web administration tool) that provides an easy and simple way to administrate the whole platform, from a couple of nodes to hundreds.
  • QVD-VMA: The agent that runs in the Virtual Machine, allowing users to connect, enable printer sharing, audio, hooks, etc.
  • References

    QVD (software) Wikipedia