TILMELD LOGIN

Backup af Hyper-V VM'er uden at lukke dem ned

Fra lionbackup-klienten 0.2.0 skriver du kun navnene på dine VM'er under hyperv:. Klienten finder selv alle filer, henter en konsistent tilstand via Hyper-V-writeren og sikkerhedskopierer den krypteret til skyen. Du behøver ikke at lukke VM'erne ned.

Udgivet 13. november 2026 · fra lionbackup-klienten 0.2.0

Hyper-V-styring på Windows Server 2025 med den kørende VM FILESRV01 og dens kæde af kontrolpunkter (tysk brugerflade)
Hyper-V-styring på Windows Server 2025: test-VM'en FILESRV01 med sin kæde af kontrolpunkter (tysk brugerflade).

En VM er mere end en .vhdx

En Hyper-V VM består af filer flere steder: konfigurationen (.vmcx, .vmrs, .vmgs) under „Virtual Machines“, de virtuelle diske et sted på værten og for hvert kontrolpunkt en differencedisk (.avhdx), som ikke er noget værd uden sin overordnede disk. Holder du stierne ved lige i hånden under files:, glemmer du efter næste kontrolpunkt den nye .avhdx, og den gendannede VM starter ikke længere.

Dertil kommer låsen: en kørende VM holder sine diske åbne eksklusivt. Hidtil læste klienten dem fra en skyggekopi uden VSS-writere. Det virkede, men kun nedbrudskonsistent, som om nogen havde trukket stikket ud af VM'en.

Konfigurationen: kun navnet

Resten af konfigurationen er uændret. Nyt er afsnittet hyperv::

lionbackup:
  environment: prod
  storagezone: "DIN-STORAGE-ZONE"
  project: "DIT-PROJEKT-UUID"
  token: "DIT-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

Navnene er dem, Get-VM viser. Med "*" i stedet for en liste tager klienten backup af alle VM'er på værten. files: må stå ved siden af, for eksempel til delte mapper på værten, eller helt mangle.

Læg tmp_directory på et volumen med nok plads: klienten skriver først hver VM dertil, komprimeret og krypteret, og uploader den derefter.

PowerShell viser konfigurationen hyperv-host.yaml: projekt, zone de01-1, miljø dev, afsnittet hyperv: med FILESRV01, token via --token-stdin
Konfigurationen fra testen: et projekt i vores dev-miljø, zone de01-1, afsnittet hyperv: med FILESRV01. Tokenet står ikke i filen, det kommer via --token-stdin.

Hvad der sker ved hver kørsel

  1. Spørg Hyper-V. For hver VM henter klienten den aktuelle liste over dens filer: konfiguration, kontrolpunkter og hver disk med dens .avhdx-kæde. Et nyt kontrolpunkt kommer automatisk med ved næste kørsel.
  2. Skyggekopi med Hyper-V-writeren. Med DiskShadow, et værktøj der følger med Windows Server, opretter klienten en skyggekopi, som Hyper-V-writeren deltager i. Alle andre VSS-writere udelukker den. Hyper-V fastholder hver VM i et konsistent punkt i det øjeblik.
  3. Læs, komprimér, kryptér. Der læses fra skyggekopien, nøjagtigt de filer, Hyper-V-writeren angiver. Blandt dem er et kontrolpunkt, som Hyper-V kun opretter, mens backuppen varer. Hver VM bliver sin egen backup, komprimeret og end-to-end-krypteret på værten, før en eneste byte forlader maskinen.
  4. Upload, derefter afslut. Først når uploaden er lykkedes, melder klienten backuppen som fuldført, og Hyper-V registrerer den. Mislykkes kørslen, melder den i stedet afbrydelsen.

Online eller offline

Hvordan Hyper-V fastholder VM'en, afhænger af gæsten. Kører integrationstjenesten til backup via volumenskyggekopi i gæsten, er det en online-backup: VM'en kører videre, og programmerne i gæsten, for eksempel SQL Server eller Active Directory, bliver konsistente via deres eget VSS. Uden den tjeneste tager Hyper-V backup offline: VM'en sættes kortvarigt i gemt tilstand. I ingen af tilfældene skal den lukkes ned. Loggen viser, hvilket tilfælde der var tale om.

DiskShadow kender kun fulde VSS-backups. Programmer i gæsten behandler derfor en vellykket online-backup som enhver fuld backup på værtsniveau.

Afbrydes klienten brat, for eksempel fordi nogen afslutter opgaven, opdager DiskShadow det inden for få sekunder, melder afbrydelsen og sletter skyggekopierne. VM'en forlader straks tilstanden, hvor backup er i gang.

For at prøve det starter du en kørsel manuelt i PowerShell som administrator:

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

Tokenet behøver ikke stå i konfigurationen. Med --token-stdin læser klienten det fra standardinput, for eksempel fra en fil, som kun administratorer kan læse. Så står det hverken i konfigurationen eller på kommandolinjen, og sådan kørte vores test også. Det normale er fortsat token: i konfigurationen.

