asked on
VM Move Failure
I have old HyperV server running Windows 2012R2 and new HyperV server running Windows 2022. I am trying to move a virtual machine from old to new HyperV server, but got an error message.
My first attempt to resolve the problem was to enable "Migrate to a physical computer with a different process version" under Processor Compatibility Configuration. But that did not do the job.
I found quite a few article on google about making the virtual switch names the same on both old and new HyperV servers. In my old server, the name is "HP Ethernet 1Gb 2-port 330i Adapter - Virtual Switch" and on the new server, the name is "Intel(R) Ethernet Controller X550 - Virtual Switch".
What should I do?
ASKER
Export
Power off VM. Do the migration. Fix the network post migration and power back on.
ASKER
@Andrew
Below are the steps that I followed. I have done the same on twice already in two separate network environment. On both networks, I am pretty sure that Virtual Switch names were different between old and new HyperV servers. I don't understand why this time I get this error. In both successful moves in the past, I ran into an error at the exact same stage (after clicking [Finish] button) and the solution was to choose new HyperV server's Virtual Switch from the drop-down menu. This time, it does not present the drop-down menu to choose new HyperV server's virtual switch.
https://learn.microsoft.com/en-us/troubleshoot/windows-server/virtualization/troubleshoot-live-migration-issues
ASKER
One of the differences between this site where VM Move fails and the other two sites where VM Move was successful is that successful Move displays an additional window where you can choose Virtual Switch of the Destination from the Connection Drop-down menu. Also in summary screen, you see "Network Connection" entry.
So in current site where VM Move fails, it does not even display Virtual Switch error. There must be some other error before checking Virtual Switch compatibility.
Check references in the article above using Powershell
ASKER
I ran Compare-VM -Name Tax1 -DestinationHost Hyperv1 in Powershell and the result was:
VM : Microsoft.HyperV.PowerShell.VirtualMachine
OperationType : MoveVirtualMachine
Destination : hyperv1
Path :
SnapshotPath :
VhdDestinationPath :
VhdSourcePath :
Incompatibilities : {21026}
When I looked up "Incompatibilities : {21026}a', it is because Source HyperV OS is Windows Server 2012R2 and Destination Server is Windows Server 2022.
In order to move VM to Windows Server 2022, I need to upgrade OS on Source server to Windows Server 2016 or 2019, according to the article below:
https://www.reddit.com/r/HyperV/comments/zywvs4/live_migration_failed_21026/
ASKER
I have a question. If I shutdown Tax1 VM and copy vhdx file of Tax1 VM from Windows2012R2 HyperV server to Windows 2022 HyperV server and create a new virtual machine called Tax1 in Windows 2022 HyperV and simply point to existing virtual hard disk, I can essentially accomplish the same?
Would operating system activation status change in Windows 2022 HyperV because vhdx file has been moved to a different machine?
Yes, you can copy a VHDX from old host to new host, and then attach the VHDX to a existing/new VM.
The VM will see the NIC as a new NIC.
I don't know if you will be asked about activation. All of my VMs get KMS or AD activated automatically.
Just restore to new server
ASKER
@kevinhsieh
I copied a vhdx file from old host to new host, then attached it to new vm in new host. The VM’s Windows 7 activation status was in grace period. So I assume that I have to reactivate OS in each VM if I choose this method of copying vhdx file.
@Andrew
I am running two backup programs on old host - Windows Server backup and NAKIVO backup to external USB hard drives. I haven’t done it, but I assume that I could restore VMs from external backup drive to new host.
Last night I performed Windows Server 2016 in-place upgrade on my old Windows 2012R2 HyperV server and it went smoothly.
For my own experience, I think I will try all three methods - (1) VM Move after upgrading old host OS to Windows Server 2016, (2) Restore from Windows Server Backup and (3) restore from NAKIVO backup.
So yes that’s why we do backups for Disaster Recovery!
have you checked windows 7 is compatible with the intel x540 ethernet adapter. isn't that some 10Gb fiber channel adapter or something ? that most likely would not work with windows 7 unless you add specific drivers. try using some "legacy" (not my wording) ethernet controller and see how that goes.
Have you enabled VM support in the computer BIOS? … Check the motherboard manual as different manufacturers refer to this using different terminology.
ASKER
"have you checked windows 7 is compatible with the intel x540 ethernet adapter" --> For testing I created a new virtual machine running Windows Server 2019 just now in old host and tried to move the VM, but I ran into the same error.
"Have you enabled VM support in the computer BIOS? " --> On new host that is running Windows Server 2022 I created a virtual machine "Tax1" by pointing hard drive to existing VHDX (that was copied from old host) and VM started successfully.
1. Host hardware - Intel x540 which is a 10Gbe SFP+ interface - virtual machines cannot abstract hardware in the host apart from CPU - virtual machines use virtual hardware
2. Intel VT and VT-d is already enabled otherwise Hyper-V would not be able to run
The vm is not compatible as is likely running old generation configurations on older host.
Backup and Restore it
Try moving it with powershell, that should report more verbose errors.
ASKER
@Mike Montgomery
"Try moving it with powershell, that should report more verbose errors " --> Please see my post yesterday.
Ok, I can only see where you did a compare.
Have you tried
Export-vm from Powershell
ASKER
@Mike
"Have you tried Export-vm from Powershell" --> No I have not on this host. Since Export and Import is two step process, I prefer MOVE because I can provide all necessary information in MOVE Wizard and that is it. All I have to do is to turn on the VM on a new host.
But I will try Export & Import.
ASKER
@Andrew
"You do backup?" --> Yes
"And if you’ve never tested a VM restore to new hardware it’s good training" --> I agree.
can you try with a regular adaptor rather than a different os ? that adaptor is nowhere next to standard. i have no idea whether server 2019 or any version of windows include it. seven is clearly unlikely to. others may or may not.
another issue with seven might be uefi vs bios boot. seven is probably installed with legacy csm bios or whatever you call it while the newer server might use uefi.
@andrew : <<virtual machines use virtual hardware>> i may have read it wrong. i assumed this was the emulated hardware. this issue is likely about the emulated hardware. can be the booting type, the chipset, the type of drive (or ahci vs sata mode), ... i see an IDE drive which is quite a surprise among other things but given the original error message, it seems obvious the network attachment is what changed.
maybe try and create the 8whatever switch which should allow to use a more regular ethernet adapter
ASKER
Restoring from Windows Server Backup worked well. I am glad that I tried this out. It even kept static IP information when I fired it up on new host.
VM Move worked fine on some, but failed on some. When it fails, there are many possible reasons and don't have time to troubleshoot.
I am running Windows server backup on every single Hyper-V server anyway and will use it's recovery feature to restore virtual machines to new Hyper-V server from now on.