Specifika zálohování virtuálních strojů
Zálohování virtuálních strojů se zásadně liší od zálohování fyzických serverů. Virtuální stroj je v podstatě sada souborů na hypervisoru -- virtuální disk (VMDK, VHDX, QCOW2), konfigurační soubor a stav paměti. To přináší jak výhody, tak specifické výzvy:
- Image-level backup -- místo zálohování jednotlivých souborů uvnitř VM se zálohuje celý virtuální disk jako celek
- Hypervisor API -- moderní hypervisory nabízejí API pro konzistentní zálohy bez nutnosti instalovat agenta do VM
- Snapshoty -- hypervisor může vytvořit snapshot VM v milisekundách, zálohovací software pak čte snapshot na pozadí
- Deduplikace -- VM často sdílejí stejný operační systém, deduplikace výrazně zmenšuje zálohy
Agent-based vs. agentless zálohy
Agentless (bez agenta)
Zálohovací software komunikuje přímo s hypervisorem přes jeho API (VMware VADP, Hyper-V VSS/WMI). Není potřeba instalovat nic do VM. Výhody:
- Žádná správa agentů ve stovkách VM
- Menší overhead na VM (žádný agent nespotřebovává CPU/RAM)
- Centralizovaná správa z jednoho bodu
- Funguje i pro VM, ke kterým nemáte přihlašovací údaje
Agent-based (s agentem)
Do každé VM se nainstaluje zálohovací agent, který zálohuje na úrovni souborového systému nebo aplikace. Výhody:
- Granulární obnova na úrovni souborů a aplikací
- Application-aware zálohy (Exchange, SQL Server, Active Directory)
- Funguje i v prostředích bez hypervisoru (fyzické servery, cloud VM)
- Lepší komprese a deduplikace na úrovni souborů
VMware vSphere
VADP (vSphere APIs for Data Protection)
VADP je sada API, kterou VMware poskytuje zálohovacím softwarům pro efektivní zálohy VM. Klíčové funkce:
- Snapshot management -- vytvoření a odstranění VM snapshotu
- Changed Block Tracking (CBT) -- sledování změněných bloků od poslední zálohy pro inkrementální zálohy
- Hot-add / Network mode -- dva režimy přenosu dat ze snapshotu
- Application quiescing -- spolupráce s VMware Tools pro konzistentní stav aplikací
Changed Block Tracking (CBT)
CBT je klíčová technologie pro efektivní inkrementální zálohy VMware VM. CBT sleduje, které bloky na virtuálním disku se změnily od posledního snapshotu. Díky tomu inkrementální záloha přenáší pouze změněné bloky, ne celý disk.
Bez CBT by inkrementální záloha musela porovnávat každý blok disku -- u velkých VM (stovky GB) by to trvalo hodiny. S CBT trvá inkrementální záloha minuty.
# Povolení CBT na VM přes PowerCLI
$vm = Get-VM -Name "MojeVM"
$spec = New-Object VMware.Vim.VirtualMachineConfigSpec
$spec.ChangeTrackingEnabled = $true
$vm.ExtensionData.ReconfigVM($spec)
# Ověření stavu CBT
(Get-VM "MojeVM").ExtensionData.Config.ChangeTrackingEnabled
vSphere snapshoty -- pozor na pastě
VMware snapshoty jsou skvělé pro zálohy, ale mají důležitá omezení:
- Snapshoty nejsou zálohy -- jsou uloženy na stejném datovém úložišti jako VM
- Nekumulujte snapshoty -- každý snapshot vytváří delta disk, výkon VM se degraduje s každým dalším snapshotem
- Maximálně 32 snapshotů v řetězci, ale VMware doporučuje max. 2-3
- Konsolidace -- sloučení snapshotů je I/O náročná operace
Microsoft Hyper-V
VSS (Volume Shadow Copy Service)
Hyper-V využívá Windows VSS framework pro konzistentní zálohy. VSS koordinuje zápisy mezi hostitelským OS, Hyper-V a aplikacemi uvnitř VM:
- Zálohovací software požádá VSS o vytvoření shadow copy
- VSS notifikuje Hyper-V VSS Writer
- Hyper-V pozastaví I/O na VM a vytvoří checkpoint
- Pokud jsou nainstalované Integration Services, VM guest OS provede vlastní VSS quiescing (zamrazí aplikace)
- Zálohovací software přečte data z checkpointu
- Checkpoint se odstraní
Hyper-V checkpointy
Hyper-V rozlišuje dva typy checkpointů:
- Standard checkpoints -- zachycují stav VM včetně paměti. Při obnově je VM v přesně stejném stavu. Podobné VMware snapshotům.
- Production checkpoints -- využívají VSS pro application-consistent stav. VM se po obnově chová jako po čistém restartu. Doporučené pro produkci.
# PowerShell: Nastavení production checkpointů
Set-VM -Name "MojeVM" -CheckpointType Production
# Záloha Hyper-V VM pomocí wbadmin
wbadmin start backup -backupTarget:E: -hyperv:"MojeVM" -quiet
# PowerShell: Export VM (offline kopie)
Export-VM -Name "MojeVM" -Path "D:\Backup\VM\"
KVM / QEMU
KVM/QEMU je open-source virtualizační platforma dominantní v Linux prostředí. Zálohování KVM VM vyžaduje více manuální práce než u komerčních hypervisorů:
Záloha pomocí libvirt a qemu-img
# Vytvoření externího snapshotu (živá VM)
virsh snapshot-create-as --domain myvm snap1 \
--diskspec vda,file=/var/lib/libvirt/images/myvm-snap1.qcow2 \
--disk-only --atomic
# Záloha originálního disku (snapshot přesměroval zápisy)
cp /var/lib/libvirt/images/myvm.qcow2 /backup/myvm_$(date +%F).qcow2
# Sloučení snapshotu zpět
virsh blockcommit myvm vda --active --pivot
# Alternativa: qemu-img convert pro komprimovanou zálohu
qemu-img convert -c -O qcow2 /var/lib/libvirt/images/myvm.qcow2 \
/backup/myvm_$(date +%F).qcow2
QEMU dirty bitmap (CBT ekvivalent)
Od QEMU 4.0 je k dispozici dirty bitmap tracking, který funguje podobně jako VMware CBT. Umožňuje inkrementální zálohy sledováním změněných bloků:
# Vytvoření dirty bitmapy
virsh qemu-monitor-command myvm --hmp \
'drive-backup drive-virtio-disk0 /backup/full.qcow2 qcow2'
# Inkrementální záloha pomocí dirty bitmapy
# (vyžaduje QEMU 4.0+ a libvirt 6.0+)
virsh backup-begin myvm --backupxml backup-inc.xml
Proxmox VE
Proxmox VE je populární open-source virtualizační platforma postavená na KVM a LXC. Od verze 7.0 nabízí integrovaný Proxmox Backup Server (PBS):
Proxmox Backup Server (PBS)
- Inkrementální zálohy -- pouze změněné bloky díky dirty bitmap
- Deduplikace -- chunk-based deduplikace šetří úložiště
- Šifrování -- client-side encryption (AES-256-GCM)
- Ověřování -- automatická verifikace integrity záloh
- Pruning -- konfigurovatelná retence (keep-last, keep-daily, keep-weekly...)
# Záloha VM z Proxmox GUI nebo CLI
# vzdump je nativní zálohovací nástroj Proxmoxu
vzdump 100 --storage pbs-storage --mode snapshot --compress zstd
# Plánovaná záloha v /etc/pve/vzdump.cron nebo přes GUI
# Datacenter > Backup > Add
# Obnova VM ze zálohy
qmrestore pbs:backup/vm/100/2025-01-15T02:00:00Z 100
# Proxmox Backup Server CLI -- ověření
proxmox-backup-client verify --repository user@pbs:/datastore
Application-consistent snapshoty
Standardní VM snapshot zachycuje stav disku v daném okamžiku (crash-consistent). Pro aplikace jako databáze nebo e-mailové servery to nemusí stačit -- data v paměti a rozpracované transakce se ztratí.
Application-consistent snapshot koordinuje s aplikacemi uvnitř VM, aby se před snapshotem uložily všechny buffery na disk:
- VMware: VMware Tools + quiescing (volá VSS na Windows guests, pre/post freeze skripty na Linuxu)
- Hyper-V: Integration Services + Production Checkpoints
- KVM: QEMU Guest Agent (qemu-ga) -- provádí fsfreeze/fsthaw
- Proxmox: QEMU Guest Agent automaticky zamrazí filesystem před snapshotem
# Instalace QEMU Guest Agent v Linux VM
sudo apt install qemu-guest-agent
sudo systemctl enable qemu-guest-agent
sudo systemctl start qemu-guest-agent
# Pre-freeze hook pro MySQL (zajistí konzistentní zálohu DB)
# /etc/qemu/fsfreeze-hook.d/mysql.sh
#!/bin/bash
case "$1" in
freeze)
mysql -e "FLUSH TABLES WITH READ LOCK; SYSTEM sync;"
;;
thaw)
mysql -e "UNLOCK TABLES;"
;;
esac
Instant VM Recovery
Instant VM Recovery je funkce moderních zálohovacích řešení, která umožňuje spustit VM přímo ze zálohy během minut, bez nutnosti plné obnovy. VM běží z backup úložiště a data se na pozadí migrují na produkční úložiště:
- Zálohovací server vystaví zálohu jako NFS/iSCSI datastore hypervisoru
- VM se zaregistruje a spustí přímo z tohoto datastore
- Uživatelé mohou pracovat během minut (RTO v řádu minut)
- Na pozadí probíhá Storage vMotion / migrace na produkční úložiště
Podporuje ji Veeam, NAKIVO, Acronis a další enterprise zálohovací řešení. Je to zásadní funkce pro snížení RTO z hodin na minuty.
Zálohovací software pro VM
| Software | VMware | Hyper-V | KVM/Proxmox | Licence | Cena |
|---|---|---|---|---|---|
| Veeam B&R | Ano | Ano | Ano (v12+) | Per-VM / Per-socket | Community Ed. zdarma (10 VM) |
| NAKIVO | Ano | Ano | Ano | Per-VM | Od $229/socket |
| Acronis Cyber Protect | Ano | Ano | Ano | Per-workload | Od $85/rok |
| Proxmox Backup Server | Ne | Ne | Ano | Open-source | Zdarma (podpora od $110/rok) |
| Commvault | Ano | Ano | Ano | Enterprise | Individuální |
Veeam Backup & Replication
Veeam je nejrozšířenější zálohovací řešení pro virtuální prostředí. Klíčové funkce:
- Instant VM Recovery -- spuštění VM ze zálohy během minut
- SureBackup -- automatické ověření obnovitelnosti záloh v izolovaném sandbox prostředí
- Scale-out Backup Repository (SOBR) -- tiered úložiště s cloud tier
- Application-aware processing -- konzistentní zálohy pro AD, Exchange, SQL Server, Oracle
- Immutable backups -- ochrana proti ransomware pomocí Linux hardened repository
- CDP (Continuous Data Protection) -- near-zero RPO pro kritické VM
Veeam Community Edition je zdarma pro max. 10 VM a je výborným startem pro malé prostředí.
Doporučené postupy
- Používejte agentless zálohy jako primární metodu pro všechny VM
- Povolte CBT / dirty bitmap pro efektivní inkrementální zálohy
- Instalujte VMware Tools / Integration Services / QEMU Guest Agent pro application-consistent snapshoty
- Pravidelně testujte obnovu -- ideálně automatizovaně (Veeam SureBackup)
- Oddělte zálohovací síť od produkční sítě pro minimalizaci dopadu na provoz
- Plánujte zálohy mimo špičku -- snapshot stun a I/O overhead ovlivňují výkon VM
- Neponechávejte snapshoty -- zálohovací snapshot by měl existovat pouze po dobu zálohy
- Využijte Instant VM Recovery pro kritické VM s požadavkem na nízké RTO
- Replikujte zálohy offsite -- do cloudu nebo na vzdálený zálohovací server
- Monitorujte zálohovací úlohy a nastavte alerting na selhání
Závěr
Zálohování virtuálních strojů je dnes jednodušší než kdy dříve díky moderním API hypervisorů a specializovaným zálohovacím nástrojům. Klíčem je využít agentless přístup přes VADP/VSS/QEMU GA pro image-level zálohy, kombinovaný s CBT pro efektivní inkrementální zálohy. Pro kritické VM nasaďte Instant VM Recovery pro minimalizaci RTO a vždy testujte obnovitelnost záloh.