Intégration de Proxmox Backup Server

Déploiement de Proxmox Backup Server, solution de sauvegarde intégrée à Proxmox Virtual Environment. De l'installation en VM sur TrueNAS, à la création des tâches de sauvegarde automatique.

PBS (Proxmox Backup Server) est une solution de sauvegarde qui s’intègre parfaitement avec l’hyperviseur PVE (Proxmox Virtual Environment). Il fonctionne avec une architecture classique client-serveur, et permet de sauvegarder machines virtuelles et hôtes de manière incrémentale et de restaurer chaque fichier individuellement.

Bien qu’il puisse être installé sur l’hyperviseur lui-même, en machine virtuelle ou directement sur l’hôte, il est préconisé de l’installer à part pour faciliter la restauration et limiter le temps d’immobilisation. Ici, PBS 3.0 sera installé en machine virtuelle sur TrueNAS Scale 22.12, pour sauvegarder tout mon environnement PVE et clients Linux.

I - Installation

1 - Configuration de la VM sous TrueNAS Scale

Nous allons suivre les recommandations matérielles de Proxmox :

  • 4 CPUs
  • 4 GB de RAM
  • Au moins 32 GB de disque de démarrage

Le disque sera stocké en tant que Zvol dans le pool choisi.

Pour le réseau, il est préférable de dédier une carte à PBS pour soulager la charge avec TrueNAS. Deux cartes réseaux virtuelles seront attribuées avec accès à deux VLAN différents, permettant normalement de segmenter et réglementer l’accès aux différents services via le pare-feu :

VLAN d’administration : autorisation interface web
VLAN « serveur » : accès internet pour les mises à jour et protocoles de sauvegarde

Seulement, PBS utilise le même port (TCP 8007) pour l’accès à l’interface Web et son API de backup, ce qui rend cette segmentation peu utile. Nous allons la garder tout de même car mon réseau admin n’autorise pas l’accès à internet pour les mises à jour.

2 - Installation du Système d'exploitation

L’installation de PBS est assez simple. Etant basé sur Debian, il n’y a aucun problème de compatibilité avec l’installation en VM sous TrueNAS Scale, qui utilise KVM. Il suffit de suivre les indications et de remplir selon votre configuration. Deux étapes sont importantes :

Configuration de l'utilisateur root

Ce sera l’utilisateur de base pour administrer la machine depuis l’interface web et la console. Il faut indiquer un mot de passe très sécurisé (un conseil pour les claviers français : n’utiliser pas de caractères spéciaux nécessitant la touche ALTGR, car elle n’est en général pas reconnue par défaut dans la console… et s’il y a un problème avec le réseau, vous risquez d’être bloqué à l’identification !). Une adresse mail valide est préférable, car ce sera celle à qui les alertes seront envoyées (erreurs de backup par ex).

Configuration réseau

Il est important de choisir l’interface et le réseau avec lequel on peut communiquer par la suite, car tout le reste de la configuration se fera par l’interface web. Les autres interfaces et autres modifications pourront être effectuées après l’installation.

Après l’installation, on supprime le lecteur CD de la VM et vérifie que le disque d’installation est bien en 1er, puis on se connecte à l’interface d’administration à https://<adresseIP>:8007

II - Configuration

En s’appuyant sur les remarques précédentes, j’ai été chargé d’établir une liste des équipements nécessaires et leurs caractéristiques, ainsi que des licences et prestations associées. Un devis pourra être établi par la suite après révision et discussion avec Nicolas dans son rôle de responsable commercial.

1 - Configuration initiale

Commençons par actualiser la configuration réseau dans l’onglet Configuration :

Attention à ne pas se retrouver bloqué ! PBS nous autorise à effectuer toutes les modifications nécessaires puis les appliquer d’un seul bloc, donc mieux vaut vérifier avant de valider. Dans le pire des cas, on peut se connecter en VNC à la console via TrueNAS, toutes les configurations accessibles via l’interface Web ont un équivalent en CLI, bien documenté par l’équipe Proxmox.

Il faut ensuite activer les mises à jour. Par défaut, PBS configure ses dépôts sur leur version payante, accessibles uniquement aux détenteurs d’un abonnement. Mais des dépôts libres gratuits sont disponibles, bien que non conseillés pour un usage en production, ils seront parfaitement adéquats dans un environnement personnel. Rendez-vous dans sur Administration/Repositories pour rajouter le dépôt pbs-no-subscription et désactiver pbs-entreprise :

