Tout le monde sait que les copies de sauvegarde sont essentielles, mais mettre celles-ci en place peut quelque fois sembler un fardeau. En fait, ce n'est pas le cas, car dans un environnement infonuagique comme cloud.ca, il est très simple d'assembler les éléments nécessaires.
Dans cet article, nous allons expliquer la marche à suivre afin d'utiliser le logiciel libre Duplicity pour enregistrer des copies de sûreté vers des environnements de stockage objet, et bien sûr, l'opération inverse de récupération. Il s'agit d'une option attrayante car le stockage objet est notre option la moins coûteuse tout en offrant une haute redondance au niveau de la préservation de vos données.
1) Définir où envoyez vos copies de sauvegarde
J'aime bien créer un environnement de stockage objet dédié à mes copies de sauvegarde — cela permet de garder les choses bien organisées. Cliquez sur Administration > Environnements, ensuite cliquez Ajouter environnement et remplissez ce formulaire:
Ensuite, dans l'onglet Services de cloud.ca, sélectionnez votre nouvel environnement et ajoutez un récipient pour recevoir vos copies de sauvegarde. Je suggère de dédier un récipient distinct à chaque serveur servant de source de sauvegarde, mais cela n'est pas obligatoire.
2) Installation et configuration de Duplicity
Ensuite, procédons à l'installation du logiciel Duplicity.
Sur CentOS 7:
sudo su
rpm -iUvh http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
yum -y install python-pip python-devel gnupg2 duplicity gcc
pip install python-swiftclient python-keystoneclient
Sur Ubuntu 14.04:
sudo su
add-apt-repository ppa:duplicity-team/ppa
apt-get update
apt-get install duplicity python-pip gnupg2 python-dev
pip install python-swiftclient python-keystoneclient==1.8.1 --upgrade retrying
L'étape suivante consiste à configurer les variables d'environnement qui indiquent à Duplicity comment se connecter au stockage objet de cloud.ca. Ces informations proviennent de l'option Clés d'API dans le menu déroulant situé sous votre nom d'utilisateur dans cloud.ca:
Ensuite créez les variables d'environnement suivantes à partir de ces informations:
export SWIFT_USERNAME="marcv-sauvegardes:marcv-marc-1234"
export SWIFT_PASSWORD="MotDePasseFictif"
export SWIFT_AUTHURL="https://auth-east.cloud.ca/v2.0"
export SWIFT_AUTHVERSION="2"
3) Processus de sauvegarde
Une fois ces configuration complétées, vous êtes prêts à faire la copie de sauvegarde d'un répertoire source, par exemple le contenu de /var/log :
duplicity --no-encryption /var/log swift://serveur1-sauvegarde
Local and Remote metadata are synchronized, no sync needed.
Last full backup date: none
No signatures found, switching to full backup.
--------------[ Backup Statistics ]--------------
StartTime 1450189682.46 (Tue Dec 15 14:28:02 2015)
EndTime 1450189684.43 (Tue Dec 15 14:28:04 2015)
ElapsedTime 1.97 (1.97 seconds)
SourceFiles 50
SourceFileSize 77757439 (74.2 MB)
NewFiles 50
NewFileSize 77757439 (74.2 MB)
DeletedFiles 0
ChangedFiles 0
ChangedFileSize 0 (0 bytes)
ChangedDeltaSize 0 (0 bytes)
DeltaEntries 50
RawDeltaSize 77728767 (74.1 MB)
TotalDestinationSizeChange 4773130 (4.55 MB)
Errors 0
-------------------------------------------------
Vous pouvez aussi énumérer les fichiers inclus dans votre copie de sauvegarde:
duplicity list-current-files swift://serveur1-sauvegarde
Local and Remote metadata are synchronized, no sync needed.
Last full backup date: Tue Dec 15 14:28:01 2015
Tue Dec 15 06:43:38 2015 .
Sat Dec 5 06:48:12 2015 alternatives.log
Fri Dec 4 19:39:44 2015 alternatives.log.1
Sat Dec 5 06:48:12 2015 apt
Sat Dec 5 06:48:12 2015 apt/history.log
Fri Dec 4 20:22:19 2015 apt/history.log.1.gz
Sat Dec 5 06:48:12 2015 apt/term.log
Fri Dec 4 20:22:19 2015 apt/term.log.1.gz
...
Cette copie de sauvegarde "complète" peut être suivie de plusieurs sauvegardes "incrémentales", afin de ne persister que les différences entre les deux moments. Après avoir attendu quelques minutes, j'ai répété la même commande pour mettre à jour les fichiers modifiés et ajoutés:
duplicity --no-encryption /var/log swift://serveur1-sauvegarde
Last full backup date: Tue Dec 15 14:28:01 2015
--------------[ Backup Statistics ]--------------
StartTime 1450190272.54 (Tue Dec 15 14:37:52 2015)
EndTime 1450190272.66 (Tue Dec 15 14:37:52 2015)
ElapsedTime 0.12 (0.12 seconds)
SourceFiles 43
SourceFileSize 77365172 (73.8 MB)
NewFiles 2
NewFileSize 4096 (4.00 KB)
DeletedFiles 8
ChangedFiles 1
ChangedFileSize 7846335 (7.48 MB)
ChangedDeltaSize 0 (0 bytes)
DeltaEntries 11
RawDeltaSize 11087 (10.8 KB)
TotalDestinationSizeChange 1234 (1.21 KB)
Errors 0
-------------------------------------------------
Si vous êtes curieux, allez dans votre onglet Services de cloud.ca pour parcourir le contenu du récipient de destination, qui ressemble à ceci après la deuxième sauvegarde:
4) Processus de récupération
Quand un désastre survient et que vous devez récupérer les données de votre dernière copie de sauvegarde, exécuter une commande semblable à celle-ci:
duplicity --no-encryption swift://serveur1-sauvegarde /tmp/log
Duplicity offre différentes façons de récupérer vos copies de sauvegarde. Par exemple vous pouvez récupérer uniquement les fichiers spécifiés explicitement plutôt que l'archive intégrale, ou encore spécifier un point précis dans le temps. Consulter la documentation du produit pour plus de détails.
En conclusion
Ce court tutoriel devrait vous permettre de démarrer sur le bon pied. L'étape logique suivante serait de chiffrer les données pour plus de sécurité, et de mettre en place une cédule automatiques de sauvegarde. Nous parlerons de ces points dans un futur article.
Crédit photo: Got Credit
À propos de l'auteur