Comment gérer les sauvegardes sur le cloud avec la duplication

introduction

Duplicacy est un outil de sauvegarde multiplateforme qui offre un certain nombre de fonctionnalités - y compris les sauvegardes incrémentielles, la sauvegarde simultanée et le chiffrement côté client - qui visent à rationaliser le processus de sauvegarde des données sur le cloud. La version Linux de la CLI (interface de ligne de commande) est gratuite pour un usage personnel mais nécessite une licence payante pour les utilisateurs commerciaux. De plus, la duplication est disponible pour MacOS et Windows avec une interface graphique et cette version nécessite que les utilisateurs personnels et commerciaux paient pour une licence.

Construit sur l'idée delock-free deduplication, Duplicacy a été conçu pour gérer en toute sécurité les sauvegardes vers une large gamme de services de stockage cloud. Lorsqu'un client de duplication crée et stocke un nouveau bloc, les autres clients utilisant le même compartiment de stockage peuvent voir que le bloc existe déjà et ne le téléchargeront donc plus. Cela permet à des clients séparés de partager et de sauvegarder des données identiques sans aucun effort supplémentaire de suivi des sauvegardes.

Ce didacticiel fournit une vue d'ensemble de haut niveau sur l'installation de la version CLI de Duplicacy et son utilisation pour gérer un processus de sauvegarde de données typique avec un espace DigitalOcean. Nous montrerons également comment sauvegarder un référentiel partagé de plusieurs Droplets dans le même espace, ainsi que comment sauvegarder des instantanés sur plusieurs espaces pour une sécurité accrue des données.

Conditions préalables

Pour suivre ce tutoriel, vous aurez besoin de:

  • Two Ubuntu 16.04 Droplets configuré à l'aide de nosinitial server setup guide. Vous pouvez nommer vos serveurs comme vous le souhaitez, mais pour que les choses soient claires, ils seront appelésserver-01 etserver-02 tout au long de ce didacticiel.

  • Two DigitalOcean Spaces. Consultez nosIntroduction to DigitalOcean Spaces pour obtenir des instructions sur la façon de les faire fonctionner.

  • An Access key and a Secret key for your Spaces. Pour les générer, visitez lesAPI page dans le panneau de configuration DigitalOcean.

Avec ces conditions préalables en place, vous êtes prêt à installer la duplication.

Installation de la duplication

La dernière version CLI de Duplicacy peut être téléchargée (sans licence requise pour les utilisateurs personnels) à partir duDuplicacy GitHub repository en utilisantwget.

Exécutez les commandes suivantes surboth server-01 and server-02 pour télécharger Duplicacy sur chacun d'eux (en remplaçant le lien de téléchargement par celui de la dernière version):

sudo wget -O /opt/duplicacy https://github.com/gilbertchen/duplicacy/releases/download/v2.0.10/duplicacy_linux_x64_2.0.10

Ensuite, créez un lien symbolique entre l'emplacement de téléchargement et un nouveau répertoire dans/usr/local/bin:

sudo ln -s /opt/duplicacy /usr/local/bin/duplicacy

Enfin, rendezduplicacy exécutable:

sudo chmod 0755 /opt/duplicacy

La duplication devrait maintenant être installée sur chacune de vos gouttelettes et vous êtes maintenant prêt à la configurer pour utiliser votre espace.

Initialisation de votre référentiel et configuration de la duplication

La duplication sauvegarde les données à partir du niveau du répertoire. Par conséquent, avant de pouvoir commencer à télécharger des fichiers sur votre espace, elles doivent être associées à un répertoire ou à un référentiel spécifique sur vos deux Droplets. Pour ce faire, vous devrez créer un référentiel de projet et l’initialiser à l’aide de la commandeinit de Duplicacy.

La commandeinit accepte la syntaxe suivante:

duplicacy init repository_id s3://region@endpoint/space_name
  • repository_id: il s'agit de l'étiquette utilisée par Duplicacy pour distinguer les différents référentiels. Si vous envisagez de sauvegarder le même référentiel à partir de plusieurs sources (comme nous le ferons à la prochaine étape de ce didacticiel), l'ID du référentiel doit être identique sur les deux gouttelettes.

  • region: leregion est le nom de la région dans laquelle se trouve votre Droplet.

  • endpoint: un point de terminaison est un emplacement statique utilisé par les API Web côté serveur pour spécifier où se trouvent certaines ressources. Pour les espaces DigitalOcean, le point final sera la région suivie de.digitaloceanspaces.com, comme dansnyc3.digitaloceanspaces.com. Le nom du point de terminaison de votre espace peut également être copié directement à partir du panneau de configuration des espaces sous l’onglet «Paramètres».

  • space_name: C'est le nom de votre espace qui a été spécifié lors de sa création. Sachez que ce n’est pas l’URL de votre espace. Si l'URL de votre espace esthttps://example_space.nyc3.digitaloceanspaces.com, son nom serait simplementexample_space.

Si vous souhaitez que vos sauvegardes soient placées dans un dossier spécifique de votre espace, ajoutez le nom du dossier après le nom de votre espace lorsque vous exécutez la commandeinit. Ce faisant, n'oubliez pas de suivre le nom du dossier avec une barre oblique:

duplicacy init repository_id s3://region@endpoint/space_name/folder_name/

Une fois que vous avez ces détails sous la main, vous êtes prêt à créer un répertoire de référentielon each of your Droplets en utilisant la commandemkdir. Après cela, accédez à vos nouveaux référentiels aveccd:

mkdir project-repository
cd project-repository/

Avecproject-repository/ comme répertoire de travail, exécutez la commandeinit suivante surserver-01. Assurez-vous de remplacer les valeurs en surbrillance par vos propres détails:

duplicacy init project_01 s3://[email protected]/example_space

Il est à noter que vous pouvez choisir d'activer le chiffrement avec Duplicacy en utilisant l'option-e avec la commandeinit, comme suit:

duplicacy init -e project_01 s3://[email protected]/example_space

Lorsque le cryptage est activé, Duplicacy vous demandera de saisir votre mot de passe de cryptage chaque fois que vous l'utiliserez pour interagir avec votre espace.

Une fois la commandeinit exécutée, Duplicacy vous demandera vos clés d'accès et secrètes, qui peuvent être copiées à partir desAPI page du panneau de configuration.

OutputEnter S3 Access Key ID:ExampleAccessKeyGBBI
Enter S3 Secret Access Key:ExampleSecretKeyEC1wnP2YiHobVcSBaZvLoFXXlnA

Et cela produira ce qui suit:

Output/home/sammy/project-repository will be backed up to s3://[email protected]/example_space with id project_01

Lorsque vous exécutez la commandeinit, elle crée un répertoire dans votre référentiel appelé.duplicacy/ qui contient un fichier nommépreferences. Ce fichier contient des informations sur votre espace ainsi que toutes les options de chiffrement ou de stockage que vous avez spécifiées. Si ultérieurement vous décidez d'apporter des modifications à votre configuration de duplication, vous pouvez soit éditer le fichierpreferences directement, soit le supprimer. Le fichier sera recréé la prochaine fois que vous exécuterez la commandeinit dans ce référentiel.

Répétez maintenant la commandeiniton your second Droplet:

duplicacy init project_01 s3://[email protected]/example_space

Après avoir ajouté vos clés d'accès à nouveau, vous verrez une sortie légèrement différente de celle de votre premier Droplet:

OutputThe storage 's3://[email protected]/example_space' has already been initialized
Compression level: 100
Average chunk size: 4194304
Maximum chunk size: 16777216
Minimum chunk size: 1048576
Chunk seed: 6475706c6963616379
/home/sammy/project-repository will be backed up to s3://[email protected]/example_space with id project_01

Les deux référentiels de vos serveurs sont maintenant initialisés, mais il vous reste une étape à franchir pour configurer la duplication. Dans l’état actuel des choses, Duplicacy vous demandera vos clés d’accès et de secret chaque fois que vous sauvegardez vos données, ce qui deviendrait fastidieux. Pour éviter cela, vous pouvez utiliser la commandeset de Duplicacy pour écrire les informations d’identification de votre espace dans le fichierpreferences de Duplicacy. Exécutez les commandes suivanteson each of your servers pour que Duplicacy enregistre respectivement vos clés d'accès et secrètes:

duplicacy set -key s3_id -value ExampleAccessKeyGBBI
duplicacy set -key s3_secret -value ExampleSecretKeyEC1wnP2YiHobVcSBaZvLoFXXlnA

Vous êtes maintenant prêt à utiliser Duplicacy pour sauvegarder chacun des référentiels de vos gouttelettes sur l’un de vos espaces!

Sauvegarde d'un référentiel à partir de plusieurs sources

Les équipes distribuées peuvent bénéficier de solutions de sauvegarde sur le cloud discrètes qui évitent les conflits de fichiers et la perte de données. En prenant un instantané d'un référentiel entier et en le téléchargeant dans un espace à l'aide d'une seule commande, Duplicacy rationalise les sauvegardes tout en évitant les conflits de fichiers sur plusieurs ordinateurs.

Pour tester la fonctionnalité de sauvegarde de Duplicacy, utiliseztouch pour remplir lesproject-repositoryon each of your Droplets avec quelques fichiers factices:

touch /project-repository/file-1.txt
touch /project-repository/file-2.txt

Ensuite, surserver-01, utilisez la commandebackup de Duplicacy pour créer un instantané de votre référentiel et le télécharger dans votre espace. Comme vous avez lancé votre référentiel avec un seul emplacement de stockage, vous n'avez pas besoin de spécifier d'autres options pour sauvegarder vos fichiers:

duplicacy backup

La sortie résultante devrait ressembler à ceci:

OutputNo previous backup found
Indexing /home/mark/project-repository
Listing all chunks
Packed file-1.txt (0)
Packed file-2.txt (0)
Backup for /home/sammy/project-repository at revision 1 completed