On peut alors chercher (Refresh) et appliquer (Upgrade) les mises à jour dans l’onglet Updates. Si un redémarrage est requis (après une mise à jour du noyau par exemple), le conseil sera explicité dans la console.

2 - Création de la cible de sauvegarde

Avant de pouvoir effectuer des backups, il faut ajouter un emplacement pour les enregistrer. Comme nous sommes sur une machine virtuelle, nous allons créer un disque virtuel et l’attacher à PBS. Sur TrueNAS Scale, on créé un ZVol dans le Pool et Datastore de notre choix. Il est aussi possible de monter des partages réseau (NFS, SMB, iSCSI), en ligne de commande, comme sur toute machine Debian. Mais Donner accès à un disque directement est ce qui donnera les meilleures performances.

Ici, deux différentes cibles seront définies dû à la configuration en place. Il y a deux pools de stockage disponibles sur l’hôte TrueNAS :

  • IronWolf-Pro : Raid 5 avec 3 HDD de 4 To, neufs et conçus pour un NAS. Ce pool est fiable et accueillera les sauvegardes importantes, « de production »
  • WD-Gold : Raid 1 avec 2 HDD de 1 To, recyclés depuis d’anciens PC. Ce pool est peu fiable et servira aux tests et aux machines sans importance.

On attache ensuite ces disques à la VM PBS, à froid de préférence. Pour de meilleures performances, on choisi le mode VirtIO comme contrôleur de disque.

Au redémarrage de PBS, les deux disques sont normalement visibles dans l’onglet Storage/Disks. On peut faire leur initialisation, partitionnement, formatage et montage en datastore directement depuis l’interface web :

  • Initialize Disk with GPT
  • ZFS / Create ZFS : Raid 0 avec 1 disque (la redondance est assurée par TrueNAS)

Dans le cas d’un seul disque par pool comme ici, on peut aussi utiliser ext4 ou xfs.

  • Cocher « Add as a datastore » pour créer automatiquement la cible de sauvegarde

Finalement, on obtient une arborescence de ce type :

Le serveur est maintenant prêt à accueillir des backups !

3 - Tâche de sauvegarde depuis PVE

Connexion à PBS

Pour pouvoir fonctionner correctement, le client de backup (ici PVE) a besoin de :

Accéder à PBS sur le port 8007 en TCP

Il faut s’assurer qu’aucun pare-feu ne bloque la connexion. Sur PBS, la configuration iptables appliquée laisse les connexions entrantes en TCP 8007. Sur PVE, par défaut, le pare-feu ne bloque pas les connexions sortantes.

L’empreinte SHA-256 de PBS

Accessible facilement depuis le Dashboard de PBS, elle est gage de l’intégrité du serveur PBS.

Elle n’est pas nécessaire si le certificat SSL utilisé par PBS est valide et de confiance (voir : Obtenir un certificat SSL Valide avec Let’s Encrypt pour les serveurs internes sans exposition)

Elle est modifiée à chaque changement de certificat pour PBS. Il faudra donc la remettre à jour à ce moment là.

Un identifiant et un mot de passe

L’utilisateur doit avoir des droits suffisants pour crééer et restaurer des backup sur le datastore souhaité.

On pourrait utiliser ici le compte root de PBS : root@pam. Mais le client n’a pas besoin d’autant de privilèges, et en faisant cela si PVE est corrompu, les sauvegardes sont corrompues aussi, ce que l’on cherche à éviter.

PBS permet l’intégration d’utilisateurs par de nombreux moyens : PAM, méthode classique d’authentification Linux ; PBS (Proxmox Backup authentication Server), permettant la création directement dans l’interface Web ; LDAP ou Open ID Connect, permettant la centralisation des identifiants avec les autres machines. Nous allons ici créer un utilisateur de type PBS pour le cluster PVE :

Le mail indiqué servira encore une fois pour les alertes, si cet utilisateur est précisé comme utilisateur à prévenir dans les alertes. Particulièrement utile pour une infrastructure avec plusieurs administrateurs, mais ici les notifications à l’utilisateur root sont suffisantes.

L’utilisateur ainsi créé n’a aucun droit par défaut, il faut donc lui rajouter le droit de créer et de restaurer des sauvegardes créées par lui-même :

On peut alors rajouter PBS comme cible de stockage sur PVE : Datacenter / Storage / Add

La stratégie de rétention est définie par PBS, et le chiffrement est ici déjà assuré par TrueNAS au niveau du Pool.

La fréquence de sauvegarde est définie par le client. Dans PVE, sous Datacenter/Backup.

