Moving from Hyper-V Server to Proxmox

Moving from Hyper-V Server to Proxmox

For about 15 years, I have been running Hyper-V Server of one version or another and upgraded every couple of years as new versions came out. I have always been a Windows Hyper-V Server advocate as this was an unlimited, free hypervisor that could do virtually (get it) anything.

Initially, I ran my Hyper-V Server boxes outside of an AD and used tools such as RSAT to manage them. There used to be a great free tool available to reconfigure HVServer to enable it to be managed in this way, but several versions ago, the tool stopped working, and the author gave up maintaining it.

As Windows 2016 and 2019 were released, I wanted to use them, so I joined them onto an AD Domain – this made it easier to manage HV and removed much of the ‘authorisation’ and ‘configuration’ headaches. BUT… eventually, even having a Domain didn’t help. All I wanted to do was to move some VMs from one box to another. Something every other HV I have used makes incredibly easy – not Microsoft. I spent several days issuing Powershell commands, updating Group Policies, and editing things in the registry to enable this to work. Eventually, I could move my VMs and update the older machine or upgrade some of the hardware.

What a palaver.

However, in typical Windows-style, the next time I tried to move the VMs from that same machine, it didn’t work. Nothing had changed except, perhaps, Windows Updates, but try as I might, I could not get the VMs to move.

Even using Windows Admin Centre, a game changer for managing Windows Servers, couldn’t help. I selected Move VM and specified the destination; WAC said OK, but the move failed with various errors.

As I still wanted to keep using the HV Server, I eventually exported my VMs, transferred the files, and imported the VMs onto another machine without a problem.

I tried re-installing Windows HV Server(s) too. I rebuilt all my servers and did the same export/import process, so I had a nice, clean environment with everything joined to the domain. Everything was working except for Live Migration, of course – why this wouldn’t just work out of the box is beyond me in this day and age.

So I spent another year or two like that. HV hosts and Windows VMs running on them.

I added Veeam to my environment and received an NFR license that allowed me to back up 20 VMs free of charge. Thanks, Veeam!

Every few weeks, there was something that needed fixing, of course. Sometimes, it was a failed Windows Update; other times, it was a little more complex and needed Googling. Then I started having real fun (not). The Domain died. My passwords didn’t work even though I hadn’t changed them. I restored from my backups – which was fun, seeing as you need a working domain to get into a domain-joined machine, etc. Eventually, everything was back up and running.

Throughout, I couldn’t believe how difficult and complex things were to set up, configure and keep running.

Then Microsoft changed the goalposts and said that the free version of Hyper-V Server was being discontinued. This is the OS that Microsoft said they would provide free of charge forever.

Enough really was enough. So I jumped ship and moved everything over to Proxmox.

There was a little bit of a learning curve to start with, but, as it just works, not as much as I thought. As a software engineer, I worked with Unix systems years ago. I ported various systems from proprietary hardware / operating systems to Unix, including complex enterprise applications like WH Smiths’ payroll system. So, I am not really a noob, just a bit rusty.

The thing that really struck me was that everything did just work.

Want to join a couple of different Proxmox servers into a cluster ?- a couple of clicks away, and it is done. With Windows, the complex setup you need to do is quite ridiculous.

Want to manage Proxmox? – open a browser and navigate to any Proxmox server IP, and you manage that server and all others in the cluster. No additional RSAT software is needed. You don’t have to install Windows Admin Centre. It is there. I have never understood why managing HV was complicated and required separate systems/installs. Proxmox, like VMWare, allows you to navigate to the IP address of the box. It really should be that easy.

Want to back up your VMs and containers? – it is built in, and it just works. Backup software in Windows has always been terrible – Windows Backup – is incredibly poor. Proxmox also has a free Backup Server for more complex deployments. Free!

Do you want to move VMs and containers from one server to another? – just select Move, and IT WORKS.

So, for now, I am loving Proxmox. It is very reliable, updated frequently and just works. Everything you want in a Hypervisor.

The one thing I needed to do as part of the move was to export my live VMs from Hyper-V and move them into Proxmox. Again, this was ridiculously easy. I set up my VMs in Proxmox like you would create any Windows machine but deliberately omitted the HDs. I copied each of the export VHDX files into a Share on my NAS and then restored/attached them as new HDs on the Proxmox VMs.

All of the instructions I found on the internet suggested you need to convert VHDX files to RAW files and then import them into Proxmox using the following commands: –

qemu-img convert -f vhdx image.vhdx -O raw image.raw
qm importdisk 102 image.raw local-zfs

However, I only needed to run the second command, which ran perfectly well. A few hours later, all of my VMs were ported across. They ran fine, too. However, performance wasn’t the greatest, particularly network performance.

So, after a little investigation, I found I needed to download the Windows VirtIO drivers from https://pve.proxmox.com/wiki/Windows_VirtIO_Drivers

You can download the ISO from the above URL and store it in your ISO folder/share. Then you can attach the ISO as a CD drive within Proxmox as shown below: –

image-11-1024x425 Moving from Hyper-V Server to Proxmox

This makes the CD appear in Windows, and you can then install drivers as needed. I installed all of the drivers.

Then, it was necessary to update the Network settings for the VM in Proxmox, as shown below: –

image-12-1024x408 Moving from Hyper-V Server to Proxmox

After a Windows reboot, everything flew along and seemed snappier than Hyper-V, even on the same physical hardware.

Backups were also a cinch, just a couple of clicks, and I had scheduled backups and run a one-off backup.

Stephen

Hi, my name is Stephen Finchett. I have been a software engineer for over 30 years and worked on complex, business critical, multi-user systems for all of my career. For the last 15 years, I have been concentrating on web based solutions using the Microsoft Stack including ASP.Net, C#, TypeScript, SQL Server and running everything at scale within Kubernetes.