Get-Content C:\lionbackup\secret\write-token.txt | C:\lionbackup\bin\lionbackup-client.exe --config C:\lionbackup\conf\hyperv.yaml --token-stdin
PowerShell: lionbackup-klienten med --token-stdin, skyggekopi med VSS-writere, VM'en FILESRV01 sikkerhedskopieret offline, upload af 20,2 MB, samlet tid 57,7 sekunder, END BACKUP meldt
En rigtig kørsel på Windows Server 2025 mod vores dev-miljø: skyggekopi med VSS-writere, FILESRV01 sikkerhedskopieret offline, 470 MB komprimeret til 20,2 MB og uploadet. Først derefter melder klienten backuppen som fuldført.

Hver nat, også uden at nogen er logget på

I drift hører kørslen hjemme i Opgavestyring. Den kræver administratorrettigheder, for kun en administrator må oprette skyggekopier. Under kontoen SYSTEM med højeste rettigheder kører opgaven også, når ingen er logget på:

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

Hent den tilbage: gendannelse og Import-VM

Backuppen af en VM gendanner du som enhver anden, med et læsetoken og din private nøgle. En komplet test med simuleret totaltab finder du i Gendan en Hyper-V VM fra skyen. Kort fortalt:

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 DIT-FILE-ID --identity E:\lionbackup.key --target D:\Restore

I D:\Restore\FILESRV01 ligger derefter „Virtual Machines“, „Virtual Hard Disks“ og „Snapshots“, opbygget som en eksport fra Hyper-V. Compare-VM tjekker først, om Hyper-V kan overtage VM'en, som den er; listen over uforeneligheder bør være tom. Import-VM opretter den derefter som kopi med nyt ID, så en stadig eksisterende original-VM forbliver urørt. Til sidst fjerner du det kontrolpunkt, som Hyper-V kun oprettede til backuppen:

$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   # bør være tom
$vm = Import-VM -CompatibilityReport $report
# Fjern kontrolpunktet, som Hyper-V kun oprettede til backuppen:
Get-VMSnapshot -VM $vm -SnapshotType Recovery | Remove-VMSnapshot
Rename-VM -VM $vm -NewName 'FILESRV01-gendannet'   # optional

Diskene i den importerede VM peger derefter på kopien under D:\Hyper-V\FILESRV01-restore, ikke på originalerne.

PowerShell: Compare-VM uden uforeneligheder, Import-VM, fjernelse af backup-kontrolpunktet, begge VM'er i normal drift
Compare-VM melder 0 uforeneligheder, Import-VM opretter kopien. Bagefter kører original og kopi normalt.

Forudsætninger og begrænsninger

PunktHvad gælder
VærtWindows Server 2025 eller 2022 med Hyper-V-rollen; vi har testet på 2025.
RettighederKlienten kører som administrator, for eksempel som planlagt opgave under SYSTEM. Skyggekopien (use_vss) forbliver slået til.
Uden DiskShadow eller ved writerfejlDiskShadow er et Windows Server-værktøj. Uden det, eller hvis writeren fejler, tager klienten kun nedbrudskonsistent backup af VM'er og advarer. Med on_writer_error: abort afbryder den i stedet.
Hvor VM'erne liggerLokale volumener på en selvstændig vært. Cluster Shared Volumes, SMB-delinger, pass-through-diske og VHD Sets afviser klienten med en meddelelse i stedet for at springe dem stille over.
OmfangHver kørsel er en fuld backup af hele VM'en. Standardgrænsen er 100 GB pr. backup og kan hæves efter aftale.

Hvad vi har testet

På Windows Server 2025 med Hyper-V: en kørende VM med en kæde af kontrolpunkter, en rigtig upload til vores dev-miljø, backuppen som planlagt opgave under SYSTEM, en brat afbrydelse af klienten og en komplet gendannelse fra skyen med fuldstændige data. Hvordan det gik, viser indlægget Gendan en Hyper-V VM fra skyen. Dev-miljøet er vores testmiljø, dine backups kører i prod. Test-VM'en havde intet gæsteoperativsystem, så Hyper-V tog backup af den offline.

Vi har endnu ikke selv afprøvet en online-backup med en rigtig gæst. Windows Server 2022 har også DiskShadow og Hyper-V-writeren med; vores egne test der følger.

Særtilfælde: kommandoer før og efter backuppen

Til tilfælde, som hyperv: ikke dækker, kører klienten fra 0.2.0 også dine egne kommandoer. Et eksempel er en VM, som du hellere vil lukke pænt ned til backuppen: pre_backup lukker den ned, post_snapshot starter den igen, så snart skyggekopien findes, og klienten læser derefter fra aftrykket.

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

Sæt kommandoerne i enkelte anførselstegn, og fordobl et ' i dem. Ellers ødelægger et kolon efterfulgt af mellemrum eller et # i kommandoen YAML'en. --validate viser sådanne fejl med linjenummer.

På samme måde kan du først eksportere en VM med Export-VM og tage backup af eksporten under files:.

Den, der må ændre konfigurationen, kan køre kommandoer med den. Kommandoerne kører med klientens rettigheder, på en Hyper-V-vært altså som administrator. Gem derfor konfigurationen, så kun administratorer kan ændre den.

Tilgængelighed

Afsnittet hyperv: og kommandoerne før og efter backuppen kommer med lionbackup-klienten 0.2.0. Klienten finder du under Downloads, kildekoden er offentlig i vores repository. Hvordan lionbackup beskytter dine data, står på siden Sikkerhed.

Må vi støtte dig?

Vi sætter gerne backuppen af din Hyper-V-vært op sammen med dig: gratis og via videoopkald.

Book en gratis aftale