OpenSearch Sauvegardes de cluster à l'aide de l'API de cliché
OpenSearch vous permet d'utiliser l'API d'instantané OpenSearch pour créer une sauvegarde du cluster.
Cette méthode est différente des sauvegardes gérées générées automatiquement par OpenSearch pour le cluster. Pour plus d'informations sur les sauvegardes de cluster gérées par OpenSearch, reportez-vous à OpenSearch Sauvegardes de cluster automatisées.
L'API d'instantané OpenSearch offre plus de flexibilité lors de la création ou de la restauration de sauvegardes sur le cluster OpenSearch. Vous pouvez donc personnaliser ce comportement. Exemples de personnalisations que vous pouvez effectuer :
- Renommez les index dans le scénario où il y a une collision de noms d'index entre l'instantané et le cluster cible vers lequel vous restaurez l'instantané.
- Indiquer certains index à inclure ou exclure.
- Indiquez les alias d'index à inclure ou exclure.
Les clichés sont stockés dans un bucket Object Storage que vous indiquez dans votre location. Votre facture inclut les coûts de stockage pour les instantanés de cluster. Pour plus de détails, reportez-vous aux tarifs Cloud Storage.
Cette rubrique décrit les prérequis et le processus d'utilisation de l'API de cliché OpenSearch avec vos clusters, et comprend les tâches suivantes :
Création d'un bucket Object Storage pour le stockage des fichiers de cliché
Le référentiel des clichés est un bucket Object Storage de votre location. Si vous ne disposez pas d'un bucket à inscrire en tant que référentiel, vous devez créer un bucket. Pour un tutoriel expliquant comment créer un bucket, reportez-vous à Mise en commun de données dans Object Storage.
Notez les informations suivantes pour le bucket que vous allez enregistrer en tant que référentiel. Ces informations sont disponibles dans les détails du bucket.
- Espace de noms
- Nom de bucket
- OCID de compartiment
Pour obtenir l'OCID de compartiment, procédez comme suit :
- Sur la page Détails du bucket, sélectionnez le lien de compartiment.
- Sélectionnez Copier pour OCID dans Informations sur le compartiment.
Vous pouvez ignorer cette étape et demander à OpenSearch de créer le bucket lors de l'inscription du référentiel en indiquant true pour l'attribut
forceBucketCreation
, comme suit :forceBucketCreation: true
Si vous utilisez cette approche, vous devez vous assurer que vous accordez suffisamment d'accès dans la stratégie IAM pour que OpenSearch crée un bucket.
Stratégie IAM
Vous devez configurer des droits d'accès afin de fournir au cluster OpenSearch l'accès au bucket de votre location pour le stockage des fichiers de cliché.
L'exemple de stratégie suivant inclut les droits d'accès requis :
DEFINE tenancy opensearch-tenancy as <OpenSearch_Tenancy_ID>
ADMIT resource opensearch opensearchsnapshots of tenancy opensearch-tenancy to manage object-family in compartment <snapshot_bucket_compartment> where ALL {request.principal.clusterid='<cluster_OCID>', request.principal.ownertenant='<customer_tenancy_OCID>', request.principal.ownercompartment='<customer_compartment_OCID>', target.bucket.name='<snapshot_bucket_name>'}
La stratégie précédente vous permet uniquement d'inscrire le bucket indiqué en tant que référentiel de clichés.
<OpenSearch_Tenancy_ID> est l'OCID de la recherche OCI avec la location OpenSearch. Vous pouvez trouver cette valeur sur la page Détails du cluster de votre cluster dans le champ OCID de location Opensearch sous la section Informations supplémentaires.
<customer_tenancy_OCID> est l'OCID de la location dans laquelle vous avez créé le cluster OpenSearch.
<customer_compartment_OCID> est l'OCID du compartiment dans lequel se trouve le cluster OpenSearch.
Si vous indiquez forceBucketCreation : true
dans l'opération d'inscription, vous devez vous assurer que la stratégie indiquée inclut l'accès à la création de bucket dans votre location. Sinon, l'opération d'inscription du référentiel échoue.
Inscrire le référentiel
Pour pouvoir prendre le cliché, vous devez enregistrer le référentiel, comme indiqué dans l'exemple suivant :
PUT _snapshot/<repository_name>
{
"type": "oci",
"settings": {
"client": "default",
"endpoint": "<objectstorage_endpoint>",
"bucket": "<bucket_name>",
"namespace": "<namespace>",
"authType": "RESOURCE_PRINCIPAL",
"bucket_compartment_id": "<bucket_compartment_OCID>",
"forceBucketCreation": true
}
}
Le tableau suivant décrit les paramètres à spécifier lors de l'enregistrement du référentiel.
Paramètre | Description |
---|---|
nom de référentiel | Nom que vous affectez au référentiel pour le cliché. |
adresse | Adresse du bucket Object Storage. Par exemple, l'adresse Object Storage de la région Est des Etats-Unis (Ashburn) est https://objectstorage.us-ashburn-1.oraclecloud.com. |
espace de noms | Espace de noms Object Storage pour le bucket. |
authType | Indiquez si vous souhaitez utiliser le principal de ressource qui permet à Search with OpenSearch de travailler en votre nom. |
bucket_compartment_id | OCID du compartiment où se trouve le bucket. |
forceBucketCreation | Indique de créer le bucket Object Storage s'il n'existe pas déjà. La configuration par défaut est False. |
Prendre un instantané
Une fois que vous avez enregistré le référentiel, vous pouvez prendre un cliché, comme indiqué dans l'exemple suivant :
POST _snapshot/<repository_name>/<snapshot_name>?wait_for_completion=true
L'exemple précédent inclut tous les index et l'état du cluster. L'exemple suivant montre comment inclure des index spécifiques et d'autres paramètres :
POST _snapshot/<repository_name>/<snapshot_name>?wait_for_completion=true
{
"indices": "<index_name>,-<index_name>",
"ignore_unavailable": true,
"include_global_state": false
}
Vous pouvez indiquer des index à inclure, <index_name_to_include>
et des index à exclure, -<index_name_to_exclude>
.
Pour plus d'informations sur cette opération d'API, reportez-vous à Prise de clichés.
Restaurer le cliché
Avant de restaurer un instantané, vous pouvez extraire tous les instantanés existants pour un cluster. Tout d'abord, récupérez tous les référentiels enregistrés auprès du cluster, comme indiqué dans l'exemple suivant :
GET _snapshot/_all?pretty
Extrayez ensuite tous les instantanés du référentiel, comme indiqué dans l'exemple suivant :
GET _snapshot/<repository_name>?pretty
Restaurez l'instantané, comme indiqué dans l'exemple suivant :
POST _snapshot/<repository_name>/<snapshot_name>/_restore
{
"indices": "<index_name_to_include>,-<index_name_to_exclude>",
"ignore_unavailable": true,
"include_global_state": false,
"rename_pattern": "(.+)",
"rename_replacement": "restored_$1",
"include_aliases": true
}
Vous pouvez indiquer des index à inclure, <index_name_to_include>
et des index à exclure, -<index_name_to_exclude>
.
Pour plus d'informations sur cette opération d'API, reportez-vous à Restauration de clichés.