Happy Easter everyone!
Earlier this week, I was moving VM’s from one shared storage device to another. I had an old HP StorageWorks SAN device that was failing on me and was out of warranty, so I needed to migrate my VM storage to a new EMC device. I ran into some issues and it kind of freaked me out, so I thought I would share my knowledge.
Before we being, this is a great article of an overview of System Center Virtual Machine Manager 2008 R2 – Quick Storage Migration and explains the process step by step. Also, if you are new to Hyper-V clusters and would like a quick overview, I suggest that you take a look at this article: Rough Guide To Setting Up A Hyper-V Cluster
The issue I had on a few of my VM’s was that the copy of the VM from the old storage location to the new location would either fail at the end or it would fail in the middle of the migration. Additionally, I could see the VM folder in both places and hard to believe, but in the 5 failures or so that I experienced with my VM’s most of them completed the entire copy, as I could see both folders had the exact same size. I tried to do both repair and undo, but it never worked. The VM was just not allowed to do anything but remain in a failed state.
So, I went to both Bing and Google looking for answers to solve this issue. I thought I got lucky when I found this MSDN article: Quick or Live Migration may fail after you used Migrate Storage but when I did the recommended steps I did not get the desired results:
A more easy solution for this issue is, to take both resources for this VM and temporarily assign it to “Run this resource in a separate Resource Monitor”. This will cause the other nodes to re-read the VM Guid
1. Start Failover Cluster Manager
2. Open Services and Applications and select the VM. Take the VM Offline
3. Open Properties on the Configuration, Advanced Polices. Check “Run this resource in a separate Resource Monitor”, Apply, uncheck, Apply
4. Do the same for the VM Resource
Simply put, it did not work. The next recommend course of action was to apply the Availability of Hotfix Rollup package for System Center Virtual Machine Manager 2008 R2 which I was not looking forward to doing on a multiple node cluster (greater than 5) At that point, I stepped back and said to myself that this is starting to get more complicated for such an easy issue.
My initial thoughts were that I could use Hyper-V to fix this issue on the node that owns this VM, but all of Technet articles were suggesting that I needed to use SCVMM or Cluster Administrator. Luckily I had a great resource on my team and he confirmed my suspicion in that the public articles were not as helpful. More importantly, he confirmed my theory that use Hyper-V Manager locally would be the best option and sure enough it worked like a champ.
So that gets us to the most important part of this article… what can I do to fix this issue?
So here are the steps that I performed to resolve the issue. Note the difference between both folders:
Copy the Original VM folder to another location as seen below: (I just used the Desktop)
Verify the file did properly copy and you see the VHD file in the new location:
Then verify the settings in SCVMM for processor, disk, memory and other hardware configurations. (Record them since you will be launching a new VM to replace this one)
Then Delete the VM in SCVMM (after you confirmed the drive exists and you have the settings correctly)
Then you will need to select yes to finish the deletion and this will remove both folders in both locations:
Now when we look, we do not see this VM at all:
So now we get to launch a new VM with the same name as the original name: (Windows 8 Server in my case here)
Then select a blank drive for the VM to use, since our goal is to swap it out anyway:
We will want to configure the hardware settings to match the same (processor, memory, etc) and then place it back on the same host that it was on originally.
To ensure you have high availability, place the VM on the CSV as seen below:
Do not start this VM, leave it stopped, since the drive is blank, it has nothing to boot off. Then we will go into Hyper-V Manager to change the hard drive settings:
You will need to copy the old VHD to the new location and then browse to it: (In my case the original drive was on the Desktop, so I copied it to the CSV)
After you point to the new drive, then delete the old blank drive and then start your VM:
At this point you can start-up your VM and it should have the correct information. You may run into an issue where you may need to change out the NIC settings and I will address that issue tomorrow.
As usual, I hope this helps and you can pass the word around that my blog was helpful!