The next version of QVD, we’re working on, will support Linux Containers, the lightweight virtualization technology accepted and officially supported in the mainstream Linux kernel >= 2.6.29.
With LXC, as in BSD Jails and Solaris zones, processes run on top of the same kernel as the host machine, without any kind of hypervisor, leading to a big leap in performance improvement. This architecture also increases the container density per host, since many processes that are related to hardware don’t have to run at all—in fact they shouldn’t, in the worst case scenario they could access the real hardware resources and conflict with the host.
In QVD, the processes running within the containers have been greatly reduced to just a couple of getty’s (to access the container when the network is down, replacing the traditional serial port access), sshd, cupsd, cron and obviously the desktop that is available to the users. Thanks to this simple configuration, we’re achieving a memory footprint of approximately 100 MB per container, which in a hypothetical machine with 16 GB RAM and assuming enough CPU is available, nothing crazy these days, gives us a rough estimate of 150 users per box.
It’s undeniable, too, the improvement in speed that we get when we eliminate the booting and shutdown stages of the virtual machine. There’s no kernel in the operating system trying to detect and configure hardware, and the init scripts, as we have already seen, are only those required for the container’s processes to run. Here at QVD, and beyond the initial provision procedure, a container just doesn’t take any time at all to “boot”, it’s just a mouse click and the desktop is ready waiting for connections.
We’ll have LXC available in the upcoming version 3.1 of QVD, which will see the light of day this year allowing the administrator to choose between full virtualization and lightweight virtualization with KVM and LXC.