Tuesday, February 17, 2009

The Definitive Geek Guide to Windows 7’s VHD Support?

B# .NET Blog - Windows 7 Native VHD Support

“One of my favorite features in our upcoming Windows 7 (and Server 2008 R2) release is the native support for VHDs, a.k.a. Virtual Hard Disks, the file format used by Virtual PC, Virtual Server and Hyper-V to represent virtual disks. In this post, I’ll show you the basics of this feature and how to use it. I won’t cover a sister-feature, boot from VHD, in this post but as we get closer to shipping Windows 7, I plan on blogging about that one too.

Why native VHD support?

A first question quite some readers might raise is why we’d build in support for the VHD format natively to Windows? As you might have figured by now, virtualization is becoming increasingly important for consolidation of servers, so that it just makes sense for the OS to have intrinsic understanding of one of virtualization’s core pillar: the disk format. Having such support helps for a variety of scenarios, ranging from maintenance of virtual disks, creation of new virtual disks for data, booting from them, etc. And you can expect the virtualization story to grow significantly over the next months and years to come.

This said, support for VHDs isn’t something unprecedented. A while back I blogged about VHDmount, a tool that shipped with Virtual Server 2005 R2 allowing you to take a VHD file and mount it to a drive letter, using a driver installed by the tool. Native VHD support can, besides its built-in nature,  take all of this many steps further as explained above.

In this post I’ll cover the Disk Management MMC snap-in enhancements in Windows 7 as well as the enhancements made to diskpart, both to surface the new VHD support. In a later post, I’ll talk about API enhancements too (once we have a Windows 7 update for the Windows SDK published).

So, with the native VHD support in Windows 7, the Virtual in Virtual Disk Service is applicable twice, as now the VDS can be used to manage virtual hard disks or VHDs as well, hence my subtitle Virtual² Disk Service.

Diskpart

As this is a blog for geeks, let’s start on the dark side of the picture with Diskpart. As many of you know, Diskpart is centered around the idea of objects being managed. In the past, those objects were either disk, partition or volume. Now, in Windows 7, the object “type” vdisk has been added to that set. Quite a few commands know how to deal with vdisk objects (like create, select) while others are meant to be used for vdisks exclusively (like attach, detach). The picture below outlines the most important vdisk-aware or vdisk-specific commands:

…”

Bart De Smet does it again with an outstanding geek guide into Windows 7’s VHD Support. This should be enough info for the geek in most of us…

Now what would be cool is that if major application suites shipped on their own VHD’s. Think VHD = ThumbDrive. So you copy the VHD, mount it and then you start using the app’s. No install, all settings are posted back to the given VHD, it just works and is easily portable and can be backed up with one copy. Maybe even sandbox the VHD so any calls to other/outside resources are virtualized? Kind of like App-V, but simpler and with no client side drivers. Take all the work that’s been done in the portable application space and leverage that. Yeah, that’s an interesting thought…

 

Related Past Post XRef:
Natively booting to a VHD with Windows 7 - 10 Steps to VHD’ness
Tell me a VHDMount Story (Installing just VHDMount on Windows Vista and then mounting a VHD as a drive letter...)
Mounting VHD's via Managed Code

No comments: