I’ve written and seen numerous blogs/tweets about how great the new storage optimization feature is for XenApp and XenDesktop. I’ve read how this feature can reduce IOPS from an average of 15 IOPS per Windows 7 user down to 0.1 IOPS. I’ve read how this feature functions by creating a small RAM buffer within each VM. I’ve seen tweets showing crazy IOPS numbers on using standard, spinning disks.
In fact, I’ve done some of this analysis and was completely blown away by the results.
But who cares? Who cares if my IOPS are reduced by 99%?
Unfortunately, unless you are responsible for storage, you probably don’t care. But what if this drastic reduction in IOPS had a direct impact on the user experience? And from someone who uses VDI remotely 100% of the time, the user experience is what I really care about.
Let’s see what the new RAM Cache with Disk Overflow feature can do for the user experience…
What impresses me the most is that the workload used isn’t some crazy operation that a typical user wouldn’t really do. You can easily see the improvement to the user experience with something as simple as browsing a few web pages.
And all of this is done
- Without complex configurations
- Without expensive SANs
- Without SSDs
- Without additional hardware
- Without additional licenses
- Without a learning curve
From the virtual mind of Virtual Feller
As we all know, a single image management solution is extremely important in the VDI world. We will have hundreds or thousands of desktops that must be built and maintained. Image management is even more important when we have stateless desktops because we want our desktop to be reset to its original state after each user session. If you are doing stateless desktops without some form of image management in order to keep the desktops identical on initial startup, people would think you are crazy (and I think you would be).
What about RDS-based (session virtualization) implementations? I don’t hear much discussion on the need for image management with session virtualization. Is it because it is simply a common sense requirement that everyone already does or is it because people believe that you can get by without it?
Just in case it’s the latter, that’s take a trip in the “Wayback machine” (sorry, just saw Mr. Peabody and Sherman with my kids) to the 1990s and remember the world of WinFrame and MetaFrame and a world without single image management. We would build MetaFrame servers with Ghost, automated scripts and other deployment tools. They worked great. They let us build servers without having to sit in front of a screen all day hitting Next, Next, Next and did I mention Next. Deployment was easy. And then, a week or two later, you would start to hear the user complaints…
My app worked correctly yesterday, but it doesn’t today
Why is this different than it was yesterday?
Where did my add-on go?
This sucks. I hate it.
It all came down to a single reason, although our servers were built identically, they start to take on a unique persona once the server is turned on. And when users start connecting and doing things (work), the servers change more and more. Eventually, you begin to hear the users and life is no longer good if you are the IT Admin.
This was a major issue for every organization, which is why we have Provisioning Services. Regardless if your server is physical or virtual, they will be identical because Provisioning Services delivers a single image to every target. And Provisioning Services makes sure those targets remain consistent because on startup, each target starts at a clean state.
There are also some organizations that will want to extend their session virtualization environment to include VDI desktops. It only makes sense that your enterprise image management solution should be able to handle physical and virtual VDI, physical and virtual RDS and any other combination.
Before single image management solutions like Provisioning Services and Machine Creation Services came around, a user’s computing workspace was like a box of chocolates, you never knew what you were going to get.
Virtual Feller’s virtual thoughts
Test your Citrix knowledge…
True or False: Citrix Provisioning Services requires PXE
When using Provisioning Services, which is an optional component of XenDesktop, the target device utilizes a bootstrap file, which initializes the Provisioning Services stream. The target device must be able to obtain that bootstrap file, or else the stream will never begin.
Unfortunately, I still hear people saying that the only way to accomplish this is with PXE, which is incorrect.
Provisioning Services has a few different options for delivering the bootstrap file (these have been the most common approaches for many years):
- The DHCP Method:
Target device boots and sends DHCP discover broadcast
DHCP server responds with a client IP, Option 66 & 67
Target device uses the IP and contacts the server identified in Option 66 requesting the file from option 67.
The PVS server sends the requests bootstrap file via TFTP to the target device.
- The PXE Method:
Target device boots and sends DHCP discover broadcast with Option 60 PXE Client
DHCP server responds with IP
PVS Servers, which are running PXE Services, respond with Boot Server
Client uses the IP and picks one of the PVS responses and requests more information
PVS responds with boot server/file name information
Target device contacts the boot server and requests the file name.
The PVS server sends the requests bootstrap file via TFTP to the target device.
- The Local Method: An local file is created with the Boot Device Manager, a component of Provisioning Services. The local file is the bootstrap file, which tells the target how to contact the Provisioning Services farm. It is assigned to each target device either as an ISO attached to the target deices DVD drive, a USB drive, or as a small attached virtual hard disk drive.
It is a pretty good mix of organizations opting for DHCP or Local, much less using the PXE method. Both work, but DHCP and PXE requires more integration with your current environment than the Local method.
Daniel – Lead Architect
When installing XenDesktop 5, I bet many people were interested in using Machine Creation Services. And why not? It is easy to setup and configure because there is nothing to setup and configure. What could be easier? However, as many of you start to grow your desktop virtualization implementations to include more users, more desktops and more scenarios, you might realize that MCS is no longer able to meet all of your demands. What if you want to do Hosted Shared Desktops or Streamed VHD desktops? No MCS allowed.
If you want single image management, you are going with Provisioning Services. And if you start using PVS for these new use cases, will you also go back and update your other pooled VDI desktop users to also use PVS? Probably. It will make the operational aspect easier with only being required to support a single provisioning solution. Of course the big issue with moving from MCS to PVS is how to migrate your images.
Chances are, you spent a lot of time installing, configuring, and optimizing the base desktop image to align with your business. Do you really want to start over and create a new image for PVS? No way. Well, luckily, it isn’t too difficult to migrate images from MCS to PVS. A new Implementation Guide has just been added to the XenDesktop Design Handbook that provides the steps required to migrate images. Now you don’t have to figure this out on your own, just follow the steps. Take a look at the latest: Implementation Guide: Migrating from MCS to PVS.
I got a great question into the Ask the Architect email bag that I thought it would be great to share and potentially create a good discussion. Let’s say you are in a classroom setting where students are only in the class for 4 weeks and then after those 4 weeks, you need to reset all desktops back to a base image. Before desktop virtualization, you could use Ghost or other tools. But could we use desktop virtualization for this? Does it make sense?
As this environment is already using the local, physical desktops, I’m assuming the desktops have adequate resources, so let’s continue to use them by using the Streamed VHD FlexCast model. For those unfamiliar with Streamed VHD, I’ve provided a very rough drawing
Because the desktops have enough resources, we want to use those for computing power, thus reducing the need to buy a lot of servers in the data center. All we need is a Provisioning Services server. The classroom image (1 per classroom or 1 for all classrooms) will be streamed across the network to each physical desktop.
The unique thing with this use case is that students need to be able to modify the desktops and then when the 4 weeks class ends, those modifications are thrown away. With Provisioning Services, you simply use the Differential Disks, which will store the changes (write cache or delta disk) on the Provisioning Services server. So the PVS server will be holding the differential disks for all of the classroom desktops.
When the 4 week class is over, you simply remove the differencing disks and the desktops reset to the base state, ready for a new class. Pretty slick.
What do you need to make this work?
- One or two PVS servers (for redundancy) with enough storage to hold the disk image and the differential disks. You will want these disks to be fast as well to reduce latency
- At least 100Mbps switched to each endpoint
- Endpoints that are similar in hardware configuration (the more identical they are, the easier this will be)
- Network boot capabilities on the desktops and configured within the environment (DHCP, PXE, TFTP)
Note: If you want to see how to configure the difference disk or to see it in action, take a look at this CitrixTV Video.