Maintenant, essayez de sauvegarder votre référentiel à partir deserver-02:

duplicacy backup
OutputLast backup at revision 1 found
Indexing /home/sammy/project-repository
Backup for /home/sammy/project-repository at revision 2 completed

Vous remarquerez que, étant donné que les dépôts surserver-01 etserver-02 étaient identiques, Duplicacy n’a pas compressé de fichiers comme lors de l’exécution de la commandebackup sur votre premier Droplet. Pour voir ce qui se passera lorsque vous sauvegarderez un instantané légèrement différent, ouvrez l'un des fichiers factices surserver-02 et ajoutez-y du texte:

nano file-1.txt

project-repository/file-1.txt

The quick brown fox jumped over the lazy dogs.

Enregistrez et fermez le fichier en entrantCTRL - X,Y, puisENTER, puis exécutez à nouveau la commandebackup:

duplicacy backup
OutputStorage set to s3://[email protected]/example_space
Last backup at revision 2 found
Indexing /home/sammy/project-repository
Packed file-1.txt (45)
Backup for /home/sammy/project-repository at revision 3 completed

Duplicacy a compressé ce fichier et l'a transféré dans le cadre de la révision 3, car de nouveaux changements ont été apportés à l'un des fichiers de votre référentiel.

Vous pouvez utiliser la commanderestore pour rétablir votre référentiel à une révision précédente en utilisant l'option-r et en spécifiant le numéro de révision. Notez qu'il n'écrasera pas les fichiers existants à moins que l'option-overwrite ne soit spécifiée, comme ceci:

duplicacy restore -overwrite -r 2

Après avoir exécuté la commanderestore, vous pouvez confirmer que Duplicacy a bien réécritfile-1.txt en vérifiant s'il a du contenu:

cat file-1.txt

Si cette commande ne produit aucune sortie, alorsfile-1.txt redevient un fichier vide et vous avez réussi à restaurer votre référentiel à la révision précédente.

Sauvegarde sur plusieurs emplacements de stockage

Le stockage des sauvegardes dans plusieurs emplacements hors site a étéa common data security practice for many years. Cependant, le processus de sauvegarde de fichiers sur plusieurs destinations peut s'avérer fastidieux et entraîner une baisse de productivité. Cependant, un certain nombre d'outils de sauvegarde tiers peuvent fournir une solution rapide pour sauvegarder des données sur plusieurs emplacements du cloud.

Pour démontrer cette fonctionnalité dans Duplicacy, ajoutez votre deuxième espace au référentiel surserver-01. Vous ne pourrez pas le faire en exécutant à nouveau la commandeinit car ce référentiel a déjà été lancé par Duplicacy et associé à votre premier espace. Pour ces scénarios, vous devrez utiliser la commandeadd qui connecte un référentiel déjà initialisé à un autre compartiment de stockage.

La commandeadd de Duplicacy utilise la syntaxe suivante:

duplicacy add storage_id repository_id s3://region@endpoint/example_space_02

Cela ressemble principalement à la commandeinit utilisée précédemment, la principale différence étant qu'elle vous oblige à spécifier un ID pour le nouvel emplacement de stockage. Lorsque vous avez exécuté la commandeinit ci-dessus, Duplicacy a affecté l'IDdefault à votre premier compartiment de stockage, car c'est l'emplacement par défaut où il enverra les sauvegardes. Le nom de stockage que vous fournissez pour votre deuxième espace peut être celui que vous souhaitiez, mais il peut être utile que ce soit quelque chose de descriptif pour vous rappeler quel espace il représente.

Avec cette information en tête, ajoutez votre deuxième espace au référentiel:

duplicacy add space_02 project_01 s3://[email protected]/example_space_02

Vous êtes maintenant prêt à sauvegarder votre référentiel sur votre deuxième espace. Il est recommandé de le faire en sauvegardant d'abord votre référentiel dans votre emplacement de stockage par défaut, puis en utilisant la commandecopy de Duplicacy pour copier une sauvegarde identique vers votre deuxième emplacement de stockage:

duplicacy backup
duplicacy copy -from default -to space_02

Cela copiera chaque morceau et chaque instantané de votre premier espace sur votre deuxième. Il est important de noter que la commandecopy est non destructive et qu’elle n’écrase aucun fichier existant.

Conclusion

En association avec DigitalOcean Spaces, la duplication permet aux utilisateurs de gérer les sauvegardes dans le cloud avec souplesse. Si vous devez sauvegarder le même référentiel à partir de plusieurs ordinateurs ou si vous devez sauvegarder un référentiel à plusieurs endroits dans le cloud, la duplication peut devenir une partie intégrante de votre solution de sauvegarde.

Si vous souhaitez en savoir plus sur l'utilisation de la duplication, vous pouvez consulter lesproject wiki on GitHub. Sinon, si vous souhaitez en savoir plus sur les stratégies de sauvegarde en général, consultez notre guide surHow To Choose an Effective Backup Strategy for your VPS ou notre comparaison entreObject Storage vs. Block Storage Services.

Related