Het klonen van virtuele machines in Hyper-V kan nogal wat hoofdbrekens opleveren, vooral omdat Hyper-V geen ingebouwde kloonfunctie heeft zoals sommige andere hypervisors. In principe ben je aangewezen op exporteren/importeren of trucjes met PowerShell. Als je een volledige kopie van een bestaande VM wilt maken voor test- of back-updoeleinden, kan het een hoop gedoe besparen als je weet hoe je dit correct doet. Zorg er bovendien voor dat je sysprep uitvoert wanneer je een Windows VM kloont, anders loop je het risico op dubbele SID’s en mogelijke domeinconflicten. Niet prettig.
Een Hyper-V VM klonen met behulp van exporteren en importeren
Exporteer eerst de VM — dat is vaak de gemakkelijkste manier.
- Open Hyper-V Manager.
- Klik met de rechtermuisknop op uw VM en kies Exporteren.
- Selecteer een map waar u de geëxporteerde bestanden wilt opslaan. Kies een makkelijke locatie, bijvoorbeeld
C:\HyperVExports\VMName. - In nieuwere Windows Server-versies kan zelfs een draaiende virtuele machine worden geëxporteerd zonder deze eerst af te sluiten. Ik weet niet zeker waarom dat zo werkt, het is een beetje vreemd, maar in sommige configuraties moet je de virtuele machine mogelijk toch eerst afsluiten om fouten te voorkomen.
Na het exporteren is de virtuele machine in principe een pakket dat klaar is om te worden geïmporteerd of gedupliceerd. U kunt specifieke checkpoints exporteren door met de rechtermuisknop op de snapshot te klikken en ‘Exporteren’ te kiezen. Handig als u een specifiek herstelpunt nodig hebt.
Importeer de VM en maak een kloon.
- Selecteer in Hyper-V Manager de optie Virtuele machine importeren.
- Selecteer de map waarin uw geëxporteerde VM is opgeslagen.
- De wizard toont u de registratiemogelijkheden:
- Registreer de virtuele machine direct op de plek waar u hem wilt gebruiken — koppel hem gewoon zonder iets te wijzigen.
- Herstel de virtuele machine — gebruik dezelfde ID, maar kopieer de bestanden naar een nieuwe locatie.
- Kopieer de virtuele machine — hiermee wordt een kopie gemaakt met een nieuwe VM-ID, wat meestal nodig is voor een kloon.
In sommige configuraties krijg je een foutmelding over dubbele ID’s als je een VM probeert te importeren met een ID die identiek is aan die van een bestaande VM. Kies in dat geval de optie ‘Kopiëren’ en geef een nieuwe bestemming op. De wizard genereert dan een nieuwe ID en je gekloonde VM verschijnt in Hyper-V.
Een ander belangrijk punt is de locatie waar de schijven van de virtuele machine (de VHDX-bestanden ) worden opgeslagen. Je kunt tijdens het importeren een nieuwe map opgeven of de standaardlocatie behouden, die zich doorgaans in bevindt C:\ProgramData\Microsoft\Windows\Hyper-V\Virtual Hard Disks\.
Hoe je Hyper-V VM’s kunt klonen met PowerShell
Exporteren en vervolgens importeren — op de PowerShell-manier
- Om een VM te exporteren, voert u het volgende commando uit:
- Als u een VM wilt exporteren die nog steeds actief is, kunt u de live status ervan vastleggen. Gebruik hiervoor de parameter -CaptureLiveState met opties zoals
CaptureSavedStateofCaptureCrashConsistentState. Bijvoorbeeld: - Om een specifiek checkpoint te exporteren, moet u eerst de naam ervan achterhalen:
- Exporteer vervolgens het controlepunt met:
Export-VM -Name VMName -Path 'C:\VHD\export'
Export-VM -Name VMName -Path 'C:\VHD\export' -CaptureLiveState CaptureCrashConsistentState
Get-VMSnapshot -VMName VMName
Export-VMSnapshot -Name "CheckpointName" -VMName VMName -Path 'C:\VHD\export'
Om de VM als kloon met een nieuwe ID te importeren, voert u het volgende commando uit:
Import-VM -Path "C:\VHD\export\VMFolder\VMName.vmcx" -VhdDestinationPath "C:\VHD\newVMFolder" -VirtualMachinePath "C:\VHD\newVMFolder"
Zonder extra opties blijft de VM-ID hetzelfde. Om een nieuwe te genereren, voeg je -GenerateNewIdhet volgende toe:
Import-VM -Path "C:\VHD\export\VMFolder\VMName.vmcx" -VhdDestinationPath "C:\VHD\newVMFolder" -VirtualMachinePath "C:\VHD\newVMFolder" -GenerateNewId
Vergeet niet dat je na het klonen de VM en de bijbehorende schijven wilt hernoemen en idealiter ook de netwerkinstellingen wilt wijzigen, inclusief het MAC-adres. Gebruik hiervoor commando’s zoals Rename-VMen Set-VMNetworkAdapter.
Netwerkgegevens hernoemen en nieuwe informatie instellen
- Bepaal eerst de ID van de nieuwe VM:
- Geef de virtuele machine een unieke naam:
- Wijzig de MAC-adressen om conflicten te voorkomen, vooral als u DHCP gebruikt:
- Het is verstandig om de netwerkinstellingen en IP-adressen aan te passen om dubbele IP-adressen in uw netwerk te voorkomen. U kunt zelfs rechtstreeks verbinding maken via PowerShell, bijvoorbeeld:
Get-VM | Select Name, VMId
Rename-VM -VMId "your-new-VM-ID" -NewName "MyClonedVM"
Set-VMNetworkAdapter -VMName MyClonedVM -DynamicMacAddress $true
Enter-PSSession -ComputerName MyClonedVM -Credential (Get-Credential)
Virtuele machines klonen met Windows Admin Center
Als je de CLI-interface wilt overslaan, kun je in nieuwere versies van Windows Admin Center (WAC v2009+) virtuele machines rechtstreeks vanuit die interface klonen. Ga naar Virtuele machines, selecteer je VM en klik op Beheren -> Klonen. Typ een nieuwe naam, kies een map en wacht. De nieuwe VM krijgt een nieuwe ID, vrijwel zonder problemen.
Deze methode is heel eenvoudig, vooral als je niet zo bekend bent met PowerShell. Vergeet alleen het belangrijkste niet: controleer bij niet-Windows VM’s altijd de kloonopties om er zeker van te zijn dat de netwerkinstellingen en SID’s correct worden gereset – want Windows maakt het soms natuurlijk onnodig ingewikkeld.
Samenvatting
Kloneerprocessen in Hyper-V zijn wat omslachtig, maar als je eenmaal de export-/importfuncties of PowerShell-scripts onder de knie hebt, is het te doen. Het uitvoeren van Sysprep voor Windows-VM’s is een cruciale stap als je van plan bent om je bij domeinen aan te sluiten of dubbele SID’s te voorkomen. Houd daarnaast de VM-ID’s en netwerkinstellingen goed in de gaten om verrassingen te voorkomen.
Samenvatting
- Exporteer de virtuele machine via Hyper-V Manager of PowerShell.
- Gebruik de importfunctie met de kopieeroptie om te klonen.
- Hernoem de gekloonde VM en schijven om alles overzichtelijk te houden.
- Voer sysprep uit op Windows-klonen om de SID te resetten.
- Pas de netwerkconfiguratie aan om conflicten te voorkomen.
Tot slot
Dit hele proces lijkt misschien wat omslachtig, maar het werkt. In de ene configuratie was exporteren/importeren voldoende; in een andere gaf PowerShell meer controle. Soms frustrerend, maar je kunt tenminste volledige kopieën van je VM’s maken. Ik hoop dat dit iemand wat tijd bespaart.