My goal for this was to set up several identical Dell Edge servers without manually configuring each one from scratch. The host OS is Windows Server 2019 Standard with Hyper-V. Each server hosts two Windows Server 2019 VMs (not identical).
I ended up using Acronis True Image to create a disk image of the first (master) server, and restoring it onto the others. This worked surprisingly well. I was concerned that the RAID 1 drive would complicate the process, but it seemed irrelevant. It was a pretty standard image backup and restore.
After the first server was correctly set up and tested, I did the following:
- Changed system name to "BACKUP".
- Changed VM system names to "BACKUP-VM1", "BACKUP-VM2".
- Removed virtual network adapters from VMs and deleted the Hyper-V virtual switch.
- Created True Image backup of the entire disk, including all partitions, EFI, MBR, Track 0, etc.
- Restored system names, Hyper-V virtual switch, and VM network adapters.
On each additional server, I did the following:
- Restore only the data partitions from True Image (drive C: and E: in my case).
- Change system names (host and VM)
- In Hyper-V configuration, set unique MAC address range.
- Add new Hyper-V virtual switch.
- Configure VMs to use the virtual switch.
- In my case, it was critical to disable IPv6 in all network network adapters, including host.
- Re-activate Windows in host OS and VMs using the correct OEM product key (from the OEM sticker).
On only one of the restored systems, Hyper-V was not automatically starting. I fixed this by running:
bcdedit /set hypervisorlaunchtype auto
Overall the process was pretty simple, but I can't emphasize enough how important it is to pay attention to the virtual MAC addresses. Otherwise you'll have devices with duplicate MACs and bad network things happen.
In the Hyper-V virtual switch settings, I used a MAC address range like:
Minimum: 00-15-5D-01-nn-00
Maximum: 00-15-5D-01-nn-FF
Where nn is a number unique to each server (01, 02, 03, etc). The MAC addresses of the VM adapters will not be automatically updated when you change this range, which is why you need to delete and re-create the Virtual Switch, and re-add the adapters to the VMs.