REGISTREREN LOGIN

Hyper-V VM's back-uppen zonder ze af te sluiten

Vanaf lionbackup client 0.2.0 vult u onder hyperv: alleen nog de namen van uw VM's in. De client zoekt alle bestanden zelf bij elkaar, haalt via de Hyper-V-writer een consistente toestand op en zet die versleuteld in de cloud. Afsluiten hoeft u de VM's daarvoor niet.

Gepubliceerd op 13 november 2026 · vanaf lionbackup client 0.2.0

Hyper-V-beheer op Windows Server 2025 met de draaiende VM FILESRV01 en haar keten van controlepunten (Duitstalige interface)
Hyper-V-beheer op Windows Server 2025: de test-VM FILESRV01 met haar keten van controlepunten (Duitstalige interface).

Een VM is meer dan een .vhdx

Een Hyper-V VM bestaat uit bestanden op meerdere plekken: de configuratie (.vmcx, .vmrs, .vmgs) onder „Virtual Machines”, de virtuele schijven ergens op de host en voor elk controlepunt een differentiërende schijf (.avhdx) die zonder bovenliggende schijf niets waard is. Wie deze paden met de hand onder files: bijhoudt, vergeet na het volgende controlepunt de nieuwe .avhdx, en de teruggezette VM start niet meer.

Daar komt de vergrendeling bij: een draaiende VM houdt haar schijven exclusief open. Tot nu toe las de client ze uit een schaduwkopie zonder VSS-writers. Dat werkte, maar alleen crashconsistent, alsof iemand de stekker uit de VM had getrokken.

De configuratie: alleen de naam

De rest van de configuratie blijft zoals hij is. Nieuw is de sectie hyperv::

lionbackup:
  environment: prod
  storagezone: "UW-STORAGE-ZONE"
  project: "UW-PROJECT-UUID"
  token: "UW-WRITE-TOKEN"
  hyperv:
    vms:
      - FILESRV01
      - DC01
  encryption_keyfile: C:\lionbackup\key\lionbackup.pub
  tmp_directory: D:\lionbackup\tmp
  log_directory: C:\lionbackup\log
  compression_method: ZSTD
  compression_level: 6
  resume: true
  require_https: true

De namen zijn die uit Get-VM. Met "*" in plaats van een lijst back-upt de client alle VM's van de host. files: mag ernaast staan, bijvoorbeeld voor shares op de host, of helemaal ontbreken.

Zet tmp_directory op een volume met genoeg ruimte: de client schrijft elke VM daar eerst gecomprimeerd en versleuteld weg en uploadt haar daarna.

PowerShell toont de configuratie hyperv-host.yaml: project, zone de01-1, omgeving dev, sectie hyperv: met FILESRV01, token via --token-stdin
De configuratie uit de test: een project in onze dev-omgeving, zone de01-1, sectie hyperv: met FILESRV01. Het token staat niet in het bestand, het komt via --token-stdin.

Wat er bij elke run gebeurt

  1. Hyper-V bevragen. Per VM haalt de client de actuele lijst van haar bestanden op: configuratie, controlepunten en elke schijf met haar .avhdx-keten. Een nieuw controlepunt zit bij de volgende run vanzelf erbij.
  2. Schaduwkopie met de Hyper-V-writer. Met DiskShadow, een hulpmiddel dat bij Windows Server hoort, maakt de client een schaduwkopie waaraan de Hyper-V-writer deelneemt. Alle andere VSS-writers sluit hij uit. Hyper-V legt elke VM daarvoor vast op een consistent punt.
  3. Lezen, comprimeren, versleutelen. Gelezen wordt uit de schaduwkopie, en wel precies de bestanden die de Hyper-V-writer noemt. Daar hoort een controlepunt bij dat Hyper-V alleen voor de duur van de back-up aanmaakt. Elke VM wordt een eigen back-up, gecomprimeerd en end-to-end versleuteld op de host voordat er één byte de machine verlaat.
  4. Uploaden, dan afronden. Pas als de upload gelukt is, meldt de client de back-up als voltooid, en Hyper-V legt die vast. Mislukt de run, dan meldt hij in plaats daarvan de afbreking.

Online of offline

