Migration des données Elasticsearch à l'aide d'une image instantanée et d'une restauration
Migrez les données entre deux instances d' Elasticsearch à l'aide de Object Storage. A l'aide de la méthode d'instantané et de restauration, prenez des instantanés à partir de votre instance source, stockez-les dans Object Storage, puis restaurez ces instantanés à partir de Object Storage dans votre instance cible.
Ce tutoriel utilise l'instantané et la restauration, IBM Cloud Object Storage et deux instances de Databases for Elasticsearch. Toutefois, ce processus s'applique à toute solution de stockage d'objets S3-compatible et à tout déploiement de Elasticsearch.
Nous avons simplifié le processus à l'aide de Terraform et de scripts shell. Suivez simplement la procédure décrite sur cette page, en connectant les variables nécessaires au fur et à mesure.
Si vous utilisez le processus d'instantané et de restauration pour effectuer une mise à niveau depuis Elasticsearch 7.9/7.10 vers la version 7.17, vous devez changer votre plan de Standard à Enterprise. Modifiez votre plan en cliquant sur Restaurer sur la page Mise à disposition de la sauvegarde à restaurer, puis sélectionnez 7.17 dans le menu déroulant.
Commencer à être productif
Avant de migrer vos données, installez Terraform pour codifier et déployer l'infrastructure nécessaire. Vous avez également besoin d'un compteIBM Cloud.
Etape 1: Obtention d'une clé d'API IBM Cloud et clonage du référentiel GitHub
Suivez ces étapes pour créer une clé d'API IBM Cloud qui permet à Terraform de mettre à disposition une infrastructure dans votre compte. Vous pouvez créer jusqu'à 20 clés d'API.
Pour des raisons de sécurité, la clé d'API ne peut être copiée ou téléchargée qu'au moment de sa création. Si la clé d'API est perdue, vous devez en créer une autre.
Ensuite, clonez le référentielElasticsearch Snapshot / Restore GitHub sur votre machine locale.
git clone https://github.com/IBM/elasticsearch-cos-snapshot-restore.git
Après avoir cloné ce dossier, accédez au dossier de projet nouvellement créé sur votre machine locale.
Etape 2: Installation et exécution du script Terraform
Le dossier terraform contient des fichiers qui créent l'infrastructure nécessaire pour créer et restaurer vos instantanés:
cos.tf
cos.tf
crée une instance Cloud Object Storage et un compartiment. Mettez à jour vos ressources pour restoreCOSInstance
,
restoreBucket
, resourceKey
. Ce script génère ensuite les fichiers bucket_credentials
et bucket_name
.
elastic.tf
elastic.tf
crée une source, une cible et les configurations nécessaires. Entrez les variables pour resource "ibm_database" "esSource"
et resource "ibm_database" "esTarget"
. Ce script génère ensuite les variables de configuration nécessaires.
main.tf
main.tf
contient l'ensemble principal de configuration de votre module. Pour la variable ibmcloud_api_key
, créez
ou extrayez un Clé d'API IBM Cloud®. Indiquez ensuite le groupe de ressources et la variable ibm_resource_group
, qui génère le fichier resource_group_name
.
variables.tf
variables.tf
contient les définitions de variable ibmcloud_api_key
, region
et elastic_password
.
Mettez à jour ces variables avec votre clé d'API, votre région préférée et votre mot de passe Elasticsearch.
Après avoir configuré vos ressources, vos configurations et vos variables, exécutez votre script Terraform. Accédez à votre dossier terraform et installez l'infrastructure à l'aide de la commande suivante:
terraform init
terraform apply --auto-approve
Le script Terraform génère les données de configuration nécessaires à l'exécution de l'application. Vous devez donc les copier dans le dossier racine:
terraform output -json >../config.json
Etape 3: Exécutez le script d'instantané de shell
Exécutez le fichier migrate.sh dans le dossier de projet principal. Ce script shell utilise les informations
fournies par le fichier config.json
pour effectuer les étapes de migration nécessaires.
- Créez des noms d'image instantanée différents en ajoutant un horodatage.
- Obtenez la base de données et les paramètres S3/COS.
- Montez le compartiment S3/COS sur le déploiement source.
- Montez le compartiment S3/COS sur le déploiement cible.
- Fermez tous les index sur la cible afin que la restauration puisse être exécutée sans toucher au
icd-auth index
, qui est protégé par Cloud Databases.
Exécutez migrate.sh autant de fois que nécessaire pour sauvegarder complètement vos données.
Les images instantanées sont incrémentielles, de sorte que la première image instantanée prend plus de temps que les autres.
Une fois que votre compartiment COS a tous les instantanés nécessaires, arrêtez les écritures dans la source. Exécutez ensuite migrate.sh une fois de plus pour prendre un instantané final et le restaurer sur la cible. Toutes vos données sont maintenant dans la cible. Pointez vos applications vers la base de données cible et la mise à niveau est terminée.
Extraire et mettre à jour les mots de passe utilisateur
Si vous effectuez une restauration dans Elasticsearch 7.17 en tant que mise à jour à partir d'une version antérieure, les mots de passe utilisateur existants seront invalidés et devront être réinitialisés après la restauration. Pour plus d'informations, voir Extraction et mise à jour des mots de passe utilisateur.