Traité sur l'essence du mécanisme de sauvegarde dans Proxmox VE
Dans l'article « La magie de la virtualisation : cours d'introduction à Proxmox VE », nous avons installé avec succès un hyperviseur sur le serveur, y avons connecté un stockage, assuré une sécurité élémentaire et même créé notre première machine virtuelle. Nous allons maintenant voir comment réaliser les tâches de base nécessaires pour toujours pouvoir restaurer le fonctionnement des services en cas de panne.
Les outils natifs de Proxmox permettent non seulement d'effectuer la sauvegarde des données, mais aussi de créer des jeux d'images préconfigurées de systèmes d'exploitation pour un déploiement rapide. Cela permet non seulement de créer un nouveau serveur pour n'importe quel service en quelques secondes en cas de besoin, mais réduit également le temps d'arrêt au minimum.
Nous ne parlerons pas de la nécessité de créer des sauvegardes, car c'est évident et constitue un axiome depuis longtemps. Attardons-nous plutôt sur certains points et particularités moins évidents.
Examinons d'abord comment les données sont stockées lors de la procédure de sauvegarde.
Algorithmes de sauvegarde
Commençons par le fait que Proxmox dispose d'un excellent outillage natif pour créer des sauvegardes de machines virtuelles. Il permet de sauvegarder facilement toutes les données de la machine virtuelle et prend en charge deux mécanismes de compression, ainsi que trois méthodes de création de ces copies.
Examinons d'abord les mécanismes de compression :
1. Compression LZO. Algorithme de compression de données sans perte, inventé au milieu des années 90. Le code a été écrit par Markus Oberhumer (implémenté dans Proxmox via l'utilitaire lzop). La principale caractéristique de cet algorithme est une décompression très rapide. Ainsi, toute sauvegarde créée avec cet algorithme peut être déployée en un minimum de temps si nécessaire.
2. Compression GZIP. Lors de l'utilisation de cet algorithme, la sauvegarde sera compressée « à la volée » par l'utilitaire GNU Zip, qui utilise le puissant algorithme Deflate, créé par Phil Katz. L'accent est mis sur une compression maximale des données, ce qui permet de réduire l'espace disque occupé par les sauvegardes. La principale différence avec LZO est que les procédures de compression/décompression prennent relativement beaucoup de temps.
Modes d'archivage
Proxmox propose à l'administrateur système le choix entre trois méthodes de sauvegarde. Elles permettent de résoudre la tâche nécessaire en définissant la priorité entre le besoin d'arrêt de service et la fiabilité de la sauvegarde réalisée :
1. Mode Snapshot (Instantané). Ce mode peut être qualifié de Live backup, car son utilisation ne nécessite pas d'arrêter le fonctionnement de la machine virtuelle. L'utilisation de ce mécanisme n'interrompt pas le fonctionnement de la VM, mais présente deux inconvénients très sérieux : des problèmes peuvent survenir à cause du verrouillage de fichiers par le système d'exploitation, et c'est la vitesse de création la plus faible. Les sauvegardes créées avec cette méthode doivent toujours être testées dans un environnement de test. Sinon, il existe un risque qu'elles échouent en cas de besoin de restauration d'urgence.
2. Mode Suspend (Suspension). La machine virtuelle gèle temporairement son état jusqu'à la fin du processus de sauvegarde. Le contenu de la mémoire vive n'est pas effacé, ce qui permet de reprendre le travail exactement là où il a été interrompu. Bien entendu, cela entraîne un arrêt du serveur pendant la copie des informations, mais il n'est pas nécessaire d'éteindre/rallumer la machine virtuelle, ce qui est assez critique pour certains services, surtout si le démarrage de certains services n'est pas automatique. Néanmoins, ces sauvegardes doivent également être déployées dans un environnement de test pour vérification.
3. Mode Stop (Arrêt). La méthode de sauvegarde la plus fiable, mais qui nécessite l'arrêt complet de la machine virtuelle. Une commande d'arrêt normal est envoyée, la sauvegarde est effectuée après l'arrêt, puis une commande de démarrage de la machine virtuelle est émise. Le nombre d'erreurs avec cette approche est minimal et se réduit le plus souvent à zéro. Les sauvegardes créées de cette manière se déploient pratiquement toujours correctement.
Exécution de la procédure de sauvegarde
Pour créer une sauvegarde :
1. Accédez à la machine virtuelle souhaitée.
2. Sélectionnez l'élément Sauvegarde.
3. Cliquez sur le bouton Sauvegarder maintenant. Une fenêtre s'ouvrira, où vous pourrez choisir les paramètres de la future sauvegarde. Paramètres de la sauvegarde
4. Comme stockage, indiquez celui que nous avons connecté dans la partie précédente.
5. Après avoir choisi les paramètres, cliquez sur le bouton Sauvegarde et attendez que la sauvegarde soit créée. Ceci sera indiqué par le message TASK OK.
Désormais, les archives créées avec les sauvegardes des machines virtuelles seront disponibles au téléchargement depuis le serveur. La méthode de copie la plus simple et la plus banale est le SFTP. Pour cela, utilisez le client FTP multiplateforme populaire FileZilla, qui sait fonctionner avec le protocole SFTP.
1. Dans le champ Hôte saisissez l'adresse IP de notre serveur de virtualisation, dans le champ Nom d'utilisateur saisissez root, dans le champ Mot de passe - celui choisi lors de l'installation, et dans le champ Port indiquez "22" (ou tout autre port défini pour les connexions SSH).
2. Cliquez sur le bouton Connexion rapide et si toutes les données ont été saisies correctement, vous verrez dans le panneau actif tous les fichiers présents sur le serveur.
3. Accédez au répertoire /mnt/storage. Toutes les sauvegardes créées se trouveront dans le sous-répertoire « dump ». Elles auront la forme :
vzdump-qemu-numéro_machine-date-heure.vma.gz en cas de choix de la méthode de compression GZIP ;
vzdump-qemu-numéro_machine-date-heure.vma.lzo pour l'utilisation de la méthode LZO.
Il est recommandé de télécharger immédiatement les sauvegardes depuis le serveur et de les conserver dans un endroit sûr, par exemple dans notre stockage cloud. Si l'on décompresse le fichier avec l'utilitaire vma du même nom, fourni avec Proxmox, on y trouvera des fichiers avec les extensions raw, conf et fw. Ces fichiers contiennent ce qui suit :
raw - image disque ;
conf - configuration de la VM ;
fw — paramètres du pare-feu.
Restauration à partir d'une sauvegarde
Examinons une situation où une machine virtuelle a été accidentellement supprimée et nécessite une restauration d'urgence à partir d'une sauvegarde :
1. Ouvrez le stockage où se trouve la sauvegarde.
2. Accédez à l'onglet Contenu.
3. Sélectionnez la sauvegarde souhaitée et cliquez sur le bouton Restauration.
Restauration
4. Indiquez le stockage cible et l'ID qui sera attribué à la machine une fois le processus terminé.
5. Cliquez sur le bouton Restauration.
Dès que la restauration sera terminée, la VM apparaîtra dans la liste des machines disponibles.
Clonage d'une machine virtuelle
Par exemple, supposons qu'une entreprise doive apporter des modifications à un service critique. Un tel changement s'effectue en apportant de multiples corrections aux fichiers de configuration. Le résultat est alors imprévisible, et toute erreur peut provoquer une panne du service. Pour éviter qu'une telle expérimentation n'affecte le serveur en production, il est recommandé de cloner la machine virtuelle.
Le mécanisme de clonage créera une copie exacte du serveur virtuel, sur laquelle on pourra effectuer n'importe quelle modification sans affecter le fonctionnement du service principal. Ensuite, si les modifications sont appliquées avec succès, la nouvelle VM est mise en production et l'ancienne est arrêtée. Il y a dans ce processus une particularité à toujours garder en tête : sur la machine clonée, l'adresse IP sera identique à celle de la VM d'origine, ce qui provoquera un conflit d'adresses lors de son démarrage.
Expliquons comment éviter cette situation. Juste avant d'effectuer le clonage, il convient de modifier la configuration réseau. Pour cela, il faut changer temporairement l'adresse IP, sans redémarrer le service réseau. Après le clonage, il faut rétablir les paramètres sur la machine principale, et attribuer sur la machine clonée une autre adresse IP. On obtient ainsi deux copies du même serveur sur des adresses différentes. Cela permettra de mettre rapidement en service le nouveau service.
Si ce service est un serveur web, il suffit de modifier l'enregistrement A auprès de votre fournisseur DNS, après quoi les requêtes des clients pour ce domaine seront envoyées à l'adresse de la machine virtuelle clonée.
À propos, Selectel offre à tous ses clients la possibilité d'héberger gratuitement un nombre illimité de domaines sur des serveurs NS. La gestion des enregistrements s'effectue aussi bien via notre panneau de gestion qu'à l'aide d'une API dédiée. Pour en savoir plus, consultez notre base de connaissances.
Le clonage d'une VM dans Proxmox est une tâche très simple. Pour l'effectuer, il faut réaliser les actions suivantes :
1. Accédez à la machine souhaitée.
2. Sélectionnez dans le menu More l'élément Clone.
3. Dans la fenêtre, renseignez le paramètre Nom.
4. Effectuez le clonage en cliquant sur le bouton Clone.
Cet outil permet de créer une copie de la machine virtuelle pas uniquement sur le serveur local. Si plusieurs serveurs de virtualisation sont regroupés en cluster, cet outil permet de déplacer immédiatement la copie créée vers le serveur physique souhaité. Une fonction utile est le choix du stockage disque (paramètre Target Storage), ce qui est très pratique lors du déplacement d'une machine virtuelle d'un support physique à un autre.
Formats de disques virtuels
Détaillons les formats de disques utilisés dans Proxmox :
1. RAW. Le format le plus simple et le plus compréhensible. Il s'agit d'un fichier contenant les données du disque dur "octet par octet" sans compression ni optimisation. C'est un format très pratique, car il est facile à monter avec la commande standard mount sur n'importe quel système Linux. De plus, c'est le « type » de disque le plus rapide, car l'hyperviseur n'a besoin d'aucun traitement particulier.
Un inconvénient sérieux de ce format est que la quantité d'espace allouée à la machine virtuelle sera exactement celle occupée sur le disque dur par le fichier au format RAW (indépendamment de l'espace réellement occupé à l'intérieur de la machine virtuelle).
2. QEMU image format (qcow2). Probablement le format le plus universel pour toutes les tâches. Son avantage est que le fichier de données ne contiendra que l'espace réellement occupé à l'intérieur de la machine virtuelle. Par exemple, si 40 Go d'espace ont été alloués et que seuls 2 Go sont réellement occupés, tout le reste de l'espace restera disponible pour d'autres VM. Ceci est très pertinent dans un souci d'économie d'espace disque.
Un léger inconvénient de ce format est le suivant : pour monter une telle image sur n'importe quel autre système, il faut d'abord charger un pilote spécial nbd, et utiliser qemu-nbd l'utilitaire, qui permettra au système d'exploitation d'accéder au fichier comme à un périphérique bloc ordinaire. Après cela, l'image deviendra accessible pour le montage, le partitionnement, la vérification du système de fichiers et d'autres opérations.
Il faut se rappeler que toutes les opérations d'entrée-sortie sont traitées de manière logicielle avec ce format, ce qui entraîne un ralentissement du travail actif avec le sous-système disque. Si la tâche consiste à déployer une base de données sur le serveur, il vaut mieux choisir le format RAW.
3. VMware image format (vmdk). Ce format est "natif" pour l'hyperviseur VMware vSphere et a été inclus dans Proxmox pour des raisons de compatibilité. Il permet de migrer une machine virtuelle VMware vers l'infrastructure Proxmox.
L'utilisation permanente de vmdk n'est pas recommandée, ce format étant le plus lent sous Proxmox ; il ne convient donc qu'à la migration, rien de plus. Cet inconvénient sera probablement corrigé dans un avenir proche.
Travail avec les images disque
Proxmox est fourni avec un utilitaire très pratique appelé qemu-img. L'une de ses fonctions est la conversion d'images de disques virtuels. Pour l'utiliser, il suffit d'ouvrir la console de l'hyperviseur et d'exécuter une commande au format :
qemu-img convert -f vmdk test.vmdk -O qcow2 test.qcow2
Dans l'exemple ci-dessus, l'image vmdk du disque virtuel VMware nommé test sera convertie au format qcow2. Cette commande est très utile lorsqu'il faut corriger une erreur commise lors du choix initial du format.
Grâce à cette commande, on peut créer de force l'image souhaitée en utilisant l'argument create :
qemu-img create -f raw test.raw 40G
Cette commande créera une image test au format RAW d'une taille de 40 Go. Elle est désormais prête à être connectée à n'importe quelle machine virtuelle.
Redimensionnement d'un disque virtuel
Enfin, montrons comment augmenter la taille de l'image disque si, pour une raison quelconque, l'espace disponible ne suffit plus. Pour cela, utilisons l'argument resize :
qemu-img resize -f raw test.raw 80G
Notre image fait désormais 80 Go. Les informations détaillées sur l'image peuvent être consultées à l'aide de l'argument info :
qemu-img info test.raw
Il ne faut pas oublier que l'extension de l'image n'augmentera pas automatiquement la taille de la partition - elle ajoutera simplement de l'espace libre disponible. Pour agrandir la partition, utilisez la commande :
resize2fs /dev/sda1
où /dev/sda1 est la partition souhaitée.
Automatisation de la création des sauvegardes
L'utilisation d'une méthode manuelle pour créer des sauvegardes est une tâche très laborieuse et chronophage. C'est pourquoi Proxmox VE intègre un outil de sauvegarde automatique planifiée. Voyons comment procéder :
1. À l'aide de l'interface web de l'hyperviseur, ouvrez l'élément Datacenter.
2. Sélectionnez l'élément Sauvegarde.
3. Cliquez sur le bouton Ajouter.
4. Définissez les paramètres du planificateur.
5. Cochez la case Activer.
6. Enregistrez les modifications à l'aide du bouton Créer.
Désormais, le planificateur lancera automatiquement le programme de sauvegarde à l'heure indiquée, selon le calendrier défini.
Conclusion
Nous avons examiné les méthodes natives de sauvegarde et de restauration des machines virtuelles. Leur utilisation permet de conserver toutes les données sans problème particulier et de les restaurer en urgence en cas de situation exceptionnelle.
Bien sûr, ce n'est pas l'unique moyen possible de sauvegarder des données importantes. Il existe de nombreux outils, comme Duplicity, permettant de créer des copies complètes et incrémentielles du contenu de serveurs virtuels basés sur Linux.
Lors de l'exécution des procédures de sauvegarde, il faut toujours garder à l'esprit qu'elles sollicitent fortement le sous-système disque. Il est donc recommandé d'exécuter ces procédures aux moments de charge minimale, afin d'éviter des retards dans les opérations d'entrée-sortie à l'intérieur des machines. Le statut des délais des opérations disque peut être suivi directement depuis l'interface web de l'hyperviseur (paramètre IO delay).
Si vous avez des questions, nous serons ravis d'y répondre dans notre chat en ligne ou sur nos messageries !


