Digging in to Citrix XenServer 5.6 FP1's new "IntelliCache" feature. It's a BIG deal for desktops!

Late last month, Citrix's Bill Carovano blogged about the new features in the upcoming version of XenServer known as "Cowley." One of the features he mentioned was: XenDesktop platform enhancements.

Late last month, Citrix's Bill Carovano blogged about the new features in the upcoming version of XenServer known as "Cowley." One of the features he mentioned was:

XenDesktop platform enhancements. Provides local host caching of VM images to reduce storage TCO for XenDesktop VDI deployments. (Note: these platform enhancements will be enabled by a future version of XenDesktop)

This was perfect timing because ironically I had written The ultimate VDI storage option: "local" virtual storage. Does this product exist? just a few days prior. Of course when Bill's blog came out, we really didn't know anything real, but there was a lot of chatter about the possibilities via twitter nonetheless.

Then at Citrix Synergy Berlin last week, Citrix talked quite a bit about XenServer Cowley (which we learned will be made available as XenServer 5.6 Feature Pack 1 and is now available as a beta download). We also learned that this new local host caching of VM images feature is going to be called "IntelliCache" (and that it will be in every edition of XenServer, even the free one).

Digging in to XenServer's IntelliCache

The first thing that needs to be said about IntelliCache is that Citrix uses the word "IntelliCache" in another product, and that product has absolutely nothing to do with with XenServer's IntelliCache. (The "other" IntelliCache, in case you're wondering, is HDX IntelliCache -- a feature of the Branch Repeater that offered branch-level caching of XenApp streamed apps and caching of HDX bits across multiple users' sessions.)

The best way to describe XenServer IntelliCache came from Citrix Ian Pratt. (Ian and I also spoke about Intellicache for a few minutes when we sat down together at Synergy in Berlin.) Ian explained that the easiest way to manage storage in XenDesktop is to have a NAS with either a VHD or raw files, and then you can just use snapshots & clones to allow multiple VMs to simply "share" that image. Of course in real life that's a lot of load on the NAS (which limits the number of hosts and clients, etc.).

The alternative so far has been to copy these images locally to each VM host and do the whole thing locally, but then you have to deal with manual copying and syncing and it just gets pretty complex. (This is something we learned from the 70+ comments in my July 2010 F*** the SAN. VDI storage should be local! article.)

XenServer IntelliCache kind of combines the best elements of both of these situations together. You build a master VHD file and store it on a NAS (cheap NAS, not expensive SAN) and then as many VMs as you want can boot it. Then XenServer will automatically make use of local storage for an intelligent cache (and "IntelliCache," if you will :) to allow for good performance and to protect the NAS.

The local IntelliCache location can be physical disk (SSD or traditional, of course) or can be memory. In fact Ian mentioned that for desktop workloads, even 200mb of RAM cache is enough to soak up most of the IOPS you get with boot storms. (So to walk through that use case, you'd have maybe 50 desktop VMs on a single XenServer 5.6 FP1 host all sharing the same VHD file on a NAS. The first one to boot would be accessing 100% of it's initial disk blocks from the NAS, but the Intellicache feature would cache those locally, and since subsequent VM boots would request the same blocks from the same disk image, IntelliCache would know to pull those from local cache instead of the original remote VHD source file.)

A future without Citrix Provisioning Server?

In many ways the XenServer 5.6 FP1 Intellicache sounds like Citrix Provisioning Server, and certainly there are similarities. There are two big differences, however:L

First is that XenServer Intellicache is specifically designed for virtual machines running on VM hosts with local storage. It's totally integrated into the XenServer installation and VM creation process. Citrix Provisioning Server, on the other hand, was designed for physical machines booting across a physical LAN, so transferring that whole structure into the virtual world is clunky (to say the least). You have to deal with virtual MAC addresses, weird boot stubs, "LAN" connections even when your storage is on the same host, etc.