Le passage par un utilisateur spécifique permet bien de limiter les droits du client sur PBS. PVE ne peut pas voir les sauvegardes effectuées par un autre client (Mon PC de bureau sous Linux par exemple), et ne peut pas supprimer ou modifier des backups effectués :

Stratégie de Sauvegarde

De nombreuses options sont possibles, dont notamment la fréquence et le type de sauvegarde.

Pour la fréquence de sauvegarde, plusieurs options prédéfinies sont proposées dans le menu déroulant (toutes les 2 heures, tous les jours à 21h, le premier Samedi de chaque mois…). On peut choisir l’option qui se rapproche le plus de ce que l’on veut, et modifier en gardant la même structure. Par exemple « tue..sat 02:00 » définit une programmation tous les soirs en semaine à 2h.

Il y a trois types de sauvegarde :

Stop

Arrête entièrement la VM avant de faire le backup. Nécessite que qemu-guest-agent soit installé sur la VM pour assure un arrêt en douceur. Méthode la plus fiable de backup, mais qui impose un temps d’indisponibilité conséquent.

Snapshot

Initie la sauvegarde en gardant la VM active, permettant que la sauvegarde soit la moins perceptive possible. Dans de rares cas, il y a un risque de corruption lors de la restauration de la sauvegarde.

Suspend

« gêle » l’état de la VM, la rendant indisponible durant la sauvegarde. Le temps d’indisponibilité et la fiabilité du backup est un compromis entre Stop et Suspend.

Dans notre cas, nous allons mettre place 3 stratégies, réparties en deux groupes :

  • Pour les machines en production (pfSense, Docker…) : une en mode snapshot toutes les 30 minutes pendant les moments où il est le plus probable d’y avoir des modifications, et une sauvegarde Stop une fois par semaine le lundi dans la nuit pour avoir quelques backups 100% fiables.

  • Pour les autres VM, une sauvegarde toutes les nuits pour ne pas perdre l’avancée. Elles ne sont normalement pas critiques, donc des snapshots suffisent pour ne pas perturber leur fonctionnement si jamais elles devraient rester allumées la nuit.

Pour finir, il vaut mieux s’assurer que les sauvegardes et restaurations fonctionnent bien, que les alertes arrivent bien en cas d’échec. Ainsi, nous avons des sauvegardes automatiques, fiables et surveillées des machines virtuelles sous Proxmox.

Il y a encore certaines optimisations qui peuvent être effectuées pour améliorer notre stratégie de sauvegarde :

  • Gérer la déduplication et la rétention des backups sur PBS, pour optimiser l’espace de stockage. Cela n’est pas urgent, mais devra être fait avant d’arriver à court de place.

  • Ajouter une troisième copie des données. Sur PBS, de nombreuses options existent : Synchronisation avec un deuxième PBS, bande magnétique, et tout ce qu’il est possible d’intégrer à Debian en ligne de commande. La 3e copie peut être gérée par TrueNAS, qui dispose aussi de nombreuses options intégrées, notamment vers le Cloud.

Lorsqu’on se connecte à l’interface d’administration de PBS pour la première fois, un message familier des administrateurs réseaux s’affiche :

C’est normal, et contrairement à ce qui est affiché, les risques à ce stade sont quasiment inexistants. Le certificat de base est autosigné, et l’autorité de certification n’est donc pas reconnue par le navigateur (ici Firefox). Le problème est que ce message revient inévitablement quant on change de navigateur, d’appareil ou en vidant le cache du navigateur.

Il est possible d’obtenir un certificat de confiance gratuitement avec Let’s Encrypt, même pour des serveurs à usage interne, non exposés sur internet. Je vous invite à lire cet article si vous voulez le détail dans le cadre de PBS.

Conclusion

Nous avons donc un serveur Proxmox Backup Server, s’intégrant parfaitement à l’environnement de virtualisation Proxmox Virtual Environment.

Les sauvegardes sont automatiques, efficaces et facilement exploitables. L’intégrité des données est garantie par la gestion de droits : En cas de compromission de PVE, les sauvegardes sur PBS ne peuvent pas être effacées ou modifiées ; et inversement, en cas de compromission de PBS, les données actuelles sur PVE ne peuvent pas être effacées.

Actuellement, cette solution de sauvegarde est complétée par une sauvegarde Hors-site. Une réplication ZFS de TrueNAS est effectée tous les soirs via un tunnel VPN chez une personne de confiance à quelques kilomètres de mon logement.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *