First off, we looked very hard at XenServer 6, Hyper 2012, and ESX. After getting hands on for each solution VMWare imo was hands down easier to use and gave better results.
Next, Nimble Storage is awesome! If your looking at storage give them a good look.
The conversion is pretty easy really, but if you get the steps wrong you can end up with BSOD and other ickyness. This worked for me, your experience may be different. I took snapshots at the Lefthand level and XenServer level before touching anything. Results may vary.
There may be an easier way, doesn't really matter to me. This worked consistantly for me so I'm stickin to it.
It's best practice to rebuild rather than convert. I only converted machines that couldn't be rebuilt, where being replaced soon (but not ready to replace just yet), or when I was short on time and had to move it immediately.
Server 2008 / 2008 R2
- Download and install VMWare Converter 4.3, yes, the older version
- Disable any services necessary (ie, IIS, etc)
- Ensure your logged in through the default view, not RDP.
- Uninstall XenTools and reboot
- Go into Device Manager
- You'll see that the SCSI Controller doesn't have a driver.
- VMWare converter won't see the disks because of this
- Right click the SCSI Controller
- Update Driver Software
- Browse my computer for driver software
- Let me pick from a list of device drivers on my computer
- (Standard IDE ATA/ATAPI contoller)
- IDE Channel
- If you get the wrong one you'll likely see a BSOD upon reboot
- Reboot
- Open VM Converter
- Convert Machine
- Select "This local Machine"
- Note that "View source details..." lights up. Click it
- Ensure that a Source disk is listed (if you didn't change the controller driver then none will be listed and it will error when you attempt to convert)
- Type in the info for one of your VMWare hosts
- Select your datastore target
- Change RAM, CPU, etc as fit
- Finish and wait
- Once it's completed shutdown the VM in XenServer
- In the VMWare console edit the VM.
- Delete the CDROM and Hard Disk
- Add a new Hard Disk as the SCSI 0:0 and point to the VMDK
- Add new CDROM with basic settings
- Start the machine and install tools
- Note that the VM Version is listed as 4
- Shutdown the VM
- Right click the VM and choose the option for "Upgrade Virtual Hardware"
- It should now show as a vmx-09
- Change the nic to vmxnet3 if desired
- Boot and change IP address if needed
- Uninstall VMWare converter
Since typing the Windows 2008 section, I tried something new that worked amazingly well with little downtime. I did this with Windows 2008 RTM x32 and Windows 2008 R2 successfully.
- Download and install VMWare Converter 4.3. New version may work better.
- Open VM Converter
- Convert Machine
- Select "This local Machine"
- Type in the info for one of your VMWare hosts
- Select your datastore target
- I had to edit the devices and change the controller to IDE
- Finish and wait
- At this point it's extermely important to remember that we don't want both VM's on at the same time. BUT I wanted to ensure that my new VMWare VM would boot...
- Change Settings
- Change network to an isolated network off production.
- Delete the CDROM and Hard Disk
- Add a new Hard Disk as the SCSI 0:0 and point to VMDK
- Add new CDROM with basic settings
- Start the machine
- Uninstall XenServer Tools
- Reboot
- Install VMWare Tools
- Shutdown
- Note that the VM Version is listed as 4
- Shutdown the VM
- Right click the VM and choose the option for "Upgrade Virtual Hardware"
- It should now show as a vmx-09
- Boot the server and ensure it boots
- Shutdown VMWare VM
- Shutdown XenServer VM
- Edit VMWare VM and change NIC to production network
- Boot and change IP address if needed
- Uninstall VMWare converter
Windows 2008 RTM: I also had to delete the NIC (which was listed as Flexible) and add a new one for VMXNET3.
One final strange thing I noticed is that the IntialKeyboardIndicators key would get messed up.
This is found under KHEY_USERS\.Default\Control Panel\Keyboard
It would be set to 21474836648 after conversion
Changing this back to 0 made it work as expected.