Hoe Hyper-V de VM vastlegt, hangt af van de gast. Draait in de gast de integratieservice voor back-up via volumeschaduwkopie, dan is het een online back-up: de VM blijft draaien en de toepassingen in de gast, zoals SQL Server of Active Directory, worden via hun eigen VSS consistent. Zonder die service maakt Hyper-V de back-up offline: de VM gaat kort in de opgeslagen toestand. In geen van beide gevallen hoeft hij af te sluiten. Welk geval zich voordeed, staat in het logboek.

DiskShadow kent alleen volledige VSS-back-ups. Toepassingen in de gast behandelen een geslaagde online back-up daarom als elke volledige back-up op hostniveau.

Breekt de client hard af, bijvoorbeeld omdat iemand de taak beëindigt, dan merkt DiskShadow dat binnen seconden, meldt de afbreking en verwijdert de schaduwkopieën. De VM verlaat meteen de toestand waarin een back-up wordt uitgevoerd.

Om het te proberen start u een run met de hand, in PowerShell als administrator:

C:\lionbackup\bin\lionbackup-client.exe --config C:\lionbackup\conf\hyperv.yaml --progress-bar

Het token hoeft niet in de configuratie te staan. Met --token-stdin leest de client het van de standaardinvoer, bijvoorbeeld uit een bestand dat alleen administrators kunnen lezen. Zo staat het niet in de configuratie en niet op de opdrachtregel, en zo liep ook onze test. Het gangbare blijft token: in de configuratie.

Get-Content C:\lionbackup\secret\write-token.txt | C:\lionbackup\bin\lionbackup-client.exe --config C:\lionbackup\conf\hyperv.yaml --token-stdin
PowerShell: lionbackup client met --token-stdin, schaduwkopie met VSS-writers, VM FILESRV01 offline geback-upt, upload van 20,2 MB, totale duur 57,7 seconden, END BACKUP gemeld
Een echte run op Windows Server 2025 tegen onze dev-omgeving: schaduwkopie met VSS-writers, FILESRV01 offline geback-upt, 470 MB gecomprimeerd tot 20,2 MB en geüpload. Pas daarna meldt de client de back-up als voltooid.

Elke nacht, ook zonder aanmelding

In productie hoort de run in Taakplanner. Hij heeft administratorrechten nodig, want alleen een administrator mag schaduwkopieën maken. Onder het account SYSTEM met de hoogste bevoegdheden draait de taak ook als niemand is aangemeld:

Register-ScheduledTask -TaskName "lionbackup Hyper-V" -Action (New-ScheduledTaskAction -Execute 'C:\lionbackup\bin\lionbackup-client.exe' -Argument '--config C:\lionbackup\conf\hyperv.yaml') -Trigger (New-ScheduledTaskTrigger -Daily -At 22:00) -User 'SYSTEM' -RunLevel Highest

Terughalen: restore en Import-VM

De back-up van een VM zet u terug zoals elke andere, met een leestoken en uw privésleutel. Een volledige test met gesimuleerd totaal verlies staat in Een Hyper-V VM herstellen uit de cloud. Kort samengevat:

C:\lionbackup\bin\lionbackup-client.exe --config C:\lionbackup\conf\restore.yaml --list
C:\lionbackup\bin\lionbackup-client.exe --config C:\lionbackup\conf\restore.yaml --restore UW-FILE-ID --identity E:\lionbackup.key --target D:\Restore

In D:\Restore\FILESRV01 staan daarna „Virtual Machines”, „Virtual Hard Disks” en „Snapshots”, opgebouwd als een export van Hyper-V. Compare-VM controleert eerst of Hyper-V de VM zo kan overnemen; de lijst met incompatibiliteiten hoort leeg te zijn. Import-VM maakt haar daarna aan als kopie met een nieuwe ID, zodat een nog aanwezige originele VM onaangeroerd blijft. Tot slot verwijdert u het controlepunt dat Hyper-V alleen voor de back-up heeft aangemaakt:

$target = 'D:\Restore\FILESRV01'
$cfg  = Get-ChildItem "$target\Virtual Machines\*.vmcx" | Select-Object -First 1
$report = Compare-VM -Path $cfg.FullName -Copy -GenerateNewId `
  -VhdSourcePath "$target\Virtual Hard Disks" `
  -VirtualMachinePath 'D:\Hyper-V\FILESRV01-restore' `
  -VhdDestinationPath 'D:\Hyper-V\FILESRV01-restore\Virtual Hard Disks' `
  -SnapshotFilePath 'D:\Hyper-V\FILESRV01-restore'
