Deciding On When To Use VHDX or VHD files with Hyper-V
As a follow up to yesterday's post, today's post is a quick run through of when and where you would choose VHDX versus VHD, based on some of the questions that have been asked at recent events.
Why would I still choose VHD files when VHDX files are a better option?
The main reason would be that you are exporting the virtual machine into an environment, tool or resource that doesn't require VHDX files. A good example of this is Azure's IaaS VMs, which still require VHD files. Note that if you are using Azure Site Recovery then replicating a VHDX is supported, but it will be converted automatically for you when needed.
What benefits does VHDX provide?
Larger virtual disks - up to 64TB instead of 2TB with VHD files
Better resiliency via protection against corruption during power outages by being able to log updates to the VHDX metadata structure
Alignment with 4K disks, which is pretty much what a typical disk is these days
Online resizing is also available with a VHDX file, but not available with VHD. This means you can grow or shrink the disk based on requirements without shutting down the VM.
Better performance, most notable during periods of disk expansion, which is one of the main reasons why people tend to adopt the VHDX format and migrate VHD files across to it.
What dependencies do Gen 1 or Gen 2 VMs have with the different virtual disk offerings?
Gen 1 VMs can use VHD or VHDX files, but Gen 2 VMs can only use VHDX files.
What are some of the other things I can do with a VHD or VHDX file?
You can use the Boot to VHD/VHDX feature, in which you can boot directly into a self contained operating system install that isn't running through a virtualisation layer, and they are also used if you want to use Microsoft's native iSCSI implementation in Windows Server 2012 R2. Being able to use volumes larger than 2TB here is obviously a huge benefit.
Can I convert a VHD to VHDX?
Yes, you can either do this through PowerShell, or through Hyper-V Manager
Can I convert a VHDX to VHD?
Yes, you use the same method as above, but just reverse the process.
When would I choose to continue working with existing and deploying new VHD files?
The main reason is for any workload that has a Gen 1 VM dependency, including certain Azure VM workloads at this point in time.