Sauvegarder une instance

From Alliance Doc
Revision as of 19:59, 31 July 2018 by Diane27 (talk | contribs)
Jump to navigation Jump to search
Other languages:

Page enfant de Service infonuagique de Calcul Canada

Il existe plusieurs stratégies pour faire une copie de sauvegarde d'une instance et pour rétablir la situation en cas de problème; le choix de la stratégie à adopter dépend de vos exigences et de votre cas particulier. Il est fortement recommandé de créer des copies de sauvegarde à l’extérieur du nuage. Une des règles fréquemment appliquées en matière de sauvegarde est celle du 3-2-1 qui veut que trois copies de vos données soient enregistrées sur au moins deux types de médias et qu’une de ces copies se trouve hors du site. Nous discutons ici de quelques méthodes usuelles pour sauvegarder votre instance et en préserver l’état et nous présentons l’exemple d’une combinaison de certaines ces méthodes qui représente une stratégie de sauvegarde complète.

Sauvegarde de fichiers

Plusieurs stratégies employées avec les ordinateurs physiques s’appliquent aussi aux instances virtuelles; par exemple, rsync et duplicity sont des outils qui peuvent sauvegarder à distance les données de votre instance.

Configuration automatique

Des outils d’approvisionnement comme ansible, puppet, chef et saltstack peuvent être utilisés pour automatiser la configuration des logiciels et du système d’exploitation. Avec les fichiers de spécification appropriés pour chacun de ces outils, il est très facile de recréer une instance. Les fichiers de spécification peuvent être gérés par une application de gestion de versions comme git. Les outils d’approvisionnement et d’orchestration (par exemple heat et terraform) peuvent être utilisés ensemble pour automatiser le processus complet de la création d’une instance et de la configuration des logiciels; voyez Automating VM creation; les données qui ne seraient pas alors générées ou créées devront être sauvegardées en utilisant une méthode mentionnée à la section Sauvegarde de fichiers.

Méthodes de sauvegarde OpenStack

OpenStack offre deux options pour le stockage :

  • stockage dans un volume, avec triple réplication; cette option protège les données en cas de problème de matériel, mais non en cas de suppression involontaire ou malicieuse;
  • stockage éphémère sur un nœud local; cette option protège aussi en cas de problème de matériel, mais ne devrait pas être utilisée avec des données critiques; on l’utilise surtout de façon temporaire.

OpenStack offre aussi des outils pour créer des images de disques et des instantanés d’instances. Les gabarits d’instance principaux p (‘’persistent’’) et c (‘’compute’’) ont des comportements différents; nous recommandons donc des procédures différentes de sauvegarde pour chaque gabarit.

Persistent VMs

Persistent VMs are designed to boot from volumes (see booting from a volume) thus creating a copy of the volume(s) the VM has attached to it will produce a backup. However this would not preserve things like VM flavor, public IP, and security rules. The best way to create a copy of a volume for backup purposes is to create an image from that volume. An image can be downloaded and reused to create multiple new VMs, can be accessed by VirtualBox on your desktop or laptop, and uploaded to other clouds.

To be able to create an image from a volume, that volume must be detached from the VM. In addition, if the volume is the root volume of the VM it cannot be detached unless the VM is deleted. If you are sure that when you created the VM you did not check the box "Delete Volume on Instance Delete", then you can delete your VM knowing you will not lose any data. However, if you are unsure whether or not you checked this box, OpenStack unfortunately doesn't tell you if this box was checked when you created a VM. One trick which may be useful for getting around this deficiency is to create a snapshot of the volume provided you have a storage quota which allows it, since snapshots count towards your storage quota. As volumes cannot be deleted if there is a volume snapshot created from them, when you delete the VM the volume will not be deleted even if you checked the box.

At this point all the volumes you wish to create images of should be in the "Available" state. To create an image from a volume, select 'Upload to Image' from the drop down menu for the volume. Select the 'QCOW2' disk format and give your image a name. There are several formats for disk images but QCOW2 works well with OpenStack and typically does not take up as much space as "Raw" images. Other formats "vmdk" and "vdi" can be useful when working with other virtualization tools such as VirtualBox.

Once you have created images of all the volumes you wish to backup you can then re-create your VM booting from the original VM's root volume and attaching any additional volumes you may have had attached to the original VM.

Instantané d'un volume

Vous pouvez aussi créer un instantané du volume pour conserver son état actuel; ceci n’est toutefois pas une solution de sauvegarde idéale puisque le volume original de devrait pas être modifié. De plus, il n’est pas possible de télécharger un instantané puisqu’il dépend du volume original. Il est cependant possible de créer un nouveau volume à partir d’un de ses instantanés si par exemple certains fichiers ont été modifiés depuis que l’instantané a été créé ou que des modifications de l’instance originale ne doivent pas être propagées à d’autres instances.

Instantané d'une instance

Le comportement d’un instantané d’instance dépend du gabarit de cette dernière. Dans le cas d’une instance persistante, OpenStack crée une image quasi vide qui contient des pointeurs aux instantanés du volume. Ces pointeurs sont dirigés vers les instantanés du volume de démarrage de l’instance persistante et des autres volumes qui ont été créés à la création de l’instantané de l’instance. Vous pouvez alors créer une nouvelle instance (Démarrer depuis une image (crée un volume)), ce qui crée de nouveaux volumes à partir des instantanés créés au préalable, démarrer une nouvelle instance à partir du volume racine et attacher tut autre volume dupliqué.

Compute VMs

As with creating backups of persistent VMs, the main goal is to create an image of at least the root drive, and perhaps also other attached volumes if needed. However, differences with compute flavor VMs change the process of creating that image. Compute VMs are not designed to boot from volumes accessed over the network as persistent VMs are, instead they are meant to be booted from disk images which reside locally on the computer which is actually running your VM. This means there is no volume which you can click on in the OpenStack dashboard to create an image of your root disk. Instead you can do this by clicking "Create Snapshot" on your VM's drop-down menu on the "Instances" tab. As with creating a snapshot with a persistent VM this creates an image; however, in this case the image isn't nearly as empty (i.e. containing only pointers to volume snapshots) since the image instead contains a copy of the VM's root drive.

Compute VMs also come with an extra data drive mounted at /mnt and the data on this drive is not captured in the image created of a compute VM. Other arrangements must be made to save this data, such as copying it off the disk before the VM is terminated.

An example backup strategy

Very large disk images (larger than 10-20 GB) can become difficult to manage with relatively long upload times and long VM creation times. A good basic strategy might be to separate large data sets from your operating system and software stack. The operating system and software stack can be backed up either using a disk image or recreated using some provisioning software (see setup automation). The data sets can then be backed up with using normal file backup methods to a remote location. If you are using any database software such as MySQL or PostgreSQL you will want to create dumps of the databases to include in your backups. Finally, and most importantly, test restoring from your backup. If you can't restore from your backup it isn't very useful.

Voir aussi