OpenSearch Clusterbackups mit der Snapshot-API
Mit OpenSearch können Sie die Snapshot-API OpenSearch verwenden, um ein Backup des Clusters zu erstellen.
Diese Methode unterscheidet sich von den verwalteten Backups, die OpenSearch automatisch für Ihr Cluster generiert. Weitere Informationen zu den von OpenSearch verwalteten Clusterbackups finden Sie unter OpenSearch Automatisierte Clusterbackups.
Die Verwendung der Snapshot-API OpenSearch bietet Ihnen mehr Flexibilität beim Erstellen oder Wiederherstellen von Backups im Cluster OpenSearch, sodass Sie das Verhalten anpassen können. Beispiele für Anpassungen, die Sie vornehmen können:
- Benennen Sie Indizes in dem Szenario um, in dem ein Indexnamenskonflikt zwischen dem Snapshot und dem Zielcluster auftritt, in dem Sie den Snapshot wiederherstellen.
- Auf dieser Seite definieren Sie bestimmte Indizes, die ein- bzw. ausgeschlossen werden sollen.
- Auf dieser Seite definieren Sie Index-Aliasnamen, die ein- bzw. ausgeschlossen werden sollen.
Snapshots werden in einem Objektspeicher-Bucket gespeichert, den Sie in Ihrem Mandanten angeben. Ihre Rechnung enthält die Speicherkosten für die Cluster-Snapshots. Weitere Informationen finden Sie unter Cloud Storage - Preise.
In diesem Thema werden die Voraussetzungen und der Prozess für die Verwendung der Snapshot-API OpenSearch mit Ihren Clustern beschrieben. Außerdem werden die folgenden Aufgaben beschrieben:
Objektspeicher-Bucket zum Speichern von Snapshot-Dateien erstellen
Das Repository für Snapshots ist ein Objektspeicher-Bucket in Ihrem Mandanten. Wenn Sie keinen Bucket zum Registrieren als Repository haben, müssen Sie einen Bucket erstellen. Ein Tutorial, das Sie durch das Erstellen eines Buckets führt, finden Sie unter Daten in Object Storage einfügen.
Notieren Sie sich die folgenden Informationen für den Bucket, den Sie als Repository registrieren. Diese Informationen finden Sie unter Bucket-Details.
- Namespace
- Bucket-Name
- Compartment-OCID
So rufen Sie die Compartment-OCID ab:
- Wählen Sie auf der Seite Bucket-Details den Link für Compartment aus.
- Wählen Sie unter Compartment-Informationen die Option Kopieren für OCID aus.
Sie können diesen Schritt überspringen und OpenSearch den Bucket erstellen lassen, wenn das Repository registriert wird, indem Sie für das Attribut
forceBucketCreation
wie folgt "true" angeben:forceBucketCreation: true
Wenn Sie diesen Ansatz verwenden, müssen Sie sicherstellen, dass Sie ausreichend Zugriff in der IAM-Policy erteilen, damit OpenSearch einen Bucket erstellen kann.
IAM-Policy
Sie müssen Berechtigungen konfigurieren, um dem Cluster OpenSearch Zugriff auf den Bucket in Ihrem Mandanten zum Speichern von Snapshot-Dateien zu erteilen.
Das folgende Policy-Beispiel enthält die erforderlichen Berechtigungen:
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>'}
Mit der vorherigen Policy können Sie den angegebenen Bucket nur als Snapshot-Repository registrieren.
<OpenSearch_Tenancy_ID> ist die OCID für die OCI-Suche mit dem Mandanten OpenSearch. Sie finden diesen Wert auf der Seite Clusterdetails für das Cluster im Feld Opensearch-Mandanten-OCID unter dem Abschnitt Zusätzliche Informationen.
<customer_tenancy_OCID> ist die OCID für Ihren Mandanten, in dem Sie das Cluster OpenSearch erstellt haben.
<customer_compartment_OCID> ist die OCID für das Compartment, in dem sich das Cluster OpenSearch befindet.
Wenn Sie forceBucketCreation : true
im Registrierungsvorgang angeben, müssen Sie sicherstellen, dass die angegebene Policy den Bucket-Erstellungszugriff in Ihrem Mandanten enthält. Andernfalls verläuft der Vorgang zur Registrierung des Repositorys nicht erfolgreich.
Repository registrieren
Bevor Sie den Snapshot erstellen können, müssen Sie das Repository registrieren, wie im folgenden Beispiel dargestellt:
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
}
}
In der folgenden Tabelle werden die Parameter beschrieben, die beim Registrieren des Repositorys angegeben werden müssen.
Parameter | Beschreibung |
---|---|
Repository-Bezeichnung | Der Name, den Sie dem Repository für den Snapshot zuweisen. |
endpoint | Der Endpunkt für den Objektspeicher-Bucket. Beispiel: Der Object Storage-Endpunkt der Region "US East (Ashburn)" ist https://objectstorage.us-ashburn-1.oraclecloud.com. |
Namespace | Der Object Storage-Namespace für den Bucket. |
authType | Geben Sie an, dass der Resource Principal verwendet werden soll, mit dem die Suche mit OpenSearch in Ihrem Namen ausgeführt werden kann. |
bucket_compartment_id | Die OCID des Compartments, in dem der Bucket gespeichert ist. |
forceBucketCreation | Gibt an, dass der Objektspeicher-Bucket erstellt wird, wenn er noch nicht vorhanden ist. Der Standardwert ist "false". |
Snapshot erstellen
Nachdem Sie das Repository registriert haben, können Sie einen Snapshot erstellen, wie im folgenden Beispiel dargestellt:
POST _snapshot/<repository_name>/<snapshot_name>?wait_for_completion=true
Das obige Beispiel enthält alle Indizes und den Status des Clusters. Das nächste Beispiel zeigt, wie bestimmte Indizes und andere Einstellungen einbezogen werden:
POST _snapshot/<repository_name>/<snapshot_name>?wait_for_completion=true
{
"indices": "<index_name>,-<index_name>",
"ignore_unavailable": true,
"include_global_state": false
}
Sie können einen oder mehrere Indizes angeben, die eingeschlossen werden sollen, <index_name_to_include>
und mindestens einen auszuschließenden Index, -<index_name_to_exclude>
.
Weitere Informationen zu diesem API-Vorgang finden Sie unter Snapshots aufnehmen.
Snapshot wiederherstellen
Bevor Sie einen Snapshot wiederherstellen, können Sie alle vorhandenen Snapshots für ein Cluster abrufen. Rufen Sie zunächst alle im Cluster registrierten Repositorys ab, wie im folgenden Beispiel dargestellt:
GET _snapshot/_all?pretty
Rufen Sie anschließend alle Snapshots im Repository ab, wie im folgenden Beispiel dargestellt:
GET _snapshot/<repository_name>?pretty
Stellen Sie nun den Snapshot wieder her, wie im folgenden Beispiel gezeigt:
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
}
Sie können einen oder mehrere Indizes angeben, die eingeschlossen werden sollen, <index_name_to_include>
und mindestens einen auszuschließenden Index, -<index_name_to_exclude>
.
Weitere Informationen zu diesem API-Vorgang finden Sie unter Snapshots wiederherstellen.