Sauvegarde hors site des hôtes et serveurs virtuels KVM
Copie à chaud des VM
Document de référence : https://www.gonzalomarcote.com/2014/kvm-live-backups-with-qcow2/
- L'idée : faire des copies des VM (fichier .img) sans interruption pour avoir une sauvegarde d'un état intègre de la machine.
- les grandes lignes :
[côté VM] installer un agent dans la VM : aptitude install qemu-guest-agent
- [côté hôte] :
virsh edit sogo-test-saml : activer l'agent en ajoutant le code suivant dans le fichier /etc/libvirt/qemu/[nom-de-la-vm].xml, section "device"
<channel type='unix'> <source mode='bind' path='/var/lib/libvirt/qemu/channel/target/[nom-de-la-vm].org.qemu.guest_agent.0'/> <target type='virtio' name='org.qemu.guest_agent.0'/> <address type='virtio-serial' controller='0' bus='0' port='1'/> </channel>
On peut aussi le faire via l'interface graphique virt-manager (version >= 1.0)
- NB : cette opération nécessite un reboot de la VM
lister les disques liés à la VM
root@super-auforg2:~# virsh domblklist sogo-test
création du snapshot, copie de l'image de la VM, intégration du différentiel et suppression du snapshot
root@super-auforg2:~# virsh snapshot-create-as --domain sogo-test sogo-test-snap --disk-only --atomic --quiesce root@super-auforg2:~# rsync -avh --progress /var/lib/libvirt/images/sogo-test.img /var/cache/backupninja/vm-copies/sogo-test.img root@super-auforg2:~# virsh blockcommit sogo-test vda --active --verbose --pivot root@super-auforg2:~# virsh blockcommit sogo-test vdb --active --verbose --pivot root@super-auforg2:~# virsh snapshot-delete sogo-test sogo-test-snap --metadata root@super-auforg2:~# rm /var/lib/libvirt/images/sogo-test-snap
Pour lister les snapshots
root@super-auforg2:~# virsh snapshot-list sogo-test
- Le "blockcommit" est à faire pour chacun des disques liés à la VM (vda, vdb, etc.)
Backupninja
- La stratégie : on fait 3 lots
- sauvegarde de l'hôte : juste le système, pas les fichiers .img, ni les iso
les VM 'ordinaires' (VM de petites tailles : < 10G ?) : on les sauvegarde à la queue leu-leu en générant leur fichier de config (action.dup) à la volée
- les grosses VM (qui prennent du temps) : sauvegardées à tes temps précis avec beaucoup de marge
- On s'appuie un peu sur le principe de backuppc : un fichier de configuration global, commun aux VM ordinaires ; des fichiers permanents pour les autres
- Les outils :
- make-action-dup.sh : script de création des fichiers de configuration pour backupninja.
- backupninja-all-vm.sh : script de sauvegarde à la queue leu-leu. C'est dans ce script qu'est effectué le snapshot des VM avant sauvegarde et l'intégration par la suite.