We have determined that dynamic (expandable) VHDs in our Hyper-V environment are causing performance slowdowns and would like to start converting the vhds attached to about 600 VMs (about 150 win2k3, 450 win2k8) from dynamic to fixed.
The native utilities (GUI or PowerShell) require the VM to be shutdown and then it writes the configured size (not used capacity) of the dynamic VHD to the new fixed VHD.
We are dreading the downtime required for the long copies, and we will have to let the NetApp SAN array deduplicate the zero's (freespace) after each VM moves.
Ideally we'd like to use vhdtool (or NetApp's PowerShell cmdlet New-NaVirtualDisk) to create new 'empty' (non-zero'd) fixed VHDs, and then with the source VM online copy all allocated blocks from the old dynamic VHD to the new fixed VHD, followed by a final sync with the VM offline.
Ideas? Can ghost or some other software meet our needs?