I was recently asked a question about how we can still utilize endpoint hardware computing power when doing desktop virtualization. If doing a hosted VM-based virtual desktop, you can do the client-side rendering of flash and other multimedia activities, but there is another option that most people forget about… Streamed VHD. You simply turn that endpoint into a virtual desktop. Did you know you could do this? Honestly, I was happy when I got this question. Too many people forget about the Streamed VHD option and it solves so many of the Hosted VM-Based challenges like IOPS, storage, server costs, server footprint, scalability, etc. I think we should be talking about this option more as I think it is a great alternative for a large number of users.
But let’s get to the details. XenDesktop includes a feature called Provisioning Services. Most people think of this to deliver a desktop image to virtual machines, or even a XenApp image to a virtual machine. But guess what? You can also stream to bare metal hardware (desktop or server hardware). And that hardware doesn’t have to be locked up in the data center. It can be sitting under your desk. All we need is a network. That means you effectively turn your endpoint into a virtual desktop. BTW, this is what is known as Streamed VHD; at least that is what it is called within Citrix’s FlexCast model.
So let’s say you decided to go with Streamed VHD instead of the hosted VM-based desktop model (VDI), what do you need to think about?
- Desktop Image: One of the beauties about using Provisioning Services to stream to a VM is that each VM is identical from a hardware perspective. The hardware differences are hidden due because of the hypervisor. However, when streaming to a physical endpoint, this is not the case. Your desktop image must contain all of the drivers for the endpoint. This doesn’t seem like a big deal until you start looking at little nuances across 500 different physical endpoints, especially if there were not purchased at the same time. This doesn’t’ necessarily mean you have to now have 500 images. There is a thing called common image, which allows you to use one image and deliver it to multiple hardware types (assuming the chipset is the same). Honestly, I would only do common image to similar hardware profiles, as it will make things much easier. If you try to create one image for all of your Intel-based desktops, you will have an image with hundreds or thousands of different audio, video, network, etc drivers. Can become quite difficult to manage.
- Network Connectivity: Streamed VHD requires a network connection. In fact, it requires a fairly fast network connection. How fast? 100 Mbps switched at least. Remember, to boot up Windows 7, you will need to send roughly 200MB across the wire. If you have a slow network link, that 200 MB will take longer, thus adding a perceived slowness to the solution. The faster your network, the more responsive the desktop will seem.
- Network Stability: Even if you have a fast network, if it isn’t stable, you will notice. Streamed VHD is Just In Time, meaning that Provisioning Services only sends what the endpoint needs at that instant. If you are dropping packets, you will have slowness as the data is retransmitted.
- Write Cache: The write cache should be stored on the endpoints physical drives. That way we reduce the impact on the network and improve performance.
- User Data: Just like with Hosted VM-Based pooled desktops, a streamed VHD is often done in a read-only fashion where any changes are deleted upon reboot. That means you need good profile/data practices. User’s application settings should be stored on a network drive. All user data should be stored on a network drive.
This isn’t a complete list of what to look out for when doing Streamed VHD, but it is a start. One thing should look familiar; many of the recommendations mimic those of a Hosted VM-based desktop or a hosted shared desktop model. You are able to re-use the same design principles regardless of the type of virtual desktop you decide to implement. So it isn’t like we have to learn a whole set of new design best practices, we just have to apply them to a different type of virtual desktop.
Hope this helps