Managing Provisioning Services VDisk Versions with VhdUtil Tool

Managing Provisioning Services VDisk Versions with VhdUtil Tool

book

Article ID: CTX207112

calendar_today

Updated On:

Description

The Provisioning Services VhdUtil utility included in PVS 7.1 and later versions allows for the management of PVS vDisk versions outside of the PVS console, which is completely unaware of the vDisk changes made by this utility.
 
This article will cover two commands included in the VhdUtil utility as of PVS 7.1.4 and PVS 7.6.1.

Note: These commands only work with vhd type files and cannot be used with vhdx files.
 


Instructions

The VhdUtil commands should be run from a command prompt (an elevated prompt is not required, it cannot be run in PowerShell) in the C:\Program Files\Citrix\Provisioning Services directory. You may also copy the VhdUtil utility to whatever folder you would like to run the command from. All VhdUtil commands are case sensitive.


VhdMerge

Used to perform a manual full merge to a new base image outside of the PVS console.
 
Example command to merge the disk chain from “MyVDisk.3.avhd” to base “MyVDisk.vhd” into a new disk “E:\vDiskStore\MyVDiskMerged.vhd”:
 
rundll32 VhdUtil.dll,VhdMerge E:\vDiskStore\MyVDisk.3.avhd MyVDisk.vhd E:\vDiskStore\MyVDiskMerged.vhd>E:\vDiskStore\MergeLog.txt

User-added image

The steps of the merging process are logged into file E:\vDiskStore\MergeLog.txt.

User-added image

This process does not delete the old vDisk or its versions from the store or the PVS console. They will have to be manually deleted.
 
Import the new vDisk to the PVS console.


VhdRename

Used to rename the vDisk vhd chains that have existing versions. For renaming specifically, make a copy of the original vDisk and rename the copy.  The renaming is a critical action, as we are modifying the disk chain.  We found that if the network does not have a timing service, a remote slow storage might cause incorrect timestamp vs. the hosting server.
 
Example command to rename the entire disk chain from vDisk "MyVDisk" in E:\vDiskStore folder (e.g. from version 3 to base) to "MyNewVDisk":
 
rundll32 VhdUtil.dll,VhdRename E:\vDiskStore\MyVDisk.3.avhd MyNewVDisk>E:\vDiskStore\RenameLog.txt

User-added image

The old vdisk chain information for each version and the renaming process are logged into file E:\vDiskStore\RenameLog.txt.

User-added image

User-added image

You can then run the VhdDump command to get the info of the renamed vdisk. 
                                               
A manifest (XML) file with the new vDisk name will be created in the store.

Import the new vDisk into the PVS console, unassign the old vDisk from all targets and assign the new vDisk to them.

Delete the old vDisk but leave the .vhd files.

User-added image

If you try to delete the associated .vhd files, the error “Management Interface: vDisk properties were lost” will be displayed.

User-added image
 

Additional Information

VHD Chain of Differencing Disks - http://docs.citrix.com/en-us/provisioning/7-6/pvs-vdisks-lifecycle-wrapper/pvs-vdisks-update-wrapper/pvs-vdisks-vhd-chain-overview.html
Merging VHD Differencing Disks - http://docs.citrix.com/en-us/provisioning/7-6/pvs-vdisks-lifecycle-wrapper/pvs-vdisks-update-wrapper/pvs-vdisks-vhd-merge.html
Promoting Updated Versions - http://docs.citrix.com/en-us/provisioning/7-6/pvs-vdisks-lifecycle-wrapper/pvs-vdisks-update-wrapper/pvs-vdisks-update-promotion.html
Assigning vDisks and versions to target devices - http://docs.citrix.com/en-us/provisioning/7-6/pvs-vdisks-lifecycle-wrapper/pvs-vdisks-update-disk-types.html
Manually Updating a vDisk Image - http://docs.citrix.com/en-us/provisioning/7-6/pvs-vdisks-lifecycle-wrapper/pvs-vdisks-update-wrapper/pvs-vdisks-update-manual.html