Second, and most important, is that the IntelliCache capabilities work across VMs. Citrix Provisioning Server does have the ability to cache disk blocks locally on client devices (whether they're physical or virtual). The problem with this though is that each Citrix Provisioning Server client operates in a vacuum. So that 50 virtual desktop on the same host example we talked about before? With Provisioning Server, each one of the 50 VMs would download the same boot blocks from the Provisioning Server, and the boot storm would still happen. (Sure, after that each VM will have cached some components local, but there is no ability for one VM to know that another VM just downloaded the same blocks.) So this is why Intellicache is as much of a feature of the hypervisor as it is the VM.

IntelliCache is v1

One important thing to remember about IntelliCache is the version of Intellicache that's included in XenServer 5.6 FP1 is the "v1" version, and since CItrix has recently redefined their v1s as essentially public betas, I guess we shouldn't get too excited about it yet.

In fact there are several limitations. The v1 capability is designed for shared images, not personal images. For example if you configured multiple VMs to each have their own VHD on a SAN (essentially using the v1 capability so that each VM had its own "master,") that would technically work, but (a) you wouldn't get the cross-VM cache-resuing capability, and (b) IntelliCache v1 has no way to save any changes that were made to the image back up to the original VHD on the NAS. Both of these shortcomings, however, are things that Citrix plans to enhance for future versions of XenServer Intellicache.

Also, interestingly, the new XenDesktop 5 will NOT support XenServer IntelliCache out of the box. We'll have to wait for an update sometime in 2011 for that. (But don't worry, XenDesktop 5 will support HDX IntelliCache out of the box. :)

The impact on the industry?

If you talk to Citrix folks, they believe that XenServer Intellicache is going to have a huge impact on the industry. Certainly they think it will kick VMware's butt, but they also believe that storage performance enhancing companies like Atlantis Computing won't be needed.

Time will tell. Like many cases these smaller companies have a several year head start over Citrix. But on the other hand, XenServer Intellicache seems like it will be simple to use and configure, and it's free.

(Well, "free" if you use XenServer. Look how that works out.)

I wonder what will happen with Windows Server 2008 R2 SP1 comes out with support for RemoteFX on Hyper-V only. Now you'll have to make a choice: Do you want Intellicache or RemoteFX? (Or vSphere? :)

I guess worst-case this might inspire VMware and Microsoft to release similar functionality? What do you think? Is this as big of a deal as Citrix says it is? Can we finally say good-bye to Provisioning Server?

Join the conversation


Send me notifications when other members comment.

Please create a username to comment.


Chassis-based storage has the promise to do great things to lower VDI costs.  This looks like a good first step, but it seems to leave out dealing with personalization.  Does overlaying personalization kill the IOPs benefits?

It would be interesting to see Kaviza's take on this.

- Eric


Sounds to me like this is in the right direction, but...  A receiver side only cache solution should become an issue when it becomes time to update the master on the NAS.  Do you have to shut down everyone to update?  I guess we'll have to wait to see.


Guys, anyone have information on the Intellicache WRITE cache implementation?

In ”XenServer Fall 2010 Beta Program Webinar” - www1.gotomeeting.com/.../687858320 it was stated in one of the slides that

“7. Writes will happen in VHD child per VM

8. Local “write” cache is deleted when VM is shutdown/restarted”

See the following snap from the webinar that someone posted on the web ;)  -  img641.imageshack.us/.../intellicacheconcept.png


Regarding RemoteFx type solution, is Citrix not working on this one for XenServer ? For what I've heard and understood, this was on the feature list for XenClient (having multiple VM sharing the GPU power) and should not be difficult to port to XenServer (a more contorlled world)...


This is a very smart move assuming the XD team does not release another low quality product on top of it. More native functionality is certainly moving into the hypervisor, it's was clear when MS started the trend with RemoteFX. This is why betting on a single hypervisor is a foolish strategy unless you have a very simple infrastructure. I hate the fact that these things are unlikely to be cross hypervisor but I doubt the vendors will cooperate enough for that to matter until features X,Y,Z become commodity and it does not matter.

Local storage is the future for VDI EOM. Companies like Atlantis etc still have a cross hypervisor play, but today they only barely work on ESX after months of hand holding no matter how many JP Morgan leaflets they want to distribute. So I expect they will place their bets on ESX, and if VMW moves to do the same thing, their value is well I'm not sure.........perhaps others who like their technology will care to comment. It will be interesting if VMW does the same thing. They will surely advantage View and not help Citrix, which will then mean a real reason for many to get off expensive VMW EA's or to marry VMW for a long long time. The other scenario nobody uses the features that make the workload better to avoid lock-in and that means desktop virt goes even slower.

One final thought, I wonder how this will also impact RDS/XA. Assuming the personality stuff get's fixed over time, but for now let's assume shared like RDS/XA. Will this finally make the VDI economics close enough to RDS/XA for shared use cases? Just a thought, of course I have no data yet.

Overall a good step in the right direction. Well done Citrix, now make XD a high quality release on top of this or stab yourself in the eye.



Right now the writes are confined to the cache (i.e. the "VHD child" from your Step 7.) So that's what I was talking about when I was saying any writes would be lost if you tried to shoe-horn this v1 into a "personal image" solution, and why Citrix only pushes it as a shared solution.

But they're planning on some way to sync the local writes back in the future.


@Kata, RemoteFX doesn't really have anything to do with the sharing the physical GPU.. it's more about Hyper-V providing a vGPU to the guest AND the ability for the RemoteFX render pipeline to use the GPUs as massively parallel FP processors.

But more importantly, MS themselves have stated that RFX is Hyper-V only.. and that's an IP licensing decision, not a technical decision. So even if Citrix could write an RFX handler for XenServer, they wouldn't be allowed to.

So which will happen first? Citrix licenses IntelliCache to MS for Hyper-V, or MS licenses RFX to Citrix for XenServer? Or maybe they do them at the same time via an "F VMWare IP swap?" :)


@brian. Finally catching up on all the synergy Berlin news items. From that I doubt Citrix can just sit there idol and wait for RemoteFX if their strategy to make XS the open cloud hypervisor of choice is real. Hyper-V sucks in so many ways still and I think Citrix will be forced to build their version of the technology to avoid being the MS *** in this space. They certainly haven't stopped their app-virt technology and which I think makes a lot of sense. I want multiple options for vGPU, and I don't want to see just MS playing this game, because as we all know we will enjoy the rapid pace of innovation just like we experience with Crap-V.



I foresee Synchronizer's Dynamic Image Mode being utilized to manage the "delta" changes from both client/server computing environments.

Maybe that's why Synchronizer is "XenServer only".

Maybe XS Intellicache + Synchronizer = Successor to PvS?


Regarding Atlantis Computing and co' - don't forget that their original hype was all about the layering stuff ("FLOCKS") that allows you to update a service pack to the base image while still maintaining the user installed apps (for example). I guess the performance thing is easier to sell (actually the AC guy in Berlin said that) but I find layering equally exciting and there is no address to this topic from the big guys.

About PVS - I hate when companies start building parallel functionality in separate products.  You guys love this IntelliCache and it sure looks good but still it's like reinventing the wheel they've already bought from Ardens.

PVS is live and kicking with a lot of people in Citrix and clients spending a lot of time and resources implementing it and developing it. If you think IntelliCache will be the successor than it's a poor use of these people time on behalf of Citrix. Instead of implementing the same functionality twice maybe they could have further improve PVS, like say... Include layering functionality for differential vdisks (Among other suggested features - forums.citrix.com/thread.jspa).

They could just as easily make a PVS plugin for XenServer that would address the two pains Brian mentioned about integrating XS & PVS plus keep the current features and knowledge base of a robust product.

btw about the boot storm part - PVS does cache the bits in memory using the efficient System Cache so further reads would be coming from the PVS's RAM, not from the storage. True they would still be sent to each VM through the network but if using a PVS on the same host (PVS Plugin for XS :P ) than internal hypervisor virtual networking is not much different than other local APIs.


About Remote FX being Hyper-V only. It's not completly true. Remote FX is also supported on physical RDSH servers.

See here: blogs.msdn.com/.../beta-testing-microsoft-remotefx-in-service-pack-1.aspx



IMO Citrix is enhancing PvS by incorporating the technology into Synchronizer then unifying the client/server storage management regardless of if your environment is running on XenServer or XenClient.

it just makes sense to me...



RemoteFX for RDS will not utilise any hardware GPUs so the improvement on the gfx layer of RemoteFX will be minimal. Well it is in the beta anyway :)


"do you want IntelliCache or RemoteFX"... I don't want vendor lockin! I would use both but where it makes sense.


@Icelus - Is this related to IntelliCache?


As an Atlantis employee it's exciting to see Citrix validating our value proposition! I'm wondering how does it handle new read requests from applications post boot.  And how does it address write IOPS



Syncrhonizer is related to PvS which is mentioned in this article as having a future without it.

I was just posting my take on the future of PvS, where intellicache exists as an enhancement of the PvS technology. Resulting in a combined set of technologies aimed at intelligent storage management in virtualized environments.

XS and XC should have these free intelligent technologies built in with a complimentary advanced management solution.


Vendor lock-in will always exist. It's funny how organizations will capitalize on this saying they are more open then their competitors. Trading one lock-in for another.

Citrix doesn't own the server virtualiztion market so they advertize their openness. They have to build certain things into XS and not allow competitors otherwise XS won't be relevant.

VMware doesn't own the desktop virtualizaion market so they will advertize that their "Horizon" solution integrates View, XenApp, App-V.


After reading Bill Caravano's blog, I would like more benefits detail rather than just features.

It appears to me that the overall XenFrastructure is improving in order to be an enterprise-class hypervisor, host platform for HDV/VDI, and harness for external tools to reduce the cost associted with management.

As far as XD intellicache, to me it seems like a complimentary feature to FlexCast that eventually allows a near immediate spin-up of hosted desktops rather than a sequential one. I suspect this is the integration of Provisioning Services into DOM0 rather than separate or based in a VM. If your company still has physical devices, the feature may not be for you.


System Cache in PVS do the same that IntelliCache using the memory of the Server. It's not a new concept. With System Cache we can improve the boot times on VDI environments.

We also need an agent and central database for the computer accounts passwords when the virtual machines loses the changes. PVS is able to do it.

However with intellicache we wouldn't need a UDP streaming protocol to force the use of System Cache on PVS. We could leave the PVS agent to obtain the virtual disk from a most common protocol like iSCSI or FC (and use HBA optimizations) and we could continue using the write cache in a cheap store.


@Ronin - How do see the integration to allow that to happen?

Did they even mentioned anything about PVS regarding IntelliCache?

I think they have implemented IntelliCache "From Scratch" independently from PVS.  Don't know about computer account change and domain join... Is that even happening with IntelliCache?

A lot of confusion that was expected when companies doing the same stuff twice instead of integrate neatly.


Well, IntelliCache should work with FC, NAS and iSCSI, I think if PVS agents will use standard protocols (iSCSI, FC) to access a standard vDisk instead of a streaming propietary protocol they could use IntelliCache. However XenServer Control Domain should be present in the process to obtain the IntelliCache benefits.

There are companies that offer OS streaming like PVS but with iSCSI LUN. PVS could do the same.



Hi This is my first post ..great blog & hello to everyone

@Ronin - I agree with you this a completely separate approach to Prov server.  Intellicache and Xendeskop 5 looks to me like they have a lot of synergy together (you cannot use Intellicache without XD5).  If you look at all the latest Citrix Spin around XD5 and Desktop Studio they promise 10 mins to Xen , this in a nutshell is Desktop Studio - A master image on a NFS datastore and intellicache. Everyone out there knows it’s impossible to set up a Prov server in 10 mins.

It also interesting that Citrix now recommend NFS and the chosen format for VDI virtual disks, the main driver being file I/O access patterns being more suited to NFS for large numbers of VM's. I for one think this is a interesting strategic move as a lot of guys out there run XD on Vsphere and use VMFS over ISCSI. Now to realize intellicache benefits they will have to look Citrix Xenserver as the hypervisor so you may see many mixed mode setups with your VDI on Xenserver / NFS and your Servers on Vsphere / VMFS, apart from the management overhead it kind of makes sense as there different beasts with different business drivers IMHO


I might be naive but how is this different from hosting the images on a local SSD and Vmware View pointing to the images on local SSD. I dont see Intellicache solve the write /read IOPS issue which Atlantis does..