For those who are into, or simply like to talk about software-defined storage (SDS), APIs, Windows, Virtual Hard Disks (VHD) or VHDX, or Hyper-V among other related themes, have you ever actually looked at the specification for VHDX? If not, here is the link to the open specification that Microsoft published (this one dates back to 2012).
Click on above image to download the VHDX specification from Microsoft.com
How about Algorithms + Data Structures = Programs by Niklaus Wirth? Some of you might remember that... if not, it’s a timeless piece of work that has many fundamental concepts for understanding software defined anything. I came across Algorithms + Data Structures = Programs back in Graduate School when I was getting my masters degree in Software Engineering at night, while working during the day in an IT environment on servers, storage, I/O networking hardware, and software.
Algorithms + Data Structures = Programs on Amazon.com
In addition to the Amazon.com link above, here is a link to a free (legitimate PDF) copy.
The reason I mention Software Defined, Virtual Hard Disk and Algorithms + Data Structures = Programs is that they are all directly related, or at a minimum can help demystify things.
Inside a VHD and VHDX
The following is an excerpt from the Microsoft VHDX specification document mentioned above that shows a logical view of how a VHDX is defined as a data structure, as well as how algorithms should use and access them.
Keep in mind that anything software defined is a collection of data structures that describe how bits, bytes, blocks, blobs, or other entities are organized and then accessed by algorithms that are defined how to use those data structures. Thus, the connection to Algorithms + Data Structures = Programs mentioned above.
In the case of a Virtual Hard Disk (VHD) or VHDX, they are the data structures defined (see the specification here) and then used by various programs (applications or algorithms) such as Windows or other operating systems, hypervisors, or utilities.
A VHDX (or VMDK, or VVOL, or qcow, or other virtual disks, for that matter) is a file whose contents are organized e.g. the data structures per a given specification (here).
The VHDX can then be moved around like another file and used for booting some operating systems, as well as simply mounting and using like any other disk or device.
This also means that you can nest putting a VHDX inside of a VHDX and so forth.
Where to Learn More
Continue reading with the following links about Virtual Hard Disks pertaining to Microsoft Windows, Hyper-V, VMware, among others.
- Algorithms + Data Structures = Programs on Amazon.com
- Microsoft Technet Virtual Hard Disk Sharing Overview
- Download the VHDX specification from Microsoft.com
- Microsoft Technet Hyper-V Virtual Hard Disk (VHD) Format Overview
- Microsoft Technet Online Virtual Hard Disk Resizing Overview
- VMware Developer Resource Center (VDDK for vSphere 6.0)
- VMware VVOLs and storage I/O fundamentals (Part 1)
What This All Means
Applications and utilities (or basically anything that is algorithms working with data structures) are programs. Software Defined Storage or Software Defined anything involves defining data structures that describe various entities, along with the algorithms to work with and use those data structures.
Sharpen, refresh, or expand your software defined data center, software defined network, software defined storage, or software defined storage management as well as software defined marketing game by digging a bit deeper into the bits and bytes. Who knows, you might just go from talking the talk to walking the talk, if nothing else, talking the talk better.
Ok, nuff said (for now).