Virtualiser Proxmox Backup Server avec Proxmox VE

Au sommaire aujourd'hui :

  • 1-Qu'est-ce que Proxmox Backup Server ?
  • 2-Caractéristiques
  • 3-Création d'une machine virtuelle
  • 4-Mise à jour des dépôts
  • 5-Installer qemu-guest-agent
  • 6-Ajouter un périphérique USB/SATA
  • 7-Créer un Datastore
  • 8-Supprimer un Datastore
  • 9-Ajouter PBS à PVE

Ce tutoriel est plus destiné aux particuliers qu'aux entreprises du fait que je préconise dans un cadre domestique (et pour limiter les coûts) l'utilisation d'un partage NFS ou le passthrough d'un disque dur USB/SATA

1-Qu'est-ce que Proxmox Backup Server ?

Proxmox Backup Server (qu'on nommera PBS) est une solution qui vous permet de sauvegarder vos machines virtuelles, vos conteneurs mais aussi vos hôtes physiques conçu par Proxmox Server Solutions GmbH.

Mis en ligne pour la première fois en 2020n, PBS est LA solution qu'attendais TOUT les utilisateurs de Proxmox Virtual Environnement (PVE) depuis des années représente une véritable alternative à la solution propriétaire Veam Backup.

Il y a deux raisons à cela :

  • PVE propose un moyen de sauvegarder les machines virtuelles et les conteneurs mais uniquement en effectutant des sauvegardes complètes.
  • Pour que PVE puisse effectuer des sauvegardes différentielles, il fallait installer le script de ayufan à chaque mise à jour de PVE.
GitHub - ayufan/pve-patches: Repository with public Proxmox patches
Repository with public Proxmox patches. Contribute to ayufan/pve-patches development by creating an account on GitHub.

Il peut-être installé sur un hôte physique, une machine virtuelle mais aussi dans un conteneur LXC (qu'on verra dans un prochain tutoriel) et un conteneur OCI (Docker).

2-Caractéristiques

  • Libre et open-source (licence AGPL, v3)
  • Écris en langage Rust
  • Interface web
  • Support complet de PVE
  • Support payant pour les entreprises
  • Aucune limite pour le nombre de sauvegardes et de clients
  • Sauvegardes différentielles et incrémentielles,
  • Gestion et sauvegarde sur bandes magnetiques pour un archivage à long terme des données
  • Algorithme de somme de contrôle SHA-256 intégré
  • Chiffrage des données en GCM AES-256 (connexion TLS sécurisée)
  • Protection contre les ransomwares
  • Déduplication des données pour économiser
  • Synchronisation des données sur des sites distants
  • Compression sans perte en Zstd (Zstandard)

3-Création d'une machine virtuelle

Sur votre serveur PVE, cliquez sur "create VM".

Note : pensez à cocher la case "Advanced" pour avoir plus d'options disponibles.

General

  • Choisissez un VMID disponible et un nom

OS

  • Storage : Sélectionnez l'image ISO de Proxmox Backup Server.
  • Guest OS : laissez par défaut.

System

  • Graphic card : choisissez SPICE,
  • SCSI Controller : laissez par défaut (c'est le meilleur choix possible en terme de performance),
  • BIOS et Machine : laissez Seabios et i440fx par défaut,
  • Cliquez bien sur Qemu Agent pour que PVE puisse envoyer des commandes à la machine virtuelle et recevoir des informations,

Disks

  • Bus/Device : laissez par défaut,
  • Storage : choisissez "local-lvm" pour un provisionnement dynamique,
  • Disk size (GiB) : laissez par défaut (vous pourrez l'étendre par la suite),

Ici, deux options sont à cocher :

  • SSD emulation : indique à l'OS qu'il démarre sur un SSD et non sur un disque rotatif,
  • Discard : active le TRIM.

CPU

  • Socket : laissez par défaut,
  • Cores : Sélectionnez le nombre de cores que vous souhaiter,
  • Type : kvm64 est le choix par défaut, cela vous permettra de migrer votre machine virtuelle sur n'importe quel serveur sans rencontrer d'incompatibilités,
  • Memory (MiB) : Choisissez la mémoire que vous souhaitez allouer à votre machine virtuelle (c'est 2048 Mib par défaut),
  • Bridge : le pont par défaut du serveur,
  • Firewall : le pare-feu de Proxmox VE (iptable) activé par défaut,
  • Model : VirtIO est installé d'office dans les distributions Linux et vous permettra de profiter des gains de performance dû à la para-virtualisation.

Vérifiez que tout est correct puis finalisez la création de la machine virtuelle.

Optimisations

Dans les options de la machine virtuelle, pensez toujours à décocher l'option "Use tablet for pointer" qui dans le cadre d'un serveur est inutile et consomme beaucoup de ressources.

Nous allons installer Proxmox Backup Server 2.3.1.

Démarrez votre machine virtuelle et appuyez sur "Entrée" en sélectionnant "Install Proxmox Backup Server".

Cliquez sur "I agree" pour la valider les Conditions Générales d'Utilisation (CGU).

Par défaut, le format de fichiers est "ext4". SI vous le choisissez, cliquez sur "next".

Cliquez sur "Next". PBS trouve automatiquement le pays, la fuseau horaire et le type de clavier.

Indiquez votre mot de passe et votre adresse mail.

  • Hostname (FQDN) : indiquez un nom à votre instance PBS (pbs‌.lan pour l'exemple).
  • IP Address (CIDR) : indiquez une adresse IP fixe.
  • Gateway : la passerelle ets detecté automatiquement.
  • DNS Server : idem que pour la passerelle. Dans l'exemple, le serveur DNS est celui de mon instance Pi-hole.

Vérifiez que toutes les informations sont correctes et validez en cliquant sur "Install".

Tapez https://IP_ADDRESS:8007 pour accéder à l'interface web.

Authentifiez vous avec le compte root et le mot de passe que vous avez choisis.

Félicitation!!!! PBS est opérationnel.

4-Mise à jour des dépôts

Pour accéder aux mises à jours, il vous faudra ajouter le dépot "pbs-no-subscription".

Tout comme sur PVE, il est déconseillé pour de la production.

Note : c'est déconseillé mais dans les faits, c'est utilisé par pas mal d'entreprises qui ne souhaitent pas payer le support 😂.

Allez dans /etc/apt/sources.list et ajouter les lignes suivantes.

# PBS pbs-no-subscription repository provided by proxmox.com
# NOT recommended for production use
deb http://download.proxmox.com/debian/pbs bullseye pbs-no-subscription

Ensuite, supprimez le dépôt destiné aux entreprises qui souscrivent à l'abonnement et qui bloque les mises à jour.

rm -f /etc/apt/sources.list.d/pbs-enterprise.list

Enfin, mettez à jour les dépôts et installez les mises à jour.

apt update && apt upgrade -y

Félicitation!!!! Votre serveur PBS est à jour (2.3.1 à l'écriture de ce tutoriel).

5-Installer qemu-guest-agent

Comme pour toutes les machines virtuelles, pensez à installer le paquet "qemu-guest-agent" pour pouvoir arrêter correctement l'invité et geler le système de fichier lors d'une sauvegarde.

Dans le terminal de PBS, tapez la commande suivante.

apt install qemu-guest-agent -y

6-Ajouter un périphérique USB/SATA

Avant d'ajouter un datastore (qu'on verra plus bas), il vous faudra d'abord ajouter un périphérique USB ou SATA.

Pour le premier exemple, nous allons ajouter un périphérique SATA.

Périphérique SATA

Listez tout les périphériques SATA avec la commande suivante.

ls -l /dev/disk/by-id/

Puis lorsque vous aurez récupérer l'identifiant du disque, avec la commande "qm set", vous allez indiquer :

  • L'identifiant de la machine virtuelle (129 pour l'exemple)
  • Le numéro du lecteur scsi (2 car le scsi1 est celui du disque principal de la machine virtuelle),
  • Et l'identifiant du disque SATA à la suite de /dev/disk/by-id/DISK_ID
qm set 129 -scsi2 /dev/disk/by-id/ata-ST3000DM001-1CH166_Z1F41BLC

Validez la commande pour ajouter le disque.

Note : le passthrough SATA ne permet pas à la machine virtuelle d'avoir accès aux données SMART du disque contrairement au passthrough USB.

Pour la suite du tutoriel, on va ajouter un périphérique USB tel qu'une clé ou un disque dur.

Périphérique USB

Dans le terminal de PBS, tapez "lsusb" pour lister tout les périphériques USB ou faites un grep avec la marque du périphérique comme dans l'exemple ci-dessous (pour l'exemple, j'utilise une clé USB Sandiks Cruzer Blade USB 3.0 32 Go).

root@pve02:~# lsusb | grep SanDisk
Bus 002 Device 003: ID 0781:5567 SanDisk Corp. Cruzer Blade

Puis ajoutez le périphérique à votre machine virtuelle (129 dans l'exemple) avec son ID.

root@pve02:~# qm set 129 -usb0 host=0781:5567

Encore plus facile. Dans PVE, allez dans la configuration de la machine virtuelle et cliquez sur "USB Device".

Sélectionnez le périphérique USB.

Et cliquez sur "ok" pour valider.

Note : pour le formatage, cela vaut autant pour le périphérique USB que SATA.

Démarrez la machine virtuelle PBS puis dans le terminal, tapez la commande "lsblk". Vous verrez que le périphérique USB apparaît sous le nom "sdb" (sda est le disque principal de PBS) avec comme partition "sdb1".

Formatez la clé au format "ext4" avec la commande suivante et validez par "y".

mkfs.ext4 /dev/sdb1

Ensuite, tapez la commande "blkid /dev/sdb1" puis récupérez le UUID.

Créez le dossier "datastore" dans "/mnt" qui sera le point de montage principal puis créez le dossier "backups" qui accueillera la partition "sdb1".

mkdir /mnt/datastore
mkdir /mnt/datastore/backups

Ajoutez le périphérique USB au démarrage de PBS dans "/etc/fstab" avec comme point de montage "/mnt/datastore/backups" et le UUID précédemment récupéré.

UUID=50612efb-5c7d-4ec2-899d-0d946ce57695 /mnt/datastore/backups ext4 defaults 0 2

Voici un exemple de mon fichier fstab.

On vois que "sdb1" est bien monté dans "/mnt/datastore/backups"

7-Créer un Datastore

Dans "Datastore" :

  • Allez dans "Add Datastore".
  • Indiquez le nom de votre datastore et le chemin de ce dernier (celui du partage NFS donc /mnt/datastore/backups).

8-Supprimer un Datastore

Pour supprimer un datastore, tapez la commande suivante en indiquant le nom de ce dernier.

proxmox-backup-manager datastore remove "datastore_name"

9-Ajouter PBS à PVE

Depuis PVE v7.0, il est désormais possible d'ajouter comme source de stockage une instance PBS.

Dans PBS, cliquez sur "Dashboard" puis sur "Show Fingerprint".

Et copiez l'empreinte digitale.

Retournez sur votre serveur PVE puis allez dans Datacenter/Storage/Proxmox Backup Server.

Ajoutez les informations suivantes :

  • ID : le nom que vous souhaitez donné
  • Server : l'adresse IP du serveur PBS
  • Password : le mot de passe du serveur PBS
  • Datastore : le nom du datastore que vous avez créer (backups)
  • Fingerprint : copiez l'empreinte digitale du serveur PBS

Félicitation!!!! PBS est bien reconnu par votre serveur PVE

Sources :

Welcome to the Proxmox Backup documentation! — Proxmox Backup 2.3.1-1 documentation
Différences entre sauvegarde incrémentielle et sauvegarde différentielle
La sauvegarde incrémentielle ainsi que la sauvegarde différentielle figurent parmi les principales stratégies de sauvegardes dites « intelligentes » qui offrent l’avantage d’apporter des économies aussi bien sur le temps que sur l’espace disque. Quelles sont les différences entre ces types de sauveg…
USB Devices in Virtual Machines - Proxmox VE
Passthrough Physical Disk to Virtual Machine (VM) - Proxmox VE