At VMworld last month, VMware announced several future capabilities of their VDI product. Yesterday we looked at VMware's bare-metal hypervisor, and today we'll look at the technology that will allow multiple VDI VMs to share the same disk image. This will be done with a new product that will be called "VMware View Composer." ("VMware View" is the new name for their VDI product, so "View Composer" is what you use to compose your disk images. Get it?)
This is similar to Citrix Provisioning Server (Ardence), and another one of the core requirements outlined in the 2010 VDI+ vision. (Super-fast explanation: VDI is about desktops. If you want to convert all your desktops to VDI, fine, but you sure as heck don't want to manage hundreds or thousands of images. So if there was a way for multiple VDI desktops to share the same image, then this whole VDI thing would be a lot more feasible. This is what View Composer does.)
Those of you who are not too familiar with VMware's current VDI product might be surprised to learn that it doesn't actually have this feature today!!?! In other words, if you want to use VMware VDI for 100 desktops, you have to create 100 disk images! This is bad because:
- The actual cloning process takes several minutes per VM, so it could take all weekend to provision the images you need for your whole environment, and you certainly can't do it on-demand.
- The storage requirements are stupidly huge: you need the full space in your SAN for all disk images combined.
- Huge storage requirements equal huge storage costs. (This is not a bad thing if you're owned by a storage vendor though.)
- Once you clone a desktop, that's it, you're done, the clone is separate from the master. If you need to apply a patch, you need to either (a) patch the master and re-clone everything the next weekend, or (b) patch each of the clones individually.
This is obviously a huge negative of today's VMware VDI product, and it's one of the aspects that's really holding it back from wider adoption. So VMware's announcement that this View Composer thing will let multiple VDI VMs share the same disk image is a very, very cool thing. From a very high level, here's how View Composer will work:
- You build a VM disk image that you want to use for your master.
- You use the View Composer management thing to make a full copy of that master that will be the base image for multiple VDI instances. (They wanted to make this a separate process so that some uneducated admin using VirtualCenter didn't blow away the master image and instantly screw thousands of users.)
- You then assign that single master image to multiple VDI instances or users or whatever.
- Then when a new VM is needed (either on-demand or in advance), a new very small "diff" ("delta"?) file is created.
- The VM mounts the disk, which is a combination of the read-only master plus the read-write diff image.
- All changes / writes / etc. are written to the diff file, which grows over time.
- When the VM is shut down, you can choose what happens to the diff file. (Throw it away, save it for the user for next time, etc.)
Interestingly, this technology is not too fundamentally different than the checkpoint / redo / delta disk image structure that VMware's had in place for years. (Heck, even VMware Workstation 5 had linked clones back in 2005.) They also like to point out that View Composer is not the vStorage Link Cloning feature per se.
What makes View Manager different is that VMware is packaging and customizing this technical capability specifically for VDI instances. In fact, they even did a lot of research figuring out how Windows XP and Vista interact with the disk and how that can be minimized. (Disable the automatic book disk optimization defragging, put any user data that needs to persist in its own partition, etc.)
While the two primary advantages of View Composer are the ability for multiple clients to share a single image, and the massive reduction in storage space, a [bonus] advantage is that there's potential for significant performance gains, SAN-wise. Current VDI environments can see about 20-30 desktop VMs per LUN, but since a View Composer environment would have more machines sharing the same bits on disk, VMware's thinking that number could surpass 60 VMs per LUN. (I guess it's worth pointing out that this advantage, as well as the storage space reduction advantage, could both be addressed today with the de-duping capabilities of a SAN, but that's typically an even greater expense on top of what's already ridiculously expensive desktop storage.)
How will VMware handle multiple Windows machines sharing the same personality?
Simple: they won't.
You know you can't just copy copy copy copy a single Windows disk image and deploy it to multiple computers on the same network. You'd run into problems with conflicting computer names, SIDs, etc.
Citrix Provisioning Server solves this problem by creating a database and then injecting certain machine personality into the image on the fly. VMware View Composer will do basically the same thing via a process they're calling "Quick Prep," (although I'm not sure whether that's the final name).
The idea with quick prep is that when a VM boots, it can mount the master disk image with the newly-created, yet completely blank, read-write diff file. A VMware component running within the VM would ensure that when it looks to the disk for the SID or whatever, the request is sent to a database which provides the proper data. The VM can then write these settings to "disk," which would of course be written to the read-write diff file (which is now not as small as it was a moment ago). This whole process should be fast enough so it can be done on-demand.
After running a VDI environment with View Composer, you'll end up with a bunch of clones. You can choose to delete the clones in several ways:
- When the user logs off. (This would make your VDI environment the most like terminal services, since the user would get a "new" image each time he or she logged in.)
- When the diff disk image clone grows past a certain size.
- After a certain amount of time has past.
- Manually by administrators.
A final word on View Composer: VMware hasn't specifically announced any intentions to do anything around user profiles. To use their words, they hope to "play nice" with the profile vendors, and to let them innovate on top of the structure that they're creating. While that sounds noble, it also is a bit at odds with the longer-term vision that VMware CEO Paul Maritz outlined in the VMworld keynote, namely, that VMware wants to focus on deploying a personality to a user, not to a device. Certainly View Composer goes a long way in centrally managing desktops, but I wouldn't be surprised if VMware does more in the user personalization space in the future as well.