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 :

  1. Créez le bucket Object Storage utilisé en tant que référentiel pour le cliché de cluster.
  2. Configurez une stratégie dynamique avec les droits d'accès requis.
  3. Enregistrez les instantanés du référentiel.
  4. Prendre un cliché.
  5. Restaurer le cliché.

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 :

  1. Sur la page Détails du bucket, sélectionnez le lien de compartiment.
  2. Sélectionnez Copier pour OCID dans Informations sur le compartiment.
Remarque

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.