Comment sauvegarder une base de données MySQL sur des espaces DigitalOcean à l’aide d’instantanés LVM

introduction

Les sauvegardes régulières de la base de données sont une étape cruciale de la protection contre les événements non intentionnels de perte de données. Concevoir une stratégie de sauvegarde et de restauration efficace implique souvent un compromis entre impact sur les performances, coûts de mise en œuvre et de stockage des données, avec vitesse de restauration, intégrité des données et couverture de sauvegarde. La solution optimale dépendra de votre point de récupération et du tempsobjectives et de l'échelle et de l'architecture de la base de données.

Dans ce guide, nous montrerons comment effectuer une sauvegarde physique en direct (ou "à chaud") d'une base de données MySQL en cours d'exécution à l'aide d'instantanés LVM. Nous allons ensuite compresser et stocker les données dans un espace DigitalOcean.

La procédure présentée dans ce didacticiel est bien adaptée aux bases de données MySQL volumineuses, aux bases de données utilisant un mélange de moteurs de stockage (tels que InnoDB, TokuDB et MyISAM) et aux serveurs de base de données avec plusieurs volumes de stockage en mode bloc attachés, gérés à l'aide de LVM.

Nous allons commencer par nous assurer que notre serveur Ubuntu 16.04 peut prendre et monter un instantané LVM. Ensuite, nous allons prendre un instantané LVM du volume logique contenant le répertoire de données de MySQL. Nous monterons ensuite ce volume de capture instantanée (volume logique gelé), puis compresserons et enverrons le répertoire de données MySQL à DigitalOcean Spaces pour le stockage. Pour conclure, nous allons brièvement parcourir un exemple de scénario de récupération.

Conditions préalables

Pour utiliser ce guide, les conditions préalables suivantes doivent être remplies:

Une fois que tout est configuré, vous êtes prêt à commencer avec ce guide.

[[step-1 -—- investiguer-mysql-and-lvm-configuration]] == Étape 1 - Etudier la configuration de MySQL et LVM

Pour commencer, nous allons localiser notre répertoire de données MySQL et noter ces détails concernant notre configuration LVM.

Localiser MySQLdatadir

Pour trouver le chemin d'accès à votre répertoire de données MySQL, exécutez la commande suivante:

mysqladmin -u root -p variables | grep datadir

Entrez votre mot de passe MySQLrootlorsque vous y êtes invité. Vous devriez voir une sortie similaire à celle-ci:

Output| datadir                                                  | /data/mysql/

Pour l'installation MySQL utilisée dans ce guide, le répertoire de données est/data/mysql.

Nous devons maintenant confirmer que/data/mysql vit sur un volume logique LVM. Pour confirmer cela, nous allons exécuterlsblk:

lsblk

Vous devriez voir une sortie similaire à celle-ci:

OutputNAME             MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda                8:0    0   600G  0 disk
└─vg1-mysql_data 252:0    0   475G  0 lvm  /data
vda              253:0    0   160G  0 disk
├─vda1           253:1    0 159.9G  0 part /
├─vda14          253:14   0     4M  0 part
└─vda15          253:15   0   106M  0 part /boot/efi

A partir de là, nous observons que/data est en fait le point de montage d'un volume logique LVM appelémysql_data. Il fait partie du groupe de volumesvg1.

Nous devons maintenant nous assurer que nous avons suffisamment d'espace libre disponible dans notre groupe de volumesvg1 pour prendre un instantané LVM.

Explorez la configuration LVM

Il est important de noter que la sortie des commandes décrites dans cette section varie en fonction du matériel de votre serveur et de la configuration LVM. Examinons rapidement la configuration matérielle et LVM du serveur Ubuntu 16.04 utilisée dans ce guide.

Pour commencer, découvrons le nombre de volumes physiques dont nous disposons avecpvscan:

sudo pvscan

Vous devriez voir une sortie similaire à celle-ci:

Output  PV /dev/sda   VG vg1             lvm2 [500.00 GiB / 25.00 GiB free]
  Total: 1 [500.00 GiB] / in use: 1 [500.00 GiB] / in no VG: 0 [0   ]

