→ Applies to: Hyperion 9.x and above
This article describes how to migrate an existing virtual machine from Microsoft Hyper-V to a Syneto Hyperion appliance. The process consists of creating a matching empty VM on Hyperion, exporting the disks from Hyper-V, transferring and converting them, and finally attaching them to the new VM.
PREREQUISITES
- The source VM is powered off.
- Enough local storage is available on both Hyperion and Hyper-V to temporarily hold the exported disks.
Prepare the Target VM in Hyperion
Step 1. Create a new VM (“How to Create a VM in SynetoOS 6”)
IMPORTANT
Do not power on the VM. Ensure the VM has the same compute configuration as the original, including:
- Same amount of RAM
- Same number of CPUs
- No attached storage disks
- Firmware: UEFI
- Secure Boot: Disabled
Step 2. Connect to Hyperion CLI ("How to Connect to SynetoOS 6 CLI")
Step 3. List the disks of the newly created VM (replace <new-vm-name> with the name of the new virtual machine)
virsh domblklist <new-vm-name>EXAMPLE OUTPUT
Target Source ----------------------------------------------- sda -
Step 4. Retrieve the volume UUID of the newly created VM (replace <pool-name> with the name of the storage pool and <new-vm-name> with the name of the new virtual machine)
find /<pool-name>/syn-volumes/ -name "*.xml" | xargs grep -l "<new-vm-name>" 2>/dev/null | awk -F'/' '{print $4}'EXAMPLE
find /Pool1/syn-volumes/ -name "*.xml" | xargs grep -l "VM1-Hyper-V-Test" 2>/dev/null | awk -F'/' '{print $4}' 4acf5b39-88cc-4e56-9fac-e9a88cc93837Note down the UUID as it will be needed in the Restore steps, in this case:
4acf5b39-88cc-4e56-9fac-e9a88cc93837
Export and Transfer the VM from Hyper-V
Step 1. In the Hyper-V console, right-click on the source VM, then select Export

Step 2. Choose the local export location, then click on Export

Wait for completion.
Step 3. In File Explorer, navigate to the export location and open the VM folder

Step 4. Open the Virtual Hard Disks folder

Step 5. Save the full path of the export location and the disk names

If the VM has multiple disks, note down the name of each disk
Step 6. Open the CMD or Powershell as administrator, then copy each disk to the Hyperion appliance (replace <path_to_disks> with the path from Step 5 in the Export and Transfer the VM from Hyper-V subsection, <disk_name> with the disk name from Step 5 and <hyperion-ip> with the Ip of Hyperion)
scp "<path_to_disks>\<disk_name>.vhdx" admin@<hyperion-ip>:/tmp/EXAMPLE
scp "C:\Exports-VMs\m1-w2019\Virtual Hard Disks\m1-w2019.vhdx" admin@192.168.60.10:/tmp/IMPORTANT
Run this command for each disk attached to the VM, and wait for every transfer to complete.
Hyperion admin credentials will be requested for each transfer.
Restore the VM Disk Images on Hyperion
Step 1. Connect to Hyperion CLI ("How to Connect to SynetoOS 6 CLI")
Step 2. Convert each copied disks (replace <disk_name> with the disk name from Step 5 in the Export and Transfer the VM from Hyper-V subsection, <pool-name> with the name of the storage pool, <vm-uuid> with the uuid from Step 4 in the Prepare the Target VM in Hyperion subsection and <new-vm-name> with the new vm name from Step 4 in the Prepare the Target VM in Hyperion subsection)
qemu-img convert -f vhdx -O raw -S 4k /tmp/<disk_name>.vhdx /<pool-name>/syn-volumes/<vm-uuid>/<new-vm-name>_1.imgEXAMPLE
qemu-img convert -f vhdx -O raw -S 4k /tmp/m1-w2019.vhdx /Pool1/syn-volumes/4acf5b39-88cc-4e56-9fac-e9a88cc93837/vm1-hyper-v-test_1.imgRepeat this command for each disk, incrementing the final number in order (_1.img, _2.img, etc.).
Step 3. Detach empty disk (replace <new-vm-name> with the new vm name from Step 4 in the Prepare the Target VM in Hyperion subsection)
virsh detach-disk <new-vm-name> sda --persistent
Step 4. Attach the converted disks to the new VM (replace <new-vm-name> with the new vm name from Step 4 in the Prepare the Target VM in Hyperion subsection, <pool-name> with the name of the storage pool and <vm-uuid> with the uuid from Step 4 in the Prepare the Target VM in Hyperion subsection)
virsh attach-disk <new-vm-name> /<pool-name>/syn-volumes/<vm-uuid>/<new-vm-name>_1.img sda --targetbus sata --persistentEXAMPLE
virsh attach-disk VM1-Hyper-V-Test /Pool1/syn-volumes/4acf5b39-88cc-4e56-9fac-e9a88cc93837/vm1-hyper-v-test_1.img sda --targetbus sata --persistentRepeat this command for each disk, incrementing the target identifier (sda, sdb, etc.).
Step 5. Verify the disk attachment (replace <new-vm-name> with the new vm name from Step 4 in the Prepare the Target VM in Hyperion subsection)
virsh domblklist <new-vm-name>EXAMPLE
virsh domblklist VM1-Hyper-V-Test Target Source ------------------------------------------------------------------------------------------ sda /Pool1/syn-volumes/c51f9281-c608-4e7e-89f2-9be89fa5c3f4/vm1-hyper-v-test_1.img
Step 6. Log in to the SynetoOS GUI
Step 7. Power ON the VM and perform the necessary health checks
Remove Temporary Files After VM Health Checks
Step 1. Connect to Hyperion CLI ("How to Connect to SynetoOS 6 CLI")
Step 2. Delete the leftovers temporary files (replace <disk_name> with the disk name from Step 5 in the Export and Transfer the VM from Hyper-V subsection)
rm -f /tmp/<disk_name>.vhdxEXAMPLE
rm -f /tmp/m1-w2019.vhdx