Jump to content

Migration from Hyper-V to KVM (Server 2016)

4 posts in this topic Last Reply

Recommended Posts

Hi all,


I'm new to UnRaid and currently planing a migration from a Hyper-V host to UnRaid/KVM. As this is my first migration of this kind and I'm not familiar with UnRaid yet, I want to ask in this forum for some tips and to see if I've forgotten something.

Currently im Running a Hyper-V host with 5 Windows Servers 2016 on it. I need these servers for a little project but it is a testing environment and thus not very critical to run stable. These Servers don't need much power and are mostly running idle. Additionally, I'd like to run some dockers for Plex and other applications.


Now as I'm also planning to run a gaming VM on the host, I decided to replace the Hyper-V server with UnRaid/KVM. Unfortunately, its the same machine and thus, the migration is a bit tricky.


MB: ASUS ROG Zenith Extreme
CPU: AMD Threadripper 1950X
RAM: 64 GB HyperX Predator
HDD: 2 x 6 TB & 1 x 8 TB WD Red for Raid
SSD: 2 x 512GB M.2 Samsung 960 Pro for Cache
GPU1: GTX 1080 for Gaming VM
GPU2: GTX 950 for normal Winows 10 VM for my wife
GPU3: ASUS Radeon R5 230 for UnRaid Host


I'm aware of the Threadripper and GPU pass through problem. But thanks to the effort of some members here, as a solution to this problem seems to get closer and I decided to risk it and give it a try :)


My first question is: Do you see any problems with the hardware?

I was thinking of adding an additional 512GB M2. to create a cache raid with a total of 1 TB to run all the VM's on but I'm worried that this would slow down the cache read/write speed. Alternatively I could back them up once a week onto the normal raid and let the cache without protection (One M2 for the servers/dockers and the other for both W10 installations). 


The MoBo also came with an additional Network Card (10GB) > Do you see any way this can be usefull in this setup?


For the Migration, I planned the following steps:
- To lower the risk, I will first get the virtualized servers running on a second Hyper-V host as a backup
- After this, I will installt the VirtIO drivers on the Windows Servers
- Shut down the servers and convert the disk files to the qcow2/RAW format, according to this post: https://shoup.io/migrate-hyper-v-windows-guest-to-kvm-w-libvirtd.html
- Create a new virtual machine within Unraid an chose the converted disk as primary disk
- Shut down the VM and edit the XML:
    Locate the <disk> section for your primary virtual disk.
    Remove the <address> line completely.
    Change the bus='virtio' from the <target> section to bus='ide'
- Start up the VM


General question for the migration: would you try to convert the whole Hyper-V host and run it on UnRaid (virtualization in virtualization) or run the different servers directly on UnRaid?

Also, according to this description, the disks should be converted to qcow2 format. In the limetech wiki RAW is recommended for better perfomance. Which one would you recommend?


I hope this works the way I want it to and would be thankful for any advise or tips :)



Share this post

Link to post

Update: if somebody else has to do this

The following steps worked for me and the VMs are running stable so far. Installing the drivers before converting / moving the disk is not necessary.

- Create a Backup of the Servers

- Shut down servers and convert vdisks to raw  format (I used qmu-img with the following command )

.\qemu-img convert -O raw "D:\location\disk.vhdx" 'G:\location\vdisk1.img'

- Create new VM in unRAID for Server 2016 and disable automatic start

- Replace vdisk1 one with the converted disk. Set disk type to SATA

- Add second disk with 1M size and raw format

- Add newes VirtIO drivers ISO to VM (https://fedoraproject.org/wiki/Windows_Virtio_Drivers)

- Start VM and install VirtIO Drivers on the device manager (same way as shown in the guide below)

- Replace GPU drivers and Install Guest driver (as shown in the guide below)

- Stop VM and remove disk 2 and change disk 1 to raw format


done :)



Share this post

Link to post

Great post! I just did this and it worked like a charm. One question -- on the last step, stop the VM and change disk 1 to raw format -- how do I do I convert it to raw format?

Share this post

Link to post
On 11/11/2018 at 3:52 AM, Senson said:

Great post! I just did this and it worked like a charm. One question -- on the last step, stop the VM and change disk 1 to raw format -- how do I do I convert it to raw format?

Sorry never saw your question and i guess you figured it out by now :)

If somebody else has to change this, it can be changed in the XML view of the VM configuration.


    <disk type='file' device='disk'>
      <driver name='qemu' type='raw' cache='writeback'/>
      <source file='/mnt/user/domains/Web/vdisk1.img'/>
      <target dev='hdc' bus='virtio'/>
      <boot order='1'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/>


Share this post

Link to post

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.