In Provisioning Services for XenApp Best Practice #5, I wrote about application streaming integration. I talked about two different options:

1. Stream on-the-fly: which results in the vDisk write cache growing as the application is streamed
2. Pre-cache: which stores the application cache within the vDisk, but helps to reduce the size of the vDisk

Both of these options had their issues. Option 1 would grow your write cache quickly, especially on XenApp servers hosting tons of applications. Option 2 creates a link between the vDisk and applications, which adds another step to application updates.

I received many suggestions and alternatives, some were quite interesting . The one that resonated the most was to store the application streaming cache on another disk that is not delivered via Provisioning services.

  • Physical Servers: You would use the physical disks installed into the physical servers
  • Virtual Servers: You would use a virtual disk assigned to the virtual machine (preferably shared storage so you can still do XenMotion).

This setup doesn’t really change our architecture in that many implementations have a non-Provisioning Services disk associated with each server to store items like event logs, local databases, write cache and pagefile (as explained in BP 8?).

Honestly, I haven’t had the opportunity to set up an environment like this in a large environment, so I didn’t want to offer it as a best practice yet. But I’ve had many of you say that this is about the only way you deliver XenApp images with Provisioning Services and have had no issues with the environment from configuration or maintenance. I’ve always thought this provided the best solution as it overcomes many of the lingering challenges of option 1 and option2. So, how do you do this? It is actually pretty easy:

  1. Make sure you have an NTFS disk associated with the physical server (physical disk) or virtual server (virtual disk)
  2. With the Provisioning Services image in private-image mode, change the location of the Application streaming cache location
    1. Launch C:\Program Files\Citrix\Streaming Client\ClientCache.exe
    2. Change the client cache directory to the virtual or physical disk
    3. Shut down and place vDisk back into standard image mode

      When you boot, and launch your applications, your application cache is now stored on the physical/virtual disk that is not erased during reboot. What does this get you?

  • Faster application launch after server reboots because the application cache is not erased
  • Easier application maintenance because the application cache is not included within the vDisk

But this configuration does come at a price. You have to have a persistent disk associated with each physical and virtual server. Although this cost is pretty small as most Provisioning Services/XenApp implementations already have a local disk to store local monitoring databases, event logs, etc.

My list is now empty, but will post new topics as they come in.  Feel free to tweet me some ideas on Twitter.

By the way, if you haven’t done so already, take a look at the Provisioning Services for XenApp TechTalk presented by yours truly.  I’m a little biased, but I think it is a good one.

Daniel – Lead Architect – Worldwide Consulting Solutions
Follow me on Twitter: http://www.twitter.com/djfeller
Follow me in the Blogs: http://community.citrix.com/blogs/citrite/danielf