Nous observons que nous avons un volume physique de 500 Go (/dev/sda) qui se trouve dans un groupe de volumes (vg1). 475 Go de ce volume physique ont été alloués aux volumes logiques, tandis que 25 Go restent libres pour être utilisés par le groupe de volumes.

Nous pouvons le confirmer en examinant plus en détail le groupe de volumesvg1 à l'aide de la commandevgdisplay:

sudo vgdisplay

Vous devriez voir une sortie semblable à celle-ci:

Output--- Volume group ---
  VG Name               vg1
  System ID
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  2
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                1
  Open LV               1
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               500.00 GiB
  PE Size               4.00 MiB
  Total PE              127999
  Alloc PE / Size       121600 / 475.00 GiB
  Free  PE / Size       6399 / 25.00 GiB
  VG UUID               KEsoDE-zON7-NdyO-ioxb-6FSl-CB4m-S3QCRj

À partir des lignesAlloc PE / Size etFree PE / Size, nous observons que nous avons 475 Go alloués et 25 Go libres dans le groupe de volumesvg1. La ligneCur PV nous montre que nous avons 1 volume physique dans ce groupe de volumes. La ligneCur LV indique que nous avons utilisé le pool d’espace de ce groupe de volumes pour créer 1 volume logique.

Examinons maintenant ce volume logique en utilisantlvdisplay:

sudo lvdisplay

Vous devriez voir une sortie similaire à celle-ci:

Output  --- Logical volume ---
  LV Path                /dev/vg1/mysql_data
  LV Name                mysql_data
  VG Name                vg1
  LV UUID                T98x9c-zvC1-f0Rw-4ipn-Cxo2-duwk-KUwQQc
  LV Write Access        read/write
  LV Creation host, time LVM, 2018-04-18 20:11:48 +0000
  LV Status              available
  # open                 1
  LV Size                475.00 GiB
  Current LE             121600
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           252:0

À partir deLV Size, nous voyons que nous avons un volume logique de 475 Go,mysql_data, trouvé à/dev/vg1/mysql_data (rappelez-vous quevg1 était le nom du groupe de volumes demysql_data).

Pour résumer, sur le serveur Ubuntu 16.04 utilisé pour ce didacticiel, nous avons un volume physique de 500 Go (/dev/sda) utilisé pour sauvegarder un groupe de volumes (vg1), à partir duquel nous avons créé un seul volume logique de 475 Go. volume (mysql_data). Cela laisse 25 Go d'espace libre dans le groupe de volumes, qui peuvent être utilisés pour créer d'autres volumes logiques (et instantanés).

Votre configuration matérielle et LVM sera probablement différente. vous pouvez avoir plusieurs périphériques de stockage en bloc connectés, regroupés en un ou plusieurs groupes de volumes. La procédure pour prendre un instantané d'un volume logique donné sera néanmoins la même.

En utilisant la série de commandes présentée dans cette section, vous devriez maintenant avoir une idée générale de votre configuration LVM et de votre matériel.

Dans l'étape suivante, nous préparerons votre serveur de base de données pour la capture instantanée LVM.

[[step-2 -—- prepare-your-server-for-lvm-snapshots]] == Étape 2 - Préparez votre serveur pour les snapshots LVM

Pour que nous puissions prendre un instantané LVM en toute sécurité, nous devons prévoir un espace disque suffisant pour couvrir les écritures et les modifications susceptibles de se produire lors de la sauvegarde et du transfert de fichiers vers Spaces. En fonction de la taille de votre base de données, cette sauvegarde peut prendre plusieurs heures. Il est donc préférable de faire preuve de prudence. Si votre volume d'instantané manque d'espace lors de la sauvegarde, celui-ci deviendra invalide et vous ne disposerez plus d'une sauvegarde cohérente.

À l'étape précédente, nous avons observé que le groupe de volumes (vg1) contenant notre volume logique principal (mysql_data) ne disposait que de 25 Go d'espace libre. Même s’il est possible que 25 Go de modifications ne soient pas écrites sur le disque avant la sauvegarde de notre base de données, nous préférerions idéalement une marge de sécurité d’au moins 100 Go. Dans un contexte de production, il serait préférable de mesurer la quantité moyenne de données en cours d'écriture sur le disque pendant la fenêtre de sauvegarde planifiée et de redimensionner la taille du volume de l'instantané en conséquence.

Pour ajouter 75 Go d'espace supplémentaire au groupe de volumesvg1, nous pouvons soit attacher un périphérique de stockage par blocs, soit augmenter la taille du volume actuellement attaché au Droplet. Dans ce didacticiel, nous allons développer le volume de stockage en bloc déjà associé. pour en savoir plus sur l'attachement d'un volume de stockage en bloc supplémentaire, vous pouvez consulterAn Introduction to DigitalOcean Block Storage.

[.note] #Note: Certaines régions ne prennent pas encore en charge le stockage en bloc et vous ne pourrez peut-être pas attacher un volume de stockage en bloc à votre Droplet. Une solution de contournement raisonnable dans ce cas serait de créer un instantané de votre Droplet et de créer un nouveau Droplet à l'aide de cette image Snapshot, à laquelle vous pouvez ensuite ajouter Block Storage.
#

Développons le volume de stockage en bloc attaché à cette Droplet.

Accédez au panneau de configuration Web de DigitalOcean et à partir du tableau de bord, accédez à votre Droplet.

Dans la barre latérale, cliquez surVolumes:

Sidebar

Dans ce volet, vous devriez voir tous les volumes de stockage de bloc attachés à votre Droplet. Pour le droplet Ubuntu utilisé dans ce guide, nous avons un volume de stockage de bloc attaché:

Block Storage Volume

Cliquez surMore puis surResize volume.

À partir de là, vous pouvez sélectionner l'une des tailles de volume prédéfinies ou choisir votre propre taille de volume. Augmentons le volume de 500 Go de 100 Go à 600 Go:

Resize Volume

Appuyez surContinue. Le volume de stockage de votre bloc attaché a maintenant été augmenté de 100 Go.

Pour propager ce changement de périphérique vers LVM, nous devons exécuterpvresize.

Connectez-vous à votre serveur et exécutez à nouveaupvscan pour rechercher les volumes physiques:

sudo pvscan

Vous devriez voir la même sortie que précédemment pour notre volume physique/dev/sda:

Output PV /dev/sda   VG vg1             lvm2 [500.00 GiB / 25.00 GiB free]
  Total: 1 [500.00 GiB] / in use: 1 [500.00 GiB] / in no VG: 0 [0   ]

Maintenant, exécutezpvresize sur le volume pour remplir l'espace supplémentaire que nous venons d'ajouter:

sudo pvresize /dev/sda

Vous devriez voir la sortie suivante:

OutputPhysical volume "/dev/sda" changed
1 physical volume(s) resized / 0 physical volume(s) not resized

Confirmons que notre volume physique est désormais 100 Go plus grand en exécutant un autrepvscan:

sudo pvscan

On observe que le volume physique de/dev/sda est désormais de 600 Go:

Output PV /dev/sda   VG vg1             lvm2 [600.00 GiB / 125.00 GiB free]
 Total: 1 [600.00 GiB] / in use: 1 [600.00 GiB] / in no VG: 0 [0   ]

Voyons maintenant que l’espace libre de notre groupe de volumes a également augmenté de 100 Go:

sudo vgdisplay

Vous devriez alors voir le résultat suivant:

Output  --- Volume group ---
  VG Name               vg1
  System ID
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  3
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                1
  Open LV               1
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               600.00 GiB
  PE Size               4.00 MiB
  Total PE              153599
  Alloc PE / Size       121600 / 475.00 GiB
  Free  PE / Size       31999 / 125.00 GiB
  VG UUID               KEsoDE-zON7-NdyO-ioxb-6FSl-CB4m-S3QCRj

Cela indique que nous disposons maintenant de 125 Go d’espace libre pour créer notre volume d’instantané.

Pour les besoins de ce didacticiel, 125 Go sera suffisant pour absorber les écritures et les modifications au cours de la procédure de sauvegarde et de téléchargement, mais dans un paramètre de production, la taille du volume de l'instantané doit être mise à l'échelle proportionnellement à l'utilisation anticipée du disque au cours de la fenêtre de sauvegarde.

Maintenant que notre groupe de volumes dispose de suffisamment d'espace pour couvrir les écritures ou les modifications susceptibles de se produire pendant la capture instantanée et la sauvegarde, nous pouvons passer à la création du volume de la capture instantanée.

