One of the biggest limitations of Hyper-V in Windows Server 2008 R2 was that it didn’t support storing a Virtual Hard Disk (VHD) on physical disks larger than 2 TB. This was actually due to the sector size of the physical disk which was supported by Hyper-V. Larger disks tended to use 4096-byte sectors (also known as 4k sectors). The problem is Hyper-V in Windows Server 2008 and Windows Server 2008 R2 only support storing a VHD on a physical disk with a 512 byte sector size. For more information on this issue see Technet KB article 2515143.
We see more large hard drives (3 or 4 TB) becoming more common. Luckily in Windows Server 2012 this limitation goes away. Hyper-V in Windows Server 2012 now supports storing VHDs on a physical disk with 4k sectors. Hyper-V accomplishes this by replacing the VHD file format with a new virtual hard disk file format named VHDX. VHDX files can be stored on extremely large disks or disk arrays. In addition, VHDX files can be created up to 64 TB in size compared to the previous 2 TB limitation.
If you are running an existing virtual machine (VM) with the old style VHD files, don’t worry. On Windows Server 2012 hosts, VHD files can be converted to the new VHDX format simply by editing the VHD through Hyper-V Manager.
To convert a VHD to the new VHDX Format:
(Only available on hosts running Windows Server 2012)
- Launch Hyper-V Manager on the Hyper-V Host
- Right-click on the virtual machine (VM), and select Settings
- Highlight the VHD you’d like to convert and click on the Edit button
- When prompted, select Convert and click the Next button
- Select VHDX to convert the existing VHD to a VHDX format, then click Next
- When prompted for the VHDX type, select either Fixed Size or Dynamically expanding. This choice really depends on the purpose of the VM. I generally suggest using fixed size for any Exchange and SQL servers, and production servers which need the extra disk performance.
- Next, select a location to store the new VHDX file, and a file name, then click Finish.
Please note that this process will not do anything to the existing VHD file. In fact the VM will continue to use the existing VHD file even though it has created a new VHDX file for you.