Sunday, February 5, 2012

Desktop virtualization

Figure 1: Desktop computer components
A desktop PC consists of a computer with CPU, memory and disk resources running applications directly connected to a monitor, keyboard and mouse. Desktop virtualization delivers the functionality of a desktop PC as a cloud service.

Figure 2: Virtualized desktop
Desktop virtualization disaggregates the desktop computer, relying on the network to logically connect the monitor, keyboard and mouse to a virtual machine in the data center. The virtual machine provides the computational and memory resources needed to run desktop applications. The server hosting the virtual machines connects to data center storage clusters to access user data and operating system images.

Consolidating desktop computational and storage resources in the data center improves efficiency and reduces administrative costs. In addition, desktop virtualization makes desktop environments accessible from a variety of devices, including home PCs, thin clients, smart phones and tablets.

Looking at Figure 2, it is clear that the desktop virtualization service is critically dependent on the network (represented by the cloud). Poor network performance can result in slow screen updates and delayed responses to keyboard presses and mouse clicks. Network congestion can affect access to storage, increasing the time taken to start desktop sessions and launch applications. Virtual machines hosting desktop sessions share computational resources on the server and disks in the storage arrays, resources need to be carefully managed in order to prevent performance problems from propagating.

End-to-end visibility into the resources needed to deliver desktop virtualization is essential to ensure that services are adequately provisioned. Desktop virtualization protocols (e.g. Microsoft RDP, Citrix ICA/HDX, Redhat SPICE and Teradici PCoIP) already measure quality of service in order to adapt sessions to different network conditions and clients. However, these measurements are not easily accessible to management tools.

The sFlow standard provides an integrated framework for monitoring the performance of network, server, storage and applications resources. Extending sFlow to report on desktop virtualization sessions provides end to end visibility into quality of service. As a proof of concept, the Host sFlow agent has been extended to report PCoIP metrics. The sFlow agent was installed on all the virtual machines in a VMware View 5 (VMware VDI) cluster. Exporting the metrics using sFlow is extremely efficient, allowing tens of thousands of desktop virtualization sessions to be monitored in real-time.
Figure 3: Receiving sFlow from network, servers and applications
Figure 3 shows each switch, server, virtual machine and application continuously sending a stream of sFlow measurements to a central analyzer. The following charts provide a dashboard showing critical application, server and network metrics:

Figure 4: VDI performance dashboard
The charts on the dashboard summarize data collected from all the switches, servers and VDI sessions running in the server pool. The application layer frame rate, image quality, round trip time and packet loss metrics characterize the quality of service (QoS) being delivered to desktop virtualization users. System loads and disk access times are critical metrics describing the performance of the compute infrastructure. Finally, the network traffic levels and packet discard rates summarize network performance.

All three layers are linked, for example a decrease in video frame rate may be due to slow disk I/O which in turn might be caused by packet discards on the network. While the dashboard simplifies management by showing aggregate cluster performance, sFlow's centralized architecture provides the data needed to identify busy servers, map application dependencies, monitor networked storage and quickly identify sources of network congestion.

No comments:

Post a Comment