[[step-3 -—- create-and-mount-lvm-snapshot]] == Étape 3 - Créer et monter un instantané LVM

[.warning] #Warning: Pendant que l'instantané LVM est actif, il y aura une certaine dégradation des performances lors de l'écriture sur le disque. Vous devez d'abord tester cette procédure en utilisant une base de données hors production avec une charge simulée pour vérifier que cette méthode fonctionnera dans votre déploiement de production.
#

Nous allons maintenant créer un instantané du volume logiquemysql_data en utilisantlvcreate. Avant de faire cela, nous devons geler les écritures dans la base de données en utilisantFLUSH TABLES WITH READ LOCK afin de garantir la cohérence des données. Les tables doivent être verrouillées en lecture uniquement jusqu'à ce que nous exécutionslvcreate, moment auquel elles peuvent être déverrouillées. Si vous créez un script pour cette série de commandes, le temps de verrouillage total devrait être très faible, en fonction des requêtes d'écriture en cours d'exécution.

Lire verrouiller la base de données MySQL

Commençons par vider les tables. Depuis le terminal de votre serveur de base de données, utilisezmysql pour vous connecter à votre base de données MySQL:

mysql -u root -p

Depuis le shell MySQL, exécutez la commandeFLUSH TABLES pour verrouiller en lecture votre base de données.

[.warning] #Warning: Après avoir exécuté la commande suivante, toutes les tables ouvertes seront fermées et toutes les tables de toutes les bases de données seront verrouillées avec un verrou de lecture global. Si vous l'exécutez sur une base de données de production, il est recommandé d'exécuter cette commande sur une réplique ou dans le cadre d'un script pour minimiser la durée pendant laquelle la base de données sera verrouillée.
#

FLUSH TABLES WITH READ LOCK;

Vous devriez voir la sortie suivante:

OutputQuery OK, 0 rows affected (0.00 sec)

Ce qui indique que votre base de données a été verrouillée en lecture. Ne quittez pas l'invite MySQL, nous devrons la garder ouverte.

Nous allons maintenant créer et monter un instantané LVM du volume logique utilisé pour héberger nos données MySQL.

Créer et monter un volume d'instantané

En gardant cette connexion client MySQL ouverte, connectez-vous à votre serveur de base de données à partir d'une nouvelle fenêtre de terminal.

[.warning] #Warning: Si vous fermez cette connexion, le verrou sera annulé et les écritures reprendront, rendant l'instantané incohérent.
#

Nous pouvons maintenant prendre un instantané du volume logiquemysql_data. Nous allouons 100 Go d’espace tampon pour absorber les écritures et autres modifications lors de la sauvegarde physique. Pour créer l'instantané LVM, exécutez la commandelvcreate suivante:

sudo lvcreate -L 100G -s -n mysql_data_snap /dev/vg1/mysql_data

L'indicateur-L spécifie la taille du volume logique, dans ce cas 100 Go. -s indique que le volume logique sera un instantané, dans ce cas du volume logique/dev/vg1/mysql_data. Nous avons choisi de nommer ce volume d’instantanésmysql_data_snap.

Vous devriez voir le résultat suivant:

OutputLogical volume "mysql_data_snap" created.

Cela indique que nous avons maintenant une copie du volume logiquemysql_data à partir duquel nous pouvons effectuer une sauvegarde.

Maintenant que nous avons essentiellement «gelé» nos fichiers de données MySQL à un moment donné, nous pouvons déverrouiller nos tables de base de données et reprendre les écritures. Depuis votre connexion MySQL ouverte, exécutez la commande suivante:

UNLOCK TABLES;

Vous devriez voir le résultat suivant:

OutputQuery OK, 0 rows affected (0.00 sec)

Les tables ont été déverrouillées et vous pouvez maintenant fermer cette connexion en toute sécurité.