$report.Incompatibilities | Format-List Message   # hoort leeg te zijn
$vm = Import-VM -CompatibilityReport $report
# Het controlepunt verwijderen dat Hyper-V alleen voor de back-up aanmaakte:
Get-VMSnapshot -VM $vm -SnapshotType Recovery | Remove-VMSnapshot
Rename-VM -VM $vm -NewName 'FILESRV01-hersteld'   # optional

De schijven van de geïmporteerde VM wijzen daarna naar de kopie onder D:\Hyper-V\FILESRV01-restore, niet naar de originelen.

PowerShell: Compare-VM zonder incompatibiliteiten, Import-VM, verwijderen van het back-upcontrolepunt, beide VM's in normaal bedrijf
Compare-VM meldt 0 incompatibiliteiten, Import-VM maakt de kopie aan. Daarna draaien origineel en kopie normaal.

Voorwaarden en grenzen

PuntWat geldt
HostWindows Server 2025 of 2022 met de Hyper-V-rol; getest hebben we op 2025.
RechtenDe client draait als administrator, bijvoorbeeld als geplande taak onder SYSTEM. De schaduwkopie (use_vss) blijft ingeschakeld.
Zonder DiskShadow of bij een writerfoutDiskShadow is een hulpmiddel van Windows Server. Zonder DiskShadow, of als de writer faalt, back-upt de client VM's alleen crashconsistent en waarschuwt hij. Met on_writer_error: abort breekt hij in plaats daarvan af.
Opslaglocatie van de VM'sLokale volumes van een zelfstandige host. Cluster Shared Volumes, SMB-shares, pass-through-schijven en VHD Sets weigert de client met een melding, in plaats van ze stil over te slaan.
OmvangElke run is een volledige back-up van de hele VM. De standaardlimiet is 100 GB per back-up en kan op verzoek worden verhoogd.

Wat we getest hebben

Op Windows Server 2025 met Hyper-V: een draaiende VM met een keten van controlepunten, een echte upload naar onze dev-omgeving, de back-up als geplande taak onder SYSTEM, een harde afbreking van de client en een volledig herstel uit de cloud met volledige gegevens. Hoe dat ging, laat het artikel Een Hyper-V VM herstellen uit de cloud zien. De dev-omgeving is onze testomgeving, uw back-ups draaien in prod. De test-VM had geen gastbesturingssysteem, dus Hyper-V heeft haar offline geback-upt.

Nog niet zelf gecontroleerd hebben we een online back-up met een echte gast. Ook Windows Server 2022 heeft DiskShadow en de Hyper-V-writer aan boord; eigen tests daarop volgen.

Bijzondere gevallen: opdrachten voor en na de back-up

Voor gevallen die hyperv: niet afdekt, voert client 0.2.0 ook eigen opdrachten uit. Een voorbeeld is een VM die u voor de back-up liever netjes afsluit: pre_backup sluit haar af, post_snapshot start haar weer zodra de schaduwkopie bestaat, en de client leest daarna uit de momentopname.

lionbackup:
  files:
    - D:\Hyper-V\LEGACY01
  hooks:
    pre_backup:
      - 'powershell -NoProfile -Command "Stop-VM -Name LEGACY01"'
    post_snapshot:
      - 'powershell -NoProfile -Command "Start-VM -Name LEGACY01"'
    timeout_sec: 3600

Zet de opdrachten tussen enkele aanhalingstekens en verdubbel een ' daarin. Anders breekt een dubbele punt met spatie of een # in de opdracht de YAML. --validate toont zulke fouten met regelnummer.

Op dezelfde manier kunt u een VM vooraf met Export-VM exporteren en de export onder files: back-uppen.

Wie de configuratie mag wijzigen, kan er opdrachten mee uitvoeren. De opdrachten draaien met de rechten van de client, op een Hyper-V-host dus als administrator. Leg de configuratie daarom zo vast dat alleen administrators haar kunnen wijzigen.

Beschikbaarheid

De sectie hyperv: en de opdrachten voor en na de back-up komen met lionbackup client 0.2.0. De client staat bij Downloads, de broncode is openbaar in onze repository. Hoe lionbackup uw gegevens beschermt, leest u op de pagina Beveiliging.

Mogen wij u ondersteunen?

We richten de back-up van uw Hyper-V-host graag samen met u in: kosteloos en via videogesprek.

Plan een gratis afspraak