PVS 5.1 Direct VHD Boot using XenServer

After going through the Direct VHD Boot process for HyperV which was a feature of PVS 5.1 the next question that came up was “Does it work with Xenserver?” and the answer that came back was “It technically should work but it is not officially supported yet.” So we decided to do the next logical thing and give it a try.
( “New way to upgrade with PVS 5.1 and HyperV”http://community.citrix.com/blogs/citrite/trevorm/2009/07/28/New+Way+to+Upgrade+with+PVS+5.1+and+HyperV )
The process works similar to HyperV but there are a few details to consider before using this feature with Xenserver.
First the XS storage repository being used needs to support VHD so that would include a NFS share or EXT2/3(Local SR, SAN, or ISCSI) SR partitions not LVM.

We will need the following items to get started:
-PVS 5.1 Server
-Xenserver 5.5 with a EXT or NFS Storage Repository
-Windows 7 RC PVS VHD image captured from a PC(in my case a wyse Rx0)
-SCP ssh client utility

1. First we will start by copying our win7 VHD file using SCP ssh utility from our PVS store to the Xenserver storage repository. In our case is a Local SR formatted with EXT3.

2. In XenCenter create a new VM from a template(vista or 2008) and make sure to choose the correct SR for the disk which is EXT or NFS. Uncheck the box to start automatically.

3. Rename the PVS VHD file we copied over with the same name as the one which was created by our VM. We can do this at the xenserver host console or in my case the SCP ssh utility console.
We should see a new VHD disk created for our new VM and the VHD we copied from the PVS server. For my SR the path is /var/run/sr-mount/”new uuid”.vhd

4. Power on the virtual Machine. Windows 7 will boot up and start installing the default drivers for xenserver using plug n play. It will not find the new scsi device driver but you can ignore for now. Then when prompted to reboot choose to manually reboot later.

5. Before rebooting go to the command prompt and run bcdedit /set loadoptions “PV|=2000” to modify boot.ini and then reboot.

6. Uninstall PVS client from add remove programs then reboot.

7. Install the Xenserver 5.5. Tools and then reboot. It will finish adding the drivers at next boot up so I rebooted a second time. (may not be necessary)

8. Install the PVS 5.1 client but before rebooting (very important) You will be prompted to choose which NICs you want PVS to bind to. Choose all inactive and active nics. If you using a XP or 2003 image you might need to manually start “c:\program files\citrix\provisioning services\bindcfg.exe”

9. Next go to the command prompt and run bcdedit /deletevalue loadoptions then Shutdown.

10. Now we copy our updated VHD back to PVS.

11. Rename our VHD file to the appropriate name and then add back into the PVS console.

12. You now have a updated PVS VHD file which can be streamed to a physical server/PC, Xenserver host VM,
or directly booted in Xenserver.

**Eventhough this process seemed to work fine it is not yet officially supported and testing has been limited.
**To save time in updating pvs client or NIC software you could use NFS which will provide you the ability to present the NFS SR to the PVS server and Xenserver. Doing this would allow you to skip the steps of copying the VHD to and from the Xenserver SR.
**The use of Xenconvert as a method to move the VHD to and from the Xenserver in this process could be a great option but we are still testing that out for this process.