Thoughts on VDI Write-Cache Storage Alternatives.

Pizza boxIt is quite common that the overall cost of VDI implementations is over 80% dependent on the cost of shared storage, especially when dealing with  single-tenant VDI instances. Const-effective purchases hinge on bulk storage acquisition, thus impeding possibility for incremental growth. At the same time short and long term system scalability is largely bound to storage design which has to be revisited during VDI implementation life-cycle.

It is also easy notice that traditional VDI Implementations favor server hosts in a blade form factor when targeting high user densities. Blade-centric design  gravitates towards shared storage and has little space for alternatives such as inexpensive local disk arrays available with 1U servers known as “pizza boxes”.

Let’s examine pizza box design where local storage can take the burden to support write-cache requirements. While looking into alternatives to reduce dependency on shared storage and cutting overall implementation, let’s assure:

  • Predictable scalability at acceptable cost
  • Provisions for incremental growth
  • Universal design model that is ready to scale
  • Solid up-time requirements are met

As a starting point let’s look at “standard” Image Provisioning via Citrix Provisioning Server. With write-cache on the target VM only data that is required for VM to run is transmitted, thus saving valuable storage space and time by not requiring the entire image to be downloaded to VM. This approach offers excellent resiliency with a minimum network load. Write-cache partition can also be used as a home for system page file, store persistent data that can survive between the reboots, for example event logs, crash dumps, as well as Citrix Personal vDisk, etc.

Some of the design Deltas when comparing shared vs. local storage:

  • HA (High Availability) capabilities with VDI + Hypervisor + PVS combination are achieved with both shared and internal storage
  • Although it is easier to achieve FT (Fault Tolerance) in a shared storage environment versus simple HA, most VDI implementations do not offer FT capabilities due to the prohibitive cost
  • Shared storage allows for real time VM migration of individual VMs which is useful for on-the-fly hardware maintenance and resource rebalancing. However there are practical limits when migrating large number of VMs in a typical VDI implementation
  • Local storage design has provisions for planned VM migrations that can be accomplished by “bleeding” users to other physical hosts after the scheduled logoff and login
  • Preservation of persistent data on shared storage is a more straightforward task, though  local storage can provide backup and options as well

As an example of popular 1U servers let’s look at Dell and HP offerings – R610 and DL360 G7 respectively available for about $10k-$16k:

  • 544 to 816GB of usable space (6 to 8x146GB, 15k disks, RAID 50 recommended)
  • Storage grade RAID controller with 512-1,024 MB cache
  • 96 to 144 GB of RAM
  • Supporting over 100 single-tenant VDI users (8GB of write-cache,0.9 to 1.4GB of RAM, 100 Mbps per user) and about 100 to 200 multi-tenant VDI users or more

Although individual mileage may vary since not all VDI implementations have identical requirements, we can clearly see the potential for dramatic cost reduction to $100/$160 per user in host hardware costs including storage. These numbers contrast $1,000 hardware cost per user or more with common VDI implementations based entirely on expensive shared storage.

In conclusion:

Write-cache offloading to inexpensive high performance local storage  provides linear scalability with provisions for incremental, affordable and sustainable growth. Self-contained hosting within individual computer units provides excellent uptime with less dependency on shared storage that can be optimized for storing percistant data and not trivialized as a dedicated write-cache.

PS. To aid adoption of local write-cache and simplify VDI disk management a simple technique outlined in Management of Citrix PVS Write-cache Partitions can be used.

PS #2. “How about the IOPs?” – a common question asked during my presentations on this subject. Please take a look at Thomas Berger‘s post: /blogs/2011/12/01/pvs-write-cache-on-local-disks-%E2%80%93-a-real-world-experience/