Alex Miroshnichenko, CTO

Virsto One vVHD and standard VHD

Tags: Hyper-V, Virsto One

There is nothing like real customer exposure for understanding truth.

Since our Virsto One release we have been getting great positive feedback. Including some valuable questions on various aspects of the product. The one area that seems to bring the most questions is the architecture of our filter driver and our VHD model.

Those questions are usually variations of

  • “Is your filter driver a disk filter or a filesystem filter?” and
  • “Do the Virsto One VHDs live on NTFS (CSV)?”

Short answers:

  • Our filter driver is a filesystem driver for reasons which will become clear once the second question is answered.
  • Virsto One VHD’s do not “live” on NTFS in the same sense that a regular VHD “live” on an NTFS volume.

Long answers:

We have published a white paper, which I strongly encourage reading first, in particular the section on the virtual disk lifecycle. The way we use the VHD concept is slightly different from what people might be used to in a standard Microsoft environment, and this may cause some confusion.

Some reminders: VHD stands for Virtual Hard Disk. VHD was introduced several years ago with the first wave of Microsoft server virtualization products. In short a standard VHD interface allows a regular file to be treated as a hard disk. There is actually little difference between a file and a hard disk at the logical level. Both present a linear address space which can be accessed in a random fashion, and neither impose any structure on data content. There are differences with respect to granularity of the data addressing. A file can be addressed at any byte address and the size of the I/O request could be an arbitrary integer number of bytes. A disk on the other hand has to be addressed on a sector boundary and all I/O requests must be a multiple of sector size. It is trivial to use a file to model a disk behavior. (The reverse is not true: in fact a filesystem is a very complex piece of system software that does exactly that, i.e. implements a file model on top of a disk model. Well known examples of filesystems are NTFS, FAT32, VxFS and so on.)

So you can think of a standard VHD as a wrapper around a standard NTFS file. VHD adds some metadata fields to facilitate the file presentation as a disk, but the actual data is stored in an NTFS file. For complete details please see the official VHD specification freely available from Microsoft. I deliberately do not mention variations like fixed, dynamic and differencing VHDs because these are not important for the purpose of this discussion. What is important is that all standard VHD types store the data in an NTFS file. Therefore one can say, “A VHD lives on an NTFS volume”.

With Virsto One the situation is different. Virsto One separates the name and the content of the objects it manages. The core Virsto One object is a virtual disk (we call it a vDisk). A vDisk's data is stored on one or multiple volumes. The data is stored in chunks with a minimum granularity of 4MB. Because the chunks can be spread across volumes, it does not make sense to say, “A vDisk lives on a particular volume”.

A Virsto VHD is only a namespace object; it is just an entry in a directory. The directory itself is a virtual directory; it is created and managed by the Virsto One filesystem filter driver (remember the first question!) The filter driver maintains the linkage between a Virsto VHD namespace object and the corresponding vDisk containing all actual data. That linkage is established by Virsto One mount operation. When any system process like Hyper-V Manager opens a Virsto VHD, it in fact opens an object in the filter driver and all the I/O requests are routed to the appropriate vDisk.

You can think of Virsto VHD as of a “virtual VHD”, we introduced the term vVHD to distinguish from the “regular” Microsoft VHDs. vVHDs have all the metadata properties of a standard Microsoft fixed VHD, which enable seamless interoperability with the system and management interfaces in Hyper-V and Windows Server 2008 R2.

From a functional point of view, a Virsto vVHD is the same as a Microsoft VHD, and the two may be used interchangeably. Of course, a Virsto vDisk has some uniquely valuable characterists that standard VHDs don't: Huge space savings through unlimited high performance snapshots and clones, much higher performance I/O thoughput, and way faster VHD provisioning time, to name a few.

I hope that this clarification was useful. Please feel free to comment and ask more questions.

In the next post, I will address a set of questions that revolve around our data deduplication architecture.

Leave a Comment

Name (required)

Email (will not be published) (required)

Website

Remember my personal information

Notify me of follow-up comments?

Please enter the word you see in the image below: