Rawpixel - Fotolia
Hyper-V generally supports three types of virtual hard disk files: fixed, dynamic and differential. No type is best -- each type is designed to fill a specific role or purpose for the associated VM.
Fixed VHD files
Fixed VHD files are basically static entities that are completely provisioned when the VM is first provisioned. Because all of the disk space is committed to the VM upfront, the storage space is almost always contiguous on the physical disk itself. This helps to prevent fragmentation in the VHD file and keeps storage read/write performance high.
The static nature of a fixed VHD file also mitigates system CPU demands because the system doesn't need to check the underlying mapping of storage blocks.
When administrators employ the traditional VHD file format, fixed file types are almost always recommended. Fixed file types are also preferred when storage capacity isn't monitored regularly. This prevents the possibility of capacity expansions accidentally exhausting the available storage capacity and causing the VHD file to run out of space -- impairing or crashing the associated VM.
Dynamic VHD files
Dynamic VHD files are essentially thin provisioned storage instances where additional storage space is provided to the VHD on demand -- only a small portion of the VHD is actually backed by real storage capacity -- and the blocks involved in the dynamic VHD are typically not initialized. When a block is first written, the hypervisor must prepare the VHD for the block and update the associated VHD metadata.
This block mapping and metadata work demands additional CPU usage, lowering the overall performance of the dynamic VHD file. However, VM files using the current VHDX format often benefit from the built-in resiliency features of dynamic VHD files. And environments that actively monitor storage capacity can mitigate storage use with dynamic -- thin provisioned -- files.
Differential VHD files
Finally, differential or differencing VHD files offer a specialized kind of dynamic VHD file. As with a dynamic VHD, a differential VHD isn't provisioned upfront. Instead, blocks are added and initialized as data is written over time. This increases CPU usage and I/O demands.
However, a differential VHD points to another -- parent -- VHD, and reads are only read from the differential VHD if they have been written; otherwise, those blocks are read from the parent VHD. In this way, the differential VHD is ideal for capturing and managing changes to another VHD file, and differential VHDs are typical for VM snapshots.
Dig Deeper on Microsoft Hyper-V management
Related Q&A from Stephen J. Bigelow
Once part of the gaming industry, GPUs are gaining traction in data center infrastructures. Learn why the power of GPUs makes them fit virtualization... Continue Reading
It's perfectly viable to approach API development using either in-house or SaaS-provided tooling, but each path has its place. Learn how to choose ... Continue Reading
Thinking about applying the OpenAPI Specification to API development? Analyze OpenAPI's automation and standardization benefits and see if it will ... Continue Reading
Have a question for an expert?
Please add a title for your question
Get answers from a TechTarget expert on whatever's puzzling you.