Do you want to copy a Hyper-V virtual machine to another host and don’t know how? You came to the right place! We’ll discuss all the main options in this article. But in order to find out the best option for you, you need to first answer one question.
Why Do You Want to Copy a Hyper-VM to Another Host?
That’s a good question indeed, because the solution to this question depends very much on the purpose of the copy. If you just want to move all VMs from one host to another, let’s say because you are going to do some work on the host, then moving the VMs is permanent and a one-time thing. But if you want to set up a scenario where your VMs are copied automatically from host A to host B, so that you can use the VMs on host B if host A fails completely, then we’re talking about something totally different. We’ll discuss both solutions in detail in the following sections. First let’s have a look at the manual option.
How to Copy a Hyper-V VM to Another Host by Hand, One Time
In order to copy Hyper-V VM by hand, the easiest option is to use the Export function in the Hyper-V Manager, as shown below:
The next screen will ask you were to place the virtual machine files. When finished, move to host B, the other host, and open Hyper-V Manager. Select the option ‘Import Virtual Machine’ and select the path. That’s all there is to it!
How to Automatically Copy a Hyper-V VM to Another Host Based on a Schedule
Now let’s get to the meat! Doing the above manually is cool when you need it done just once. But what about if you need to copy the VM several times a day? The so-called ‘poor man’s’ fail-over cluster solution is to simply have two Hyper-V hosts and copy the VMs from host A to host B. Ideally you will want this done automatically so that the VMs are always ready to go when you need them, in case host A fails. This is actually something very useful and I know many companies that do this using BackupChain.
The folks at BackupChain developed a very simple and effective solution to this problem. You only need BackupChain installed on host A. There, you set up a Hyper-V Backup task with the ‘no processing’ option enabled. The target of the task is a network share on host B. Then you select the VMs on host A that you want copied and BackupChain will do the rest. Finally you set a schedule and the copies will be done on auto-pilot! As an added bonus, BackupChain can notify you if any errors occurred, so that you know if the process failed for any reason.
On host B, the only thing left to do, just once, is to set up the VMs again, once the first copy has finished. Once the first copy of the VMs is on host B, you will find the VHDs on host B in their respective folders. All that needs to be done is to set up the VM on host B and point to the VHDX file that was copied over, instead of creating a new one.
The steps are shown in detail below. After installing BackupChain, click “New Task” and select ‘Hyper-V Backup’ and click Next:
Click next on the following screen, accepting defaults:
Now select one or more VMs that you want copied to host B:
Click “Next Step” and in the following screen, select ‘No processing’:
In the next screen you need to select ‘network UNC folder’ and specify the UNC path to host B. Ideally you will have already prepared a network share on host B, where you want the VM copies stored. If you haven’t done it already, now is a good time to set it up. Then click ‘Browse’ as shown below and enter the UNC path details:
Then click ‘Next Step’ and finally ‘Save task and edit’. Once you have saved the task, switch to the tab “File Versioning / Cleanup” and set all cells to 1 (Min. Number of File Versions):
By setting those cells to 1, we instruct BackupChain to only keep one copy at host B. You could, if you want, keep more than one copy on host B. In that case the oldest copy (or file version) will be deleted automatically, based on the number you enter above.
That’s all there is to it! Now you can set a schedule in the tab Schedule and run the task.
How to Set Up the Copied VMs on Host B (One Time Configuration)
After the first VM copy is complete, you need to create the VM just one time on host B, so that it is ready to go. Open Hyper-V Manager, create a new VM, use similar settings for RAM and CPU core count, and when you get to the section ‘Connect Virtual Hard Disk’, select the VHDX that BackupChain placed on host B, as shown below:
In our example, BackupChain places the VM copies into the folder D:\VMcopies. You will need to select the folder that you created instead. You will see that BackupChain recreates the original folder structure in the target folder. In our case, you can see that the original VHDX came from X:\production VMs\TrueNAS\truenas.vhdx. Then continue with the VM setup and click ‘Finish’.
The copied VM on host B is now ready to go. Please keep it turned off so that BackupChain can safely replace all VM files when it copies the new version over.
Summary: Copying Hyper-V VMs is Indeed Easy
As you can see, there are two major and simple ways to copy Hyper-V virtual machines from one host to another. You could either use the Export function built into Hyper-V Manager to obtain a copy of the VM and that works fine when you need to do this process just once per VM.
In the case where you want to set up an automated VM copy, so that the VMs on host A are always available on host B, you could simply use BackupChain and follow the above steps to set up an automated copy process. Automating the copying process allows you to set up a low-cost, fail-over system that will provide a system you can use immediately if the main Hyper-V host fails.
Simply download BackupChain and give it a try. Setting up your first VM copy task as outlined above is really easy and there are many more features you can use in the future, such as email alerts, and compression, deduplication, and other backup features that you could use in addition to your VM copy tasks.