OpenSearch Backup del cluster mediante l'API snapshot

OpenSearch consente di utilizzare l'API snapshot OpenSearch per creare un backup del cluster.

Questo metodo è diverso dai backup gestiti generati automaticamente da OpenSearch per il cluster. Per ulteriori informazioni sui backup del cluster gestiti da OpenSearch, vedere OpenSearch Automated Cluster Backups.

L'uso dell'API snapshot OpenSearch offre maggiore flessibilità durante la creazione o il ripristino dei backup nel cluster OpenSearch, in modo da poter personalizzare il funzionamento. Di seguito sono riportate alcune personalizzazioni di esempio che è possibile effettuare.

  • Rinominare gli indici nello scenario in cui si verifica una collisione di nomi di indice tra lo snapshot e il cluster di destinazione in cui si sta ripristinando lo snapshot.
  • Specificare determinati indici da includere o escludere.
  • Specificare gli alias di indice da includere o escludere.

Gli snapshot vengono memorizzati in un bucket di storage degli oggetti specificato nella tenancy. La fattura include i costi di storage per gli snapshot del cluster. Per i dettagli, consulta la sezione relativa ai prezzi dello storage cloud.

Questo argomento descrive i prerequisiti e il processo per l'utilizzo dell'API snapshot OpenSearch con i cluster e include i task riportati di seguito.

  1. Creare il bucket di storage degli oggetti utilizzato come repository per lo snapshot del cluster.
  2. Configurare un criterio dinamico con le autorizzazioni necessarie.
  3. Registrare gli snapshot per il repository.
  4. Esegui snapshot.
  5. Ripristina snapshot.

Creazione di un bucket di storage degli oggetti per la memorizzazione dei file snapshot

Il repository per gli snapshot è un bucket di storage degli oggetti nella tenancy. Se non si dispone di un bucket da registrare come repository, è necessario creare un bucket. Per un'esercitazione su come creare un bucket, vedere Inserimento dei dati nello storage degli oggetti.

Prendere nota delle seguenti informazioni per il bucket che verrà registrato come repository. Queste informazioni sono disponibili in Dettagli bucket.

  • Spazio di nomi
  • Nome bucket
  • OCID compartimento

Per ottenere l'OCID del compartimento:

  1. Nella pagina Dettagli bucket selezionare il collegamento per il compartimento.
  2. Selezionare Copia per OCID in Informazioni sul compartimento.
Nota

È possibile saltare questo passo e fare in modo che OpenSearch crei il bucket quando il repository viene registrato specificando true per l'attributo forceBucketCreation, come indicato di seguito.
forceBucketCreation: true

Se si utilizza questo approccio, è necessario assicurarsi di concedere un accesso sufficiente nel criterio IAM per OpenSearch per creare un bucket.

Criterio IAM

È necessario configurare le autorizzazioni per fornire l'accesso cluster OpenSearch al bucket nella tenancy per la memorizzazione dei file snapshot.

L'esempio di criteri riportato di seguito include le autorizzazioni necessarie.

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>'}

Il criterio precedente consente solo di registrare il bucket specificato come repository di snapshot.

<OpenSearch_Tenancy_ID> è l'OCID per OCI Search con la tenancy OpenSearch. È possibile trovare questo valore nella pagina Dettagli cluster per il cluster nel campo OCID tenancy Opensearch della sezione Informazioni aggiuntive.

<customer_tenancy_OCID> è l'OCID della tenancy in cui è stato creato il cluster OpenSearch.

<customer_compartment_OCID> è l'OCID per il compartimento in cui si trova il cluster OpenSearch.

Se si specifica forceBucketCreation : true nell'operazione di registrazione, è necessario assicurarsi che il criterio specificato includa l'accesso di creazione del bucket nella tenancy in uso, altrimenti l'operazione di registrazione del repository non riesce.

Registra il repository

Prima di poter eseguire lo snapshot, è necessario registrare il repository, come mostrato nell'esempio riportato di seguito.

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
  }
}

Nella tabella seguente vengono descritti i parametri da specificare quando si registra il repository.

Parametro Descrizione
nome repository Il nome assegnato al repository per lo snapshot.
endpoint Endpoint per il bucket di storage degli oggetti.

Ad esempio, l'endpoint dello storage degli oggetti dell'area orientale degli Stati Uniti (Ashburn) è https://objectstorage.us-ashburn-1.oraclecloud.com.

spazio di nomi Spazio di nomi dello storage degli oggetti per il bucket.
authType Specificare di utilizzare il principal risorsa che consente a Search con OpenSearch di lavorare per conto dell'utente.
bucket_compartment_id OCID del compartimento in cui si trova il bucket.
forceBucketCreation Specifica di creare il bucket di storage degli oggetti se non esiste già. Il valore predefinito è false.

Esegui snapshot

Dopo aver registrato il repository, è possibile creare uno snapshot, come mostrato nell'esempio riportato di seguito.

POST _snapshot/<repository_name>/<snapshot_name>?wait_for_completion=true

L'esempio precedente include tutti gli indici e lo stato del cluster. L'esempio seguente mostra come includere indici specifici e altre impostazioni:

POST _snapshot/<repository_name>/<snapshot_name>?wait_for_completion=true
{
"indices": "<index_name>,-<index_name>",
  "ignore_unavailable": true,
  "include_global_state": false
}

È possibile specificare uno o più indici da includere, <index_name_to_include> e uno o più indici da escludere, -<index_name_to_exclude>.

Per ulteriori informazioni su questa operazione API, vedere Eseguire snapshot.

Ripristina snapshot

Prima di ripristinare uno snapshot, è possibile recuperare tutti gli snapshot esistenti per un cluster. In primo luogo, recuperare tutti i repository registrati con il cluster, come mostrato nell'esempio seguente:

GET _snapshot/_all?pretty

Recuperare quindi tutti gli snapshot nel repository, come mostrato nell'esempio riportato di seguito.

GET _snapshot/<repository_name>?pretty

Ora, ripristinare l'istantanea, come mostrato nell'esempio seguente:

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
}

È possibile specificare uno o più indici da includere, <index_name_to_include> e uno o più indici da escludere, -<index_name_to_exclude>.

Per ulteriori informazioni su questa operazione API, vedere Ripristina snapshot.