There are three types of virtual hard disks in Hyper-V. Those three types are:

  1. Fixed size
  2. Dynamically expanding
  3. Differencing

I will explain each type with pros and cons in the article below.

Fixed size Disk

When you create a fixed-size virtual hard disk, space is reserved beforehand. Suppose you created a VHDX of 200 GB, then 200GB space will be reserved for you on the hard disk of the host. You may be using 5 or 50 GB out of it, so rest of the space is wasted and this is the real drawback of this virtual hard disk type.

Dynamically Expanding Disk

When you create a dynamically expanding virtual hard disk, initially, just a small space is reserved for you on the host. Suppose you create a 200GB virtual hard disk for your VM, although your VM will look as if it has a 200GB virtual hard disk, but only a small amount of space will be taken up from the hard disk of the host. When the VM starts writing data, the VHD will grow automatically.

In a dynamically expanding virtual disk, your hard disk space is not wasted but your virtual disk may be fragmented (Read more here on fragmentation).

Differencing Disk

Differencing disks are used in parent-child relationship. Data is written to the child virtual disk keeping the parent disk in read-only mode.

An example could be a sys preped operating system in the parent disk and multiple virtual machines using the child disk. Each VM uses its own differencing disk and writes data in it while the operating system binaries are placed on shared parent disk.

Although differencing disks take less space but if there are more child VHDs, many I/O reads will be involved on the parent VHD which could have negative effects on VM performance.

How to Create a Fixed, Dynamically Expanding and Differencing Virtual Disk using Hyper-V Manager

You can use a Hyper-V to create fixed, dynamically expanding or differencing virtual disk using Hyper-V manager.

Step 1. Open Hyper-V manager.

Step 2. Click New -> Hard Disk.

Step 3. Click Next.

Create VHD

Step 4. Choose the format of the virtual hard disk (VHD or VHDX).

Step 5. Click Next.

Step 6. Choose the type (Fixed size, Dynamically expanding, or Differencing) and then click Next.

Choose disk format

Step 7. Provide the name and location to this virtual hard disk.

Set hard disk name

Step 8. If you have chosen Differencing virtual disk in step 6, choose the parent virtual disk now.

Step 9. Click Next.

Step 10. Choose the size (only if you are using fixed or dynamically expanding).

Step 10. Click Finish.

Fixed, Dynamically Expanding, and Differencing Disks in Hyper-V

Karim Buzdar

About the Author: Karim Buzdar holds a degree in telecommunication engineering and holds several sysadmin certifications. As an IT engineer and technical author, he writes for various web sites. He blogs at LinuxWays.

One thought on “Fixed, Dynamically Expanding, and Differencing Disks in Hyper-V

  • Avatar
    July 24, 2017 at 3:56 am

    Hey Karim, great article explaining the differences of hard disks in Hyper-V. I’ve been looking for a best practice/guideline online for a home lab that I am building. Unfortunately, for my particular question, I am not finding much.

    It states that the when many child disks are using the parent, you may experience a performance hit. A few questions on that:

    If the parent is set to read only, why would that disk have anything to do with performance? If the performance is at an acceptable level for a home lab, should the child and parent reside on different physical hard disk to help? Also, pagefiles, there is a location for page files that you can set in the VM’s configuration, should that also be set on a different physical hard drive?

    Any knowledge on this would be greatly appreciated! Thanks!


Leave a Reply

Your email address will not be published. Required fields are marked *