À ce stade, votre base de données est toujours active et accepte les connexions et écritures entrantes, mais nous avons un instantané cohérent des données au moment où nous avons exécutéFLUSH TABLES WITH READ LOCK (ou pour être tout à fait exact, le moment où la dernière requête d'écriture une fois lesFLUSHterminés).

La dernière étape consiste à monter cet instantané de manière à pouvoir accéder à ces fichiers de données gelés.

Tout d'abord, nous allons créer un point de montage appelé/backup_src:

sudo mkdir /backup_src

Maintenant, nous allons monter le volume de l'instantané sur/backup_src:

sudo mount /dev/vg1/mysql_data_snap /backup_src

Nous pouvons maintenant accéder aux fichiers de données gelés. Nous allons jeter un coup d'oeil:

cd /backup_src
ls

Vous devriez voir votre répertoire de données MySQL:

Outputlost+found  mysql

Maintenant que nous avons accès à un instantané cohérent de nos données, nous pouvons le sauvegarder dans un espace DigitalOcean.

[[step-4 -—- compress-and-upload-files-to-digitalocean-spaces]] == Étape 4 - Compression et téléchargement de fichiers vers DigitalOcean Spaces

Pour télécharger cette sauvegarde sur notre espace DigitalOcean, nous utiliserons l'outils3cmd que nous avons installé et configuré dans leprerequisite steps.

Nous allons d'abord tester notre configuration des3cmd et tenter d'accéder à notre espace de sauvegarde (dans ce tutoriel, notre espace est nommémysql-backup-demo):

s3cmd info s3://mysql-backup-demo/

Vous devriez voir la sortie suivante:

Outputs3://mysql-backup-demo/ (bucket):
   Location:  nyc3
   Payer:     BucketOwner
   Expiration Rule: none
   Policy:    none
   CORS:      none
   ACL:       3587522: FULL_CONTROL

Cette sortie indique que la connexion a réussi et ques3cmd peut transférer des objets vers l'espace.

Nous allons maintenant compresser et télécharger notre répertoire de données MySQL dans l'espacemysql-backup-demo:

sudo tar -czvf - /backup_src/mysql | s3cmd put - s3://mysql-backup-demo/mysql_backup_180423.tar.gz

Ici, nous utilisonstar pour compresser et archiver le répertoire de données MySQL, et diriger la sortie verss3cmd, que nous utilisons pour transférer l'archive compressée vers Spaces. Nous avons nommé l'archive compresséemysql_backup_180423.tar.gz.

Puisque nous avons utilisétar en mode détaillé, vous verrez la liste des fichiers en cours de compression (pour masquer cette sortie, omettez l'indicateur-v dans la commande ci-dessus).

La sortie se terminera par les informations de transfert de fichier suivantes:

Output...
upload: '' -> 's3://mysql-backup-demo/mysql_backup_180423.tar.gz'  [part 1, 1417kB]
 1451996 of 1451996   100% in    0s  1993.41 kB/s  done

Une fois le transfert terminé, nous vérifierons que le fichier a bien été transféré dans notre espace en répertoriant son contenu:

s3cmd ls s3://mysql-backup-demo/

Vous devriez voir le fichier d’archive de sauvegarde:

Output2018-04-23 20:39       297   s3://mysql-backup-demo/mysql_backup_180423.tar.gz

À ce stade, nous avons effectué avec succès une sauvegarde physique MySQL vers DigitalOcean Spaces.

Nous allons maintenant démonter et supprimer le volume de l'instantané, en restaurant l'espace utilisé dans notre groupe de volumesvg1.

[[step-5 -—- unmount-and-drop-snapshot-volume]] == Étape 5 - Démonter et supprimer le volume de snapshot

Maintenant que nos données ont été sauvegardées, nous n'avons plus aucune utilisation du volume d'instantané créé précédemment dans ce didacticiel et nous pouvons le supprimer en toute sécurité.

Pour démonter le volume, exécutez la commande suivante:

sudo umount /backup_src

Remplacez/backup_src par le point de montage de votre volume d’instantané.

Nous pouvons maintenant supprimer le volume d'instantané. Pour ce faire, exécutez la commande suivante:

sudo lvremove vg1/mysql_data_snap

Ici,vg1 correspond au nom de votre groupe de volumes etmysql_data_snap au nom de votre volume d'instantané.

Vous serez invité à confirmer la suppression, à laquelle vous devrez répondreY.

Vous devriez voir la sortie suivante:

Output Logical volume "mysql_data_snap" successfully removed

Le volume de capture instantanée a été supprimé avec succès. Vous avez maintenant terminé une sauvegarde physique MySQL complète et l'avez téléchargée sur votre espace DigitalOcean.

Nous terminerons ce didacticiel en analysant rapidement un scénario de récupération.

[[step-6 -—- test-restore-from-physical-backup]] == Étape 6 - Tester la restauration à partir d'une sauvegarde physique

Pour restaurer notre base de données MySQL à partir de la sauvegarde physique précédemment chargée dans Spaces, nous allons transférer la sauvegarde sur notre serveur de base de données, puis utiliser les fichiers extraits en tant que répertoire de données MySQL restauré.

Commençons par transférer la sauvegarde de notre espace vers le répertoire de base de l’utilisateur sur le serveur de base de données:

s3cmd get s3://mysql-backup-demo/mysql_backup_180423.tar.gz ~/mysql_backup_180423.tar.gz

Vous devriez voir une sortie de transfert de fichier:

Outputdownload: 's3://mysql-backup-demo/mysql_backup_180423.tar.gz' -> '~/mysql_backup_180423.tar.gz'  [1 of 1]
 1451889 of 1451889   100% in    0s    38.49 MB/s  done

Nous allons maintenant arrêter le serveur de base de données en cours d'exécution et purger le répertoire de données existant, car nous souhaitons tester une restauration complète à partir des fichiers de sauvegarde physiques.

Tout d’abord, arrêtez le serveur MySQL:

sudo service mysql stop

Supprimez maintenant le contenu de votre répertoire de données MySQL:

sudo rm -rf /data/*

Rappelez-vous que dans ce tutoriel, le chemin du répertoire de données MySQL non par défaut est/data.

Maintenant, extrayez l’archive de sauvegarde physique dans votre répertoire de données MySQL:

sudo tar -xzvf ~/mysql_backup_180423.tar.gz -C /data

Maintenant que les fichiers de données ont été restaurés, nous pouvons redémarrer la base de données MySQL et lui permettre de récupérer:

sudo service mysql start

Enfin, nous pouvons nous connecter à notre serveur de base de données pour vérifier que la restauration a abouti:

mysql -u root -p

Après avoir entré votre mot de passe, vous devriez voir l'invite du client MySQL:

OutputWelcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.7.21-0ubuntu0.16.04.1 (Ubuntu)

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

À partir de là, vous pouvez analyser certaines tables pour vérifier que vos données sont intactes.

Conclusion

Dans ce didacticiel, nous avons montré comment exploiter la fonctionnalité d’instantané de LVM pour geler le système de fichiers et effectuer une sauvegarde physique complète et une restauration d’une instance MySQL en cours d’exécution. Si vous utilisez LVM pour gérer un ou plusieurs volumes de stockage contenant vos données MySQL, cette fonctionnalité constitue une méthode pratique pour sauvegarder votre base de données de production.

Dans un contexte de production, cette procédure doit idéalement être scriptée et planifiée avec une journalisation, une surveillance et une alerte appropriées. En outre, unFLUSH TABLES WITH READ LOCK (aussi bref soit-il) ne doit pas être exécuté sur le serveur maître mais sur une réplique à charge minimale. Notez qu'avec de légères modifications, vous pouvez également adapter la procédure ci-dessus pour créer rapidement des répliques à partir d'une sauvegarde physique principale.

Si votre instance MySQL utilise exclusivement InnoDB comme moteur de stockage, vous pouvez également utiliser Percona XtraBackup pour effectuer des sauvegardes physiques de votre base de données de la même manière. Pour en savoir plus, consultez notre tutoriel sur lesHow To Back Up MySQL Databases to Object Storage with Percona on Ubuntu 16.04.

Une alternative raisonnable au téléchargement de fichiers de sauvegarde physiques vers Spaces serait d'utiliser des instantanés LVM en combinaison avec des instantanés Droplet. Pour en savoir plus sur les instantanés de gouttelettes, consultezDigitalOcean Backups and Snapshots Explained.

Pour en savoir plus sur DigitalOcean Spaces, le magasin d'objets utilisé dans ce guide, consultezAn Introduction To DigitalOcean Spaces.