Comment sauvegarder des VMs dans Azure avec les snapshots
La fonction de snapshot, gratuitement accessible aux administrateurs depuis le portail ou la ligne de commande, est une alternative au service payant de sauvegardes.
Il est courant d’utiliser sur site la fonction de snapshot pour sauvegarder l’état d’une machine virtuelle à un instant T. Cela sert à pouvoir revenir à un état antérieur des systèmes ou des données. Ce procédé existe sur Azure mais fonctionne différemment : il n’y a pas d’option pour faire, en une seule étape, le snapshot d’une machine virtuelle entière.
Sur Azure, la pratique consiste plutôt à faire, un à un, les snapshots de chaque disque virtuel connecté à une machine virtuelle. Le but de cet article est de permettre aux administrateurs système d’utiliser les snapshots d’Azure pour réaliser des sauvegardes d’appoint et des restaurations.
Précisons qu’il existe sur Azure un service payant pour automatiser la sauvegarde de machines virtuelles entières à intervalles réguliers : Azure Backup. Nous ne parlerons ici que des fonctions de snapshots utilisables directement, sans souscription supplémentaire.
Les sauvegardes d’appoint
Le snapshot de base sur Azure consiste à sauvegarder des disques virtuels « Azure Managed Disk » - ce qui suppose que les machines virtuelles utilisent bien entendu des volumes virtuels délivrés par ce service. Avant que ce service n’existe, les administrateurs devaient mettre en place et maintenir des comptes supplémentaires rien que pour le stockage. De plus, il n’était possible, à cette époque, de faire des snapshots des disques qu’à partir de la ligne de commande. Le service Azure Managed Disk a aboli ces contraintes.
Grâce à ce service, il est désormais possible de créer des snapshots des disques directement depuis le portail d’Azure. Il suffit de se rendre sur l’onglet dédié aux ressources d’une VM, de sélectionner le disque virtuel que l’on souhaite sauvegarder et de cliquer sur « Create Snapshot ». On peut aussi directement chercher la fonction « Create snapshot » dans le portail, qui amène à une page sur laquelle on indique le nom du serveur virtuel concerné et celui de son disque à sauvegarder.
Rappelons-le : un snapshot ne permet pas de sauvegarder d’un coup tous les disques d’une même VM. Et c’est un problème, car le système de la machine virtuelle peut éventuellement maintenir un RAID entre chacun de ses disques, c’est-à-dire qu’ils sont conçus pour fonctionner ensemble. Or, si ces disques sont sauvegardés à des moments différents, leur restauration pourra conduire à la corruption de certaines des données. La bonne pratique pour s’assurer que chacun des disques sauvegardés reste synchronisé avec les autres est donc d’éteindre la machine virtuelle en question avant de faire les snapshots.
Par ailleurs, les snapshots effectués depuis Azure consomment de l’espace de stockage, ce qui affectera le coût mensuel du service. Prenez donc garde à la fréquence et à la quantité de snapshots que vous réaliserez. En particulier, gardez en tête que si vous faites plusieurs snapshots successifs d’un même disque, il s’agira de sauvegardes entières à chaque fois, et non incrémentales.
Outre le portail, les snapshots peuvent aussi se piloter depuis la ligne de commande Azure CLI, ce qui est utile dans le cadre de scripts pour automatiser les actions. Sur la figure suivante, voici quelles commandes saisir pour lancer le snapshot du disque contenant l’OS sur une VM appelée SERVER1.
Ici, la commande « az snapshot create » a besoin en argument de l’ID du disque que l’on veut sauvegarder. Nous lui passons cette identification au moyen de la variable « osDiskId » que nous définissions juste avant, grâce à la commande « az vm show ».
Restaurer des machines virtuelles à partir des snapshots
Pour restaurer une machine virtuelle d’après un snapshot, il faut commencer par créer un nouveau disque Azure Managed Disk. Depuis le portail, il faut naviguer dans les rubriques successives Marketplace, Everything et Managed Disks jusqu’à arriver sur l’écran « Create managed disk », où l’on peut définir que la source de ce disque sera un snapshot et indiquer le nom de ce dernier.
Une fois le processus de construction terminé, naviguez jusqu’aux ressources du nouveau disque pour découvrir un bouton « Create VM ». Celui-ci sert à lancer une nouvelle machine virtuelle qui démarrera avec tout le contenu du snapshot sur son disque.
Reprise d’activité
L’étape logique suivante consiste à répliquer les snapshots sur d’autres régions afin de constituer un plan de reprise d’activité ailleurs, en cas d’incident sur la région de production. Mais nous atteignons là les limites de l’exercice : s’il est bien possible, depuis Azure CLI, de copier à la main des snapshots d’une région Azure à l’autre, c’est une tâche assez laborieuse et fort coûteuse en temps-homme, dès lors que la quantité de serveurs et de disques qui leur sont rattachés devient conséquente.
La bonne pratique consiste dans ce cas à plutôt passer par le service Azure Site Recovery qui se charge de répliquer les VMs en entier, avec tous leur disques, et qui sait le faire d’une région à l’autre. Ce service présente par ailleurs l’intérêt de pouvoir être monitoré et contrôlé depuis le portail Azure.