5.6. Sauvegarde / restauration¶
Avertissement
Cette méthode s’applique uniquement pour des déploiements de petite taille, et n’est pas recommandée pour un usage en production. La gestion de la sauvegarde des bases de métadonnées MongoDB et Elasticsearch, ainsi que de la restauration de leur contenu en cohérence avec les offres sous-jacentes, est déjà gérée par les mécanismes intrinsèques à la solution VITAM, cf. le DAT.
Les procédures sont issues des documentations officielles :
- mongoDB : https://docs.mongodb.com/manual/tutorial/backup-and-restore-tools/
- elasticsearch : https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-snapshots.html
5.6.1. Sauvegarde¶
Note
Pour que cette sauvegarde soit fonctionnellement correcte, il faut que la solution logicielle VITAM soit dans un état stable et cohérent, sans possibilité d’ajouter des « ingests » et sans travail de fond (jobs de sécurisation, …).
5.6.1.1. mongoDB¶
La commande suivante est à lancer depuis une machine hébergeant le composant vitam-mongod
(pour data ET pour chaque offer) de VITAM ayant un espace suffisant dans le répertoire de sauvegarde (défini par --out
)
mongodump --host mongodb.example.net --port 27017 --out /data/backup/ --username vitamdb-admin --password "pass"
Note
Se reporter aux fichiers associés à l’ansiblerie de déploiement pour le mot de passe vitamdb-admin
Rapatrier sur un serveur approprié le produit généré dans la valeur de --out
.
Pour rappel, il y a un cluster mongo de « data », ainsi qu’un cluster mongo « offer » associé à chaque offre. Pour un système cohérent, il faut effectuer la sauvegarde de chacun de ces clusters.
5.6.1.2. Elasticsearch¶
La commande suivante est à lancer depuis une machine elasticsearch de VITAM ayant un espace suffisant dans le répertoire de sauvegarde
curl -X PUT http://eltasicsearch-data.service.${consul_domain}:9200/_snapshot/vitam_backup -d '{ "type": "fs", "settings": { "location": "${output_dir}" } }'
Cette étape va créer le repository vitam_backup de sauvegarde, l’arborescence étant définie par ${output_dir}
.
Pour vérifier l’état du repository vitam_backup sur les noeuds du cluster
curl -X POST http://eltasicsearch-data.service.${consul_domain}:9200/_snapshot/vitam_backup/_verify
Pour lancer un snapshot (dans l’exemple, appelé snapshot_1)
curl -X PUT http://eltasicsearch-data.service.${consul_domain}:9200/_snapshot/vitam_backup/snapshot_1?wait_for_completion=true
Note
la commande ne rendra la main qu’à la fin de la procédure de snapshot.
A l’issue de la sauvegarde, procéder à une recopie de ${output_dir}
sur un serveur à part.
5.6.2. Restauration¶
Note
Comme pour la sauvegarde, la restauration ne peut s’effectuer que sur un environnement VITAM stable et cohérent, sans possibilité d’ajouter des « ingests » et sans travail de fond (jobs de sécurisation, …). De plus, le contenu restauré doit être cohérent avec le contenu des offres de stockage sous-jacentes.
5.6.2.1. mongoDB¶
Il faut d’abord procéder au rapatriement dans ${output_dir}
de la sauvegarde à appliquer.
Avertissement
une sauvegarde ne peut se restaurer que sur un environnement dans la même version.
La commande suivante est à lancer depuis une machine mongo de VITAM possédant le répertoire de sauvegarde à restaurer :
mongorestore –host mongodb1.example.net –port 3017 –username vitamdb-admin –password “pass” ${output_dir}/${fichier}
Note
Se reporter aux fichiers associés à l’ansiblerie de déploiement pour le mot de passe vitamdb-admin
5.6.2.2. Elasticsearch¶
Il faut d’abord procéder au rapatriement dans ${output_dir}
de la sauvegarde à appliquer.
Commande pour lister les snapshots de vitam_backup (repository)
curl -X GET http://eltasicsearch-data.service.${consul_domain}:9200/_snapshot/vitam_backup/
Pour lancer une restauration, placer le nom du snapshot sà la place de *snapshot* dans l’URL suivante
curl -X POST http://eltasicsearch-data.service.${consul_domain}:9200/_snapshot/vitam_backup/*snapshot*/_restore