Backing up your VM/fr: Difference between revisions

From Alliance Doc
Jump to navigation Jump to search
(Created page with "Sauvegarder une instance")
 
No edit summary
 
(51 intermediate revisions by 3 users not shown)
Line 1: Line 1:
<languages />
<languages />
''Parent page: [[Cloud]]''
''Page enfant de [[Cloud/fr|Service infonuagique de Calcul Canada]]''


There are a few different strategies to backup your virtual machine and to recover from disasters, which you choose will depend on your requirements and your particular use case. Creating backups in locations outside the cloud is strongly encouraged. A very common backup rule is the 3-2-1 backup rule, which states that you should have three copies of your data stored on at least two different types of media and one of those copies should be offsite. Below are a few common methods to backup or preserve the state of your virtual machine followed by an example strategy of how a few of these methods might be used together to create a complete backup strategy.
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.


==File backup==
==Sauvegarde de fichiers==
Many of the backup strategies for physical machines still apply to virtual machines, for example tools such as [https://rsync.samba.org/ rsync] or [https://nongnu.org/duplicity/ duplicity] can be used to perform backups of the data within your VM to remote locations.
Plusieurs stratégies employées avec les ordinateurs physiques s’appliquent aussi aux instances virtuelles; par exemple, [https://rsync.samba.org/ rsync][https://nongnu.org/duplicity/ duplicity], [https://borgbackup.readthedocs.io borg] et [https://restic.readthedocs.io restic] sont des outils qui peuvent sauvegarder à distance les données de votre instance.


==Setup automation==
==Configuration automatique==
Provisioning tools such as [https://www.ansible.com/ ansible], [https://puppet.com/ puppet], [https://www.chef.io/ chef], and [https://saltstack.com/ saltstack] can be used to automate setup and configuration of software and operating systems. Recreating your virtual machine then becomes a trivial matter given the right specification files for a given provisioning tool. These specification files can be managed with version control tools like [https://git-scm.com/ git]. Provisioning tools can be combined with orchestration tools such as heat and terraform (see [[Automating VM creation]]) to automate the entire process of virtual machine creation and software configuration. Any data which is generated or created outside this automation would then need to be backed up using one of the [[#File backup| file backup]] methods.
Des outils d’approvisionnement comme [https://www.ansible.com/ ansible], [https://puppet.com/ puppet], [https://www.chef.io/ chef] et [https://saltstack.com/ 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 [https://git-scm.com/ 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 [[Backing up your VM/fr#Sauvegarde_de_fichiers|Sauvegarde de fichiers]].


==OpenStack specific==
==Méthodes de sauvegarde OpenStack==
OpenStack has two different storage options: Volumes, which are protected by 3 times replication, and ephemeral storage local to the VM. The 3 times replication of Volumes is to protect against hardware failure and does not protect against accidental deletion or data loss from malicious intent. Data stored on node local ephemeral storage can suffer data lose due to hardware failure and should not be relied upon for any critical data and is best suited to temporary or working data.
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 provides tools to create disk images and snapshots of your virtual machines. The two main VM flavors - persistent (p) and compute (c) - have different behaviors and creating disk images or snapshots should be considered differently for each.
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 des procédures différentes de sauvegarde pour chaque gabarit.


===Persistent VMs===
===Instances persistantes===
Persistent VMs are designed to boot from volumes (see [[OpenStack#Booting_from_a_Volume| 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 [[OpenStack#Downloading_an_Image|downloaded]] and reused to create multiple new VMs, can be [[OpenStack#Creating_a_VirtualBox_VM_from_a_Cloud_Image|accessed by VirtualBox]] on your desktop or laptop, and [[OpenStack#Uploading_an_Image|uploaded]] to other clouds.
Les instances persistantes sont conçues pour être [[Working_with_volumes/fr#Démarrer_depuis_un_volume| démarrées depuis un volume]]. Une copie de sauvegarde est créée lorsqu’une copie du ou des volumes associés à l’instance est créée. Cependant, ceci ne comprend pas le gabarit de l’instance, son IP publique et ses règles de sécurité. La meilleure manière de créer une copie de sauvegarde d’un volume est donc de créer une image de ce volume. Cette image peut alors être [[Working with images/fr#Télécharger_une_image|téléchargée]] et réutilisée pour créer plusieurs nouvelles instances; vous pouvez y [[Working with images/fr#Créer_une_instance_VirtualBox_depuis_une_image_dans_un_nuage|accéder par VirtualBox]] à partir de votre ordinateur personnel; ou la [[Working with images/fr#Téléverser_une_image|téléverser]] vers un autre nuage.


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.
Pour créer une image depuis un volume, ce volume doit être détaché de l’instance. De plus, si le volume est le volume racine (''root'') de l’instance, il ne peut pas être détaché sans que l’instance ne soit supprimée. Vous pouvez supprimer votre instance sans perdre de données pourvu que vous n’ayez pas coché ''Supprimer le volume lors de la suppression de l'instance'' lors de la création de l’instance; sachez qu’OpenStack ne vous signalera pas que cette case a été cochée. Une façon de contourner ceci est de créer un instantané du volume; assurez-vous toutefois que votre quota de stockage le permet puisque les instantanés sont comptabilisés. Comme un volume ne peut pas être supprimé si un instantané de ce volume a été créé, le volume ne sera pas supprimé si vous supprimez l’instance, peu importe si vous avez ou non coché la case en question.


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.
L’état de tous les volumes dont vous voulez créer une image devrait alors être ''Disponible(s)''. Pour créer une image depuis un volume, sélectionnez Charger dans l'image dans le menu déroulant pour le volume. Sélectionnez le format QCOW2 et entrez un nom pour l’image. Il existe plusieurs formats pour les images de disques, mais QCOW2 fonctionne bien avec OpenStack et prend typiquement moins d’espace que les images de format ''Raw''. Les autres formats ''vmdk'' et ''vdi'' sont utiles quand vous travaillez avec d’autres outils de visualisation comme 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.
Une fois que vous avez créé les images de tous les volumes que vous voulez sauvegarder, vous pouvez alors créer à nouveau l’instance à partir du volume racine original de l’instance et s’il y a lieu, y attacher les volumes supplémentaires que vous auriez attachés à l’instance originale.


====What about volume snapshots?====
====Instantané d'un volume====
Another alternative might be to create a snapshot of a volume, which will save the state of a volume at the time the snapshot was created, however volume snapshots depend on the original volume remaining intact and as such are not ideal for backups. It is also not possible to download volume snapshots as they depend on the original volume. However, they do allow you to create a new volume from a snapshot of a volume at a given point in time. For example, if there were file changes since the last volume snapshot you would like to revert. Or if there were file changes specific to that VM which should not be included in other VMs.
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éé et que les modifications n’ont pas besoin d’être sauvegardées, ou que des modifications de l’instance originale ne doivent pas être propagées à d’autres instances.


====What about VM snapshots?====
====Instantané d'une instance====
Unfortunately, OpenStack uses the word "snapshot" to mean two different things. There are volume snapshots, as discussed above, and snapshots of VMs. Snapshots of VMs behave in different ways depending on the flavor of your VM. If you have a persistent VM and create a snapshot of the VM, OpenStack creates a nearly empty image, which contains pointers to volume snapshots. These pointers point to volume snapshot(s) of the persistent VM's boot volume and any attached volumes which were created as part of creating a snapshot of the VM. You can then create a new VM (boot from image (creates a new volume)) which will create new volumes from the snapshots of the volumes taken previously, boot a new VM from the root volume and attach any other duplicated volumes.
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émarre une nouvelle instance à partir du volume racine et attache tout autre volume dupliqué.


===Compute VMs===
===Instances de calcul===
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.
Comme pour la création d’une instance persistante, l’objectif principal est de créer une image du disque racine tout au moins, mais aussi au besoin des volumes qui y sont rattachés. Toutefois, le processus pour créer une image est différent dans le cas des gabarits de type c (''compute''). Contrairement aux instances persistantes, ceux-ci ne sont pas conçus pour démarrer depuis un volume auquel l’accès s’est fait par réseau, mais plutôt depuis des images d’un disque qui résident sur l’ordinateur où l’instance est exécutée. Ceci signifie qu’il n’y a aucun volume dans le tableau de bord OpenStack sur lequel vous pouvez cliquer pour créer l’image de votre disque racine. Pour ce faire, vous devez cliquer sur ''Créer un instantané'' dans l'onglet ''Vue d'ensemble'' de l'instance. Comme cela se produit à la création d’une image avec une instance persistante, ceci crée une image; dans ce cas par contre, l’image n’est pas aussi vide (c’est-à-dire qu’elle ne contient pas que des pointeurs aux instantanés du volume), mais contient une copie du disque racine de l’instance.


Compute VMs also come with an extra data drive mounted at <code>/mnt</code> 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.
Les instances de calcul possèdent un disque de données supplémentaire monté sur <code>/mnt</code> dont les données ne font pas partie de l’image de l’instance. Il faut donc procéder autrement pour sauvegarder ces données, par exemple les copier du disque avant que l’instance ne soit terminée.


==An example backup strategy==
==Exemple d’une stratégie de sauvegarde==
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|setup automation]]). The data sets can then be backed up with using normal [[#File backup|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.
Il peut être difficile de gérer des images de plus de 10-20Go qui exigent beaucoup de temps à télécharger et à créer des instances. Une bonne stratégie est d’isoler les grands jeux de données du système d’exploitation et des logiciels. Une copie de sauvegarde du système d’exploitation et des logiciels peut se faire avec une image du disque ou ils peuvent être recréés avec une application d’approvisionnement (voir [[Backing up your VM/fr#Configuration_automatique|Configuration automatique]]). Les jeux de données peuvent ensuite être copiés vers un endroit distant avec une méthode usuelle de [[Backing up your VM/fr#Sauvegarde_de_fichiers|sauvegarde]]. Si vous utilisez un logiciel de base de données comme MySQL ou PostgreSQL, vous voudrez vider vos bases de données en y incluant la sauvegarde. Enfin et surtout, effectuez des tests pour savoir si vos copies de sauvegarde ont bien restauré ce qui était requis.


==See also==
==Voir aussi==
* [[OpenStack Command Line Clients|OpenStack command line clients]]
* [[OpenStack command line clients/fr|Clients ligne de commande]]
* [[OpenStack#Creating_an_Image_from_a_VM|Creating an image from a VM]]
* [[Working_with_images/fr#Créer_une_image_depuis_une_instance/fr#| Créer une image depuis une instance]]
* [[OpenStack#Downloading_an_Image|Downloading an image]]
* [[Working_with_images/fr#Télécharger_une_image|Télécharger une image]]
* [[OpenStack#Uploading_an_Image|Uploading an image]]
* [[Working_with_images/fr#Téléverser_une_image|Téléverser une image]]
* [[Transferring_data#Synchronizing_files|Synchronizing files]]
* [[Transferring data/fr#Synchroniser_les_données|Synchroniser les données]]
[[Category:CC-Cloud]]
 
[[Category:Cloud]]

Latest revision as of 23:11, 1 March 2023

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, duplicity, borg et restic 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 des procédures différentes de sauvegarde pour chaque gabarit.

Instances persistantes

Les instances persistantes sont conçues pour être démarrées depuis un volume. Une copie de sauvegarde est créée lorsqu’une copie du ou des volumes associés à l’instance est créée. Cependant, ceci ne comprend pas le gabarit de l’instance, son IP publique et ses règles de sécurité. La meilleure manière de créer une copie de sauvegarde d’un volume est donc de créer une image de ce volume. Cette image peut alors être téléchargée et réutilisée pour créer plusieurs nouvelles instances; vous pouvez y accéder par VirtualBox à partir de votre ordinateur personnel; ou la téléverser vers un autre nuage.

Pour créer une image depuis un volume, ce volume doit être détaché de l’instance. De plus, si le volume est le volume racine (root) de l’instance, il ne peut pas être détaché sans que l’instance ne soit supprimée. Vous pouvez supprimer votre instance sans perdre de données pourvu que vous n’ayez pas coché Supprimer le volume lors de la suppression de l'instance lors de la création de l’instance; sachez qu’OpenStack ne vous signalera pas que cette case a été cochée. Une façon de contourner ceci est de créer un instantané du volume; assurez-vous toutefois que votre quota de stockage le permet puisque les instantanés sont comptabilisés. Comme un volume ne peut pas être supprimé si un instantané de ce volume a été créé, le volume ne sera pas supprimé si vous supprimez l’instance, peu importe si vous avez ou non coché la case en question.

L’état de tous les volumes dont vous voulez créer une image devrait alors être Disponible(s). Pour créer une image depuis un volume, sélectionnez Charger dans l'image dans le menu déroulant pour le volume. Sélectionnez le format QCOW2 et entrez un nom pour l’image. Il existe plusieurs formats pour les images de disques, mais QCOW2 fonctionne bien avec OpenStack et prend typiquement moins d’espace que les images de format Raw. Les autres formats vmdk et vdi sont utiles quand vous travaillez avec d’autres outils de visualisation comme VirtualBox.

Une fois que vous avez créé les images de tous les volumes que vous voulez sauvegarder, vous pouvez alors créer à nouveau l’instance à partir du volume racine original de l’instance et s’il y a lieu, y attacher les volumes supplémentaires que vous auriez attachés à l’instance originale.

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éé et que les modifications n’ont pas besoin d’être sauvegardées, 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émarre une nouvelle instance à partir du volume racine et attache tout autre volume dupliqué.

Instances de calcul

Comme pour la création d’une instance persistante, l’objectif principal est de créer une image du disque racine tout au moins, mais aussi au besoin des volumes qui y sont rattachés. Toutefois, le processus pour créer une image est différent dans le cas des gabarits de type c (compute). Contrairement aux instances persistantes, ceux-ci ne sont pas conçus pour démarrer depuis un volume auquel l’accès s’est fait par réseau, mais plutôt depuis des images d’un disque qui résident sur l’ordinateur où l’instance est exécutée. Ceci signifie qu’il n’y a aucun volume dans le tableau de bord OpenStack sur lequel vous pouvez cliquer pour créer l’image de votre disque racine. Pour ce faire, vous devez cliquer sur Créer un instantané dans l'onglet Vue d'ensemble de l'instance. Comme cela se produit à la création d’une image avec une instance persistante, ceci crée une image; dans ce cas par contre, l’image n’est pas aussi vide (c’est-à-dire qu’elle ne contient pas que des pointeurs aux instantanés du volume), mais contient une copie du disque racine de l’instance.

Les instances de calcul possèdent un disque de données supplémentaire monté sur /mnt dont les données ne font pas partie de l’image de l’instance. Il faut donc procéder autrement pour sauvegarder ces données, par exemple les copier du disque avant que l’instance ne soit terminée.

Exemple d’une stratégie de sauvegarde

Il peut être difficile de gérer des images de plus de 10-20Go qui exigent beaucoup de temps à télécharger et à créer des instances. Une bonne stratégie est d’isoler les grands jeux de données du système d’exploitation et des logiciels. Une copie de sauvegarde du système d’exploitation et des logiciels peut se faire avec une image du disque ou ils peuvent être recréés avec une application d’approvisionnement (voir Configuration automatique). Les jeux de données peuvent ensuite être copiés vers un endroit distant avec une méthode usuelle de sauvegarde. Si vous utilisez un logiciel de base de données comme MySQL ou PostgreSQL, vous voudrez vider vos bases de données en y incluant la sauvegarde. Enfin et surtout, effectuez des tests pour savoir si vos copies de sauvegarde ont bien restauré ce qui était requis.

Voir aussi