OpenVZ (Sauvegarde)

Dernière mise à jour : 08/03/2019

La sauvegarde d’une machine virtuelle OpenVZ se fait très simplement, en étant administrateur (root) de la machine.

Préparation de la partition

Pour minimiser le downtime (le temps où le serveur est indisponible), il faut utiliser un paramètre spécial de sauvegarde (cf script ci-dessous) lequel nécessite un partionnement particulier.

En effet, il faut que les machines virtuelles soient créées sur une partition de type LVM mais également il est nécessaire qu’une partie de cette partition reste disponible pour le processus de sauvegarde. Si le partionnement est généralement réalisé à l’installation, il faudra quelques commandes pour libérer de la place sur la partition LVM (par défaut, elle est montée sur /var/lib/vz.

Paramétrage du partitionnement pour une distribution de type PROXMOX

root@host:~# /etc/init.d/vz stop (arrêt du service de virtualisation) 
root@host:~# df -h (pour voir l'allocation de la partition LVM)
Sys. de fich. Tail. Occ. Disp. %Occ. Monté sur
/dev/sda1 12G 886M 11G 8% /
tmpfs 1000M 0 1000M 0% /lib/init/rw
udev 10M 2,6M 7,5M 26% /dev
tmpfs 1000M 0 1000M 0% /dev/shm
/dev/mapper/pve-lv1 74G 952M 69G 2% /var/lib/vz (on voit que la partition fait 74 Go).

root@host:~# umount /var/lib/vz (on démonte la partition)
root@host:~# e2fsck -f /dev/mapper/pve-lv1 (on vérifie son état, pour ne rien abimer)

root@host:~# resize2fs /dev/mapper/pve-lv1 73G (on diminue la taille de 1 ou 2 Go, ce qui est généralement suffisant)
root@host:~# lvresize --size -2G /dev/mapper/pve-lv1 (on libère 2 Go qui pourra être utilisé par le processus snapshop)

root@host:~# e2fsck -f /dev/mapper/pve-lv1 (on re-vérifie la partition, après ces manipulations)
root@host:~# resize2fs /dev/mapper/pve-lv1 (on met en conformité la partition et le système de fichiers)
root@host:~# mount /dev/mapper/pve-lv1 /var/lib/vz (on remonte la partition)
root@host:~# /etc/init.d/vz start (on redémarre le service de virtualisation)

Script de sauvegarde

Le seul paramètre important est le numéro de machine virtuelle. La première porte souvent l’identifiant 101, c’est ce que j’ai utilisé dans mon exemple.

L’option --snapshot permet de minimiser le temps d’indisponibilité de la machine virtuelle.

#!/bin/sh# 
#
# Svg machine virtuelle
nohup vzdump --snapshot --compress--dumpdir /svg --tmpdir /tmp 101
#
NOM_FICH1=vzdump-101.$(date +%Y%m%d)-$1.tgz
cp /svg/vzdump-101.tgz /répertoire_sauvegarde/$NOM_FICH1

Script ou commande de restauration

vzrestore <fichier_de_sauvegarde> 101