L'objectif de ce tutoriel est de vous apprendre à utiliser la commande proxmox pve-zsync

Cette commande puissante n'est pas installée de base et doit être installée en ligne de commande afin de pouvoir être utilisée. Elle permet ensuite de synchroniser un dataset ZFS avec un serveur ZFS distant.
C'est de loin la meilleure méthode de sauvegarde de vos containers LXC ou de vos VM QEMU. 
Bien évidemment cela sous-entend que vous utilisiez ZFS et non EXT comme file system. Si ce n'est pas encore le cas, nous ne vous recommandons vivement de migrer le plus rapidement possible vers ZFS. Les avantages sont tellement importants : vos efforts seront très largement récompensés. 

On pourra citer les avantages suivants :

  • très faible emprunte mémoire 
  • rapidité des backups 
  • contrôle de la bande passante utilisée 
  • excellent script très intégré et nécessitant très peu de paramétrage
  • remonté automatique des éventuels problèmes d'exécution du script
  • backup ZFS fonctionnant par incrément
  • possibilité d'exécution du script toute les 'n' minutes permettant de garantir la fiabilité des backups et un interval de temps très court entre les backups

 

1°) Installation de pve-zsync :

La commande pve-zsync fait partie des commandes disponibles sur le repo entreprise de ProxMox. 
Pour l'installer il suffit de lancer la commande suivante (si vous êtes à jour de votre souscription ProxMox) :

# apt-get install pve-zsync

 

2°) Création du Snapshot initial

Vous devez avoir un accès transparent via SSH à votre serveur de backup FreeNAS
Vérifier que le point de montage ZFS existe bien sur votre serveur FreeNAS (ou sur un autre serveur). 
Lancer une commande synchronisation équivalente à celle-ci :
# pve-zsync create --source 107 --dest 192.168.210.28:tank/proxmini --limit 3125 --verbose --maxsnap 14 --name Backup_ZFS_srv_107

Cette commande permet de créer le premier snapshot et de l'envoyer sur le serveur de backup FreeNAS sur le point de montage "tank/proxmini" 

Il n'et pas nécessaire de créer un point de montage fils sur le serveur FreeNAS, ce dernier est automatiquement créé et les snapshots seront enregistrés sur ce point de montage (dans notre cas l'arborescence créée sera la suivante : "tank/proxmini/Backup_ZFS_srv_107". 

 

3°) Modification de la fréquence des snapshots 

Par défaut les backup sont automatisés toutes les 15 minutes - cette fréquence peut convenir à certain projets, mais n'est pas forcément celle que l'on souhaite avoir. 

Editer la crontab associée à pve-zsync et modifier la fréquence des backups suivant vos besoins

# vi /etc/cron.d/pve-zsync 

et changer la fréquence par défaut (tout les 1/4 d'heure par défaut) et le passer à la fréquence de backup désirée - par exemple :

* 8 * * * root pve-zsync sync --source 107 --dest 192.168.210.28:tank/proxmini --name Backup_ZFS_srv_107 --maxsnap 14 --limit 3125 --method ssh

 

On remarquera l’impact très faible sur la mémoire et le réseau des backups ZFS. 

 

4°) Procédure de restauration du backup :

Le dataset est automatiquement créé sur votre serveur Proxmox.
Il faut simplement que le dataset parent existe (en l’occurence rpool/data) 

[root@SRV_FreeNAS] # zfs send tank/proxmini/vm-107-disk-1@rep_OpenOSNet_2016-06-02_00:00:02 | ssh root@192.168.210.11 zfs receive rpool/data/vm-107-disk-1

Attention à bien sauvegarder les configurations de vos VM et Containers LXC.
Il faut prendre l'habitude de faire un backup des dossiers suivants :

  •  /etc/pve 
  • /etc/network/interfaces
  • ou plus simplement : l'intégralité du dataset rpool/ROOT et ses enfants !

 

5°) Supression d'un ancien backup sur Proxmox

Pour afficher la liste des jobs pve-zsync en cours : 

# pve-zsync list

 

Pour supprimer un job : 

# pve-zsync destroy --source 105 --name OpenOSNet

 

Les snapshots associés au backup ZFS sont détruits avec cette commande. 

 

Liens externes :