Using Hyper-V differencing disks with VDI
Posted Monday, November 01, 2010 in Technology 0 comments
Last week over on the MSDN blog, an article was posted about the virtues of Microsoft Hyper-V differencing disks in VDI environments.
Recently, I've spent a fair amount of time testing storage configurations for VDI on Hyper-V. Based on that experience, I believe it is worth commenting on the MSDN article. Due to the architecture of Hyper-V differencing disks, there are some serious performance issues that must be considered.
Using Hyper-V differencing disks for VDI image provisioning may solve the problem of rapid creation of several copies of a master image template. However the performance issues with differencing VHDs are much worse than one might conclude from the MSDN article.
Differencing VHD (DVHD) performance is noticeably worse than that of a fixed VHD. The VHD performance paper referenced in the post measured the performance of fully expanded DVHDs, even though write performance of unexpanded DVHDs is much slower. Making any conclusion on the performance characteristics of either non-expanded dynamic VHDs or differencing VHDs based on that paper is incorrect at best and could be disastrous in practice. In the case of VDI, dynamic VHDs are almost always in the non-expanded state.
VDI IO + dynamic, differencing VHDs = likely performance issue
VDI IO loads are dominated by small random write requests. This is exactly the worst case scenario for differencing VHDs. The article on MSDN mentioned this, but glossed over the point far too lightly for my taste.
VDI IO patterns will lead to massive extensions of differencing VHDs and will result in a significant degradation of overall VDI performance. DVHD extensions are done at the granularity of at least 1MB at a time, while the actual IO causing the extension is typically between 8KB and 128KB. The difference between the IO size and the extension page size has to be filled by writing zeros, which leads to significant increase in IO traffic, even further reducing net performance.
A single host may support on the order of a hundred VDI instances, so any real world VDI deployment will have to involve more than a single Hyper-V host. So differencing VHD files will heve to be deployed on a CSV volume, which unfortunately will lead to additional performance problems. Any differencing VHD extension becomes a volume-wide operation which is routed through a single CSV coordinator. Therefore, I believe VDI performance of dynamic and differencing VHDs with CSV is simply below the minimum acceptable level.
Virsto One = higher performance + lower cost
Using differencing VHDs for VDI image management is possible for simple small scale demonstration purposes, as it does speed up the setup process. However, I don't think differencing VHDs will prove acceptable for any practical production VDI configuration.
Virsto has conducted a performance comparison study of fixed and dynamic VHDs in a VDI environment. We have demonstrated conclusively the choice between fixed and dynamic (differencing) VHDs is the choice between unacceptably high storage capacity (and therefore cost) versus unacceptably low performance. Not a palatable tradeoff.
The only practical option for deploying scalable VDI configurations with Hyper-V while keeping storage costs under control is to use Virsto One. Virsto's patent-pending technology delivers outstanding performance at the same time as saving space through thin provisioning (à la differencing VHDs) and snapshotting (à la differencing VHDs).
With Virsto, IO performance is as good or better than fixed VHDs, and at least several times faster than dynamic VHDs. At the same time, the amount of disk space used with Virsto one is even less than with differencing VHDs.
See, you can have your cake and eat it too.





Leave a Comment