When computers were first being developed it was pretty common for each individual user to not have their own PC at their desk like they do today. Instead, there was a central mainframe that had all of the computing power that users accessed through what is called a thin client. Thin clients themselves have little to no computing power by themselves, but simply work as a way for a user to access the central mainframe. However, as hardware became faster, cheaper, and smaller, thin clients largely gave way to individual PCs that each user had sitting at their desk.
Interestingly, in some demographics there is currently a push to remove individual PCs and go back to using a variation of thin clients powered by a central server. The difference between the original method and the modern one is that the modern one works by providing the user with a virtual desktop that is intended to be nearly indistinguishable from a physical desktop. So even though the user just has a little thin client, it appears to them like they have the full power of a local PC. This method is currently being called Virtual Desktop Infrastructure or VDI for short.
Guest author Matt Bach is the head of Puget Labs and has been part of Puget Systems, a boutique builder of gaming and workstation PCs, since the early days working in various subsets of production. This article was originally published on the Puget blog.
VDIs are an incredibly complex topic once you get into the fine details so we will largely be avoiding the in-depth technicalities of virtual desktops and instead focus on the basics of the technology and our experiences while using it.
In this article we will first discuss the major VDI solutions that are currently available and how Nvidia GRID works to add GPU acceleration to a VDI. Then, we will look at some of the more common advantages and disadvantages of virtual desktops. Finally, we want to give our general impressions on setting up and using virtual desktops for a variety of uses and make some educated guesses as to whether virtual desktops truly are the future of computing or if they will likely remain a niche technology.
Desktop Virtualization Solutions
There are many different ways to create and access a virtual desktop ranging from simply having a virtual machine with remote desktop capabilities to full desktop virtualization and streaming solutions like Citrix XenDeskop and VMWare Horizon View. Since each method is designed for slightly different applications, each method has its own unique advantages and disadvantages.
If you simply need to access a handful of virtual machines and do not need GPU acceleration then using a free solution like Microsoft Remote Desktop or TightVNC may work just fine. These options are largely free, require very little network infrastructure, and are easy to setup. You simply install your software of choice on the client and host machines and use it to connect the client machine to the host machine. The main downsides to using something like this is that you have no power control over the host machine (you can turn it off, but can't turn it back on easily), most solutions do not support GPU acceleration, it requires a full PC as the client machine, and it is not very easy to manage if you are handling a large number of users and machines since you have to manually maintain as many virtual desktops as you have users.
If you need GPU acceleration or have a large number of users, paid solutions like Citrix XenDesktop or VMWare Horizon are likely what you want. Both support multiple kinds of desktop virtualization from simple remote desktop (with power control and GPU acceleration) or using a master image that a virtual desktop can use as its base image each time it is booted.
The advantage of using a master image mostly comes into play when you have a large number of users since you only need to maintain a single OS rather than dozens or even hundreds of them. In addition, through the use of Active Directory you can make it so that it does not matter which virtual desktop a user logs into which means you only need as many virtual desktops as you have active users at one time rather than a separate desktop for each and every user.
Citrix XenDesktop and VMWare Horizon are currently the top two VDI solutions available
However, be aware that both XenDesktop and Horizon require special licensing and a decent amount of infrastructure. In addition to the client machines and virtual desktops, you also need at least two servers for Active Directory, DNS, SQL, and the Desktop Delivery Controller (XenDesktop or Horizon View) and all the licenses that go along with them.
Nvidia Grid for Virtual GPU Acceleration
GRID is the name of a group of video cards offered by Nvidia that are designed exclusively for use in virtualized environments. When it comes to virtualization, you can't simply put any normal video card into a server and expect it to work. First, it has to support virtualization (most often VT-D) which right away eliminates GeForce video cards. Second, it has to be able to operate properly without a monitor attached. While most Quadro cards are designed to be able to do this with proper driver support, Nvidia GRID cards are specifically made to operate without a physical monitor. In fact, they don't have any video outputs at all!
Nvidia GRID cards are also unique in that every card actually has multiple GPUs on it. This has been done before on cards like the Geforce GTX 690 and the newer GeForce GTX Titan-Z, but those are designed for the two GPUs to be used at the same time in SLI. Nvidia GRID, on the other hand, is designed for each GPU to be used individually by entirely different users.
GRID K340 | GRID K520 | GRID K1 | GRID K2 | |
Target Market | High Density Gaming | High Performance Gaming | High Density Workstation | High Performance Workstation |
Concurrent # Users* | 4-24 | 2-16 | 4-32 | 2-16 |
Driver Support | GRID Gaming (Geforce) | GRID Gaming (Geforce) |
GRID Workstation (Quadro) |
GRID Workstation (Quadro) |
Total GPUs | 4 x GK107 | 2 x GK104 | 4 x GK107 | 2 x GK104 |
NVIDIA CUDA Cores | 1536 (384/GPU) | 3072 (1536/GPU) | 768 (192/GPU) | 3072 (1536/GPU) |
GPU Core Clocks | 950 MHz | 800 MHz | 850 MHz | 745 MHz |
Memory Size | 4GB (1GB/GPU) | 8GB (4GB/GPU) | 16GB (4GB/GPU) | 8GB ECC (4GB/GPU) |
Max Power | 225 W | 225 W | 130 W | 225 W |
Cooling Solution | Passive | Passive | Passive | Passive |
PCI-E Version | x16 Gen3 | x16 Gen3 | x16 Gen3 | x16 Gen3 |
~GPU Equivalent | 4x GT 640 (OEM) | 2x GTX 670 | 4x Quadro K600 | 2x Quadro K5000 |
*The number of concurrent users depends on resolution and display quality
GRID cards are divided into two categories: GRID Gaming (K340 and K520) and GRID Workstation (K1 and K2). Both of these categories have one model that has four lower-end GPUs and a second model that has two high-end GPUs.
If it helps, you can kind of think of each of these GRID cards as simply being multiple normal video cards (either GeForce or Quadro) crammed onto a single card. The specifications are not exact, but we listed the closest GPU equivalent for each of the GRID cards in the last row of the above chart. More than the GPU specs themselves, they key difference between the two lines is the driver support for each pair of cards. The K340 and K520 use drivers that have been optimized for games while the K1 and K2 use drivers optimized for workstation applications like AutoCAD, Premiere, Maya, etc.
In addition to the 2x or 4x GPUs on each card, these cards also support vGPU which is the virtualization of a GPU. Basically, it allows for a single GPU to be used by multiple virtual machines at the same time. For example: the GRID K340 has four GK107 GPUs which you could either have assigned individually to four virtual machines if you want maximum performance or you could make it a vGPU and allow up to 24 different virtual machines to use the GRID K340 at the same time. Performance would obviously be much lower per machine, but if you only need basic GPU acceleration it is a great option.
Finally, it's worth pointing out the fact that right now all GRID cards are passively cooled. This does not mean that they run so cool that they do not need airflow, but rather that they are designed to be used in a rackmount with high front to back airflow.
Advantages of Desktop Virtualization
Currently, the main advantages of desktop virtualization come into play when you have medium to large number of users. If it catches on and becomes possible for everyday consumers to "rent" a desktop that resides in the cloud for their personal use this may change, but at the moment virtual desktops are primarily being used by larger businesses.
The advantages for these businesses can mostly be boiled down to:
- With enough users, virtual desktops become cheaper than individual PCs
- Sharing of resources allows each user to have access to more computing power than they would with individual PCs
- Thin clients and servers are more reliable than individual PCs and are much easier to manage
- Since there is no data stored on the client system, data is more secure than it would be on individual PCs
One of the biggest advantages for a business is the simple monetary cost. Instead of needing a standard PC for every user, you can instead use a very affordable thin client or simply a cheaper or recycled PC for each user that connects to a virtual desktop. This does require more infrastructure including multiple servers, but at a certain number of users (which will vary depending on what level of performance each user needs) it becomes cheaper to use thin clients, servers and virtual desktops than individual PCs. In fact, Citrix even has a tool to calculate how much savings you would see by moving to virtual desktops.
On top of the straight-up cost savings for medium to large numbers of users, virtual desktops allow you to over-allocate resources like CPU and RAM. For example: if you have five users connecting to a server with ten CPU cores, you can actually assign each user three or more CPU cores rather than just two. This works out to a total of 15 CPU cores being allocated (5 more than there are physical cores), but virtualization is currently very good at balancing loads. So if one user is doing something intensive, the server can shift around the processing loads on the fly so that user can get extra processing power when they need it. Since it is very rare that every user will be heavily loading their desktop at the same time, this load balancing allows you to either provide more computing power to each user with the same amount of hardware or allows you to use less hardware in the first place to achieve the same amount of computing power.
Virtual desktops can share resources like CPU cores to provide additional computing power to users when they need it.
The third major advantage to a VDI is their reliability and maintainability. In general, PC's are overall more prone to failure and problems than servers and thin clients. Server hardware is designed for 100% uptime by using technologies like ECC memory to achieve maximum reliability which most desktops do not support. Thin clients do not have anything like ECC memory, but they are simply so basic that there is very little to break. And even if they do have a problem, it is much easier to swap out a thin client that to replace an entire user's PC. In addition, if you have a large number of users you really don't want to have to maintain the OS on each individual PC. Instead, VDIs allow you to use a master image for each virtual desktop. Rather than pushing updates to hundreds of computers, you can simply update a single master image and each virtual desktop will automatically use the updated version the next time the virtual desktop is booted.
Finally, virtual desktops also provide increased data security. Since there is no actual data on the client device - just the software to connect to a virtual desktop - there is no risk of sensitive data being compromised if the client device is physically stolen or compromised. This can be especially useful in places like hospitals where it is extremely important for patient data to remain confidential, but doctors and nurses need access to that data regularly. You still have to worry about key loggers, viruses, and compromised user accounts, but VDI introduces an additional layer of data security not found on physical PCs.
Disadvantages of Desktop Virtualization
While virtual desktops have a lot of things going for them, they are certainly not perfect. Even if you have enough users and the infrastructure to justify a VDI, there are currently a number of disadvantages:
- VDI requires a robust network for optimal performance
- Streaming can be very CPU intensive on the virtual desktop
- Streaming is limited in FPS and has varying degrees of input lag
- Requires additional servers and licensing for commercial-grade desktop streaming
First, since you are essentially steaming a video of the virtual desktop to the client device there is quite a bit of network activity depending on how much of the screen is changing each frame. We found that when using XenDesktop to stream a virtual desktop at 30 FPS, basic tasks like word processing or browsing the web took 1-3 Mbps to stream, watching a 1080p video took about 8-10 Mbps, and even more intensive tasks took as much as 15 Mbps to stream. This isn't too much for a handful of virtual desktops, but if you have hundreds of users all streaming at the same time you could easily overload even a gigabit network.
Streaming video uses about 10 Mbps of our network. More intensive tasks can take as much as 15 Mbps
Second, it takes quite a bit of CPU power on the virtual desktop to capture the desktop's video, encode it, and send it over the network. With 8 cores of a Xeon E5-2680 V2 2.8GHz CPU assigned to a virtual desktop (and again streaming using XenDesktop at 30 FPS) streaming basic word processing used between 1-3% of the total CPU power. Streaming a 1080p video only added a few percentage points, but more intensive things that ran above 30 FPS on the virtual desktop (even simply dragging a window around quickly) could use as much as 30% of the total CPU power. 30% of eight Xeon E5-2680 v2 cores is quite a large amount of processing power so if you will be doing things that have a lot of rapid movement (like gaming) then you need to make sure you have plenty of additional CPU power availble to the virtual desktop.
It is possible for streaming can take a large amount of processing power on the virtual desktop
Even if you have plenty of network bandwidth and enough CPU power to stream the virtual desktop with no problems, the user experience is likely never going to be as good as using a local PC. Most desktop monitors display at 60 Hz, which is equivalent to 60 FPS. Streaming software, on the other hand, generally runs at between 15 and 30 FPS. So just from a display perspective streaming a virtual desktop will normally result in the display updating only about half as often as it would on a traditional PC. And since every input from a mouse or keyboard has to go across the network to the virtual desktop, there is also an additional amount of input lag that occurs. We will get more into this topic and how it affects usability on page two of this article.
Lastly, desktop virtualization is nowhere near as straight-forward to setup as traditional PCs and requires additional licensing for much of the required infrastructure. With enough users this can be offset by how much easier it is to maintain the virtual machines, but for small numbers of users setting and configuring a VDI will rarely be worth it. If you go the route of using a master image for the virtual desktops, you need to have multiple Windows servers on your network to run things like Active Directory and the Desktop Delivery Controller. In addition, since you are using a single master image which already has product keys integrated, you need to make sure you are using software and OS licenses that are intended for businesses because you will be using the same product key on multiple desktops at the same time.