Schreiben Sie EBS Amazon-Snapshots mit Direct EBS APIs - Amazon EBS

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Schreiben Sie EBS Amazon-Snapshots mit Direct EBS APIs

In den folgenden Schritten wird beschrieben, wie Sie mit EBS Direct APIs inkrementelle Snapshots schreiben können:

  1. Verwenden Sie die StartSnapshot Aktion und geben Sie eine übergeordnete Snapshot-ID an, um einen Snapshot als inkrementellen Snapshot eines vorhandenen Snapshots zu starten, oder lassen Sie die übergeordnete Snapshot-ID weg, um einen neuen Snapshot zu starten. Diese Aktion gibt die neue Snapshot-ID zurück, die sich im Status „Ausstehend“ befindet.

  2. Verwenden Sie die PutSnapshotBlock Aktion und geben Sie die ID des ausstehenden Snapshots an, um ihm Daten in Form von einzelnen Blöcken hinzuzufügen. Sie müssen eine Base64-kodierte SHA256 Prüfsumme für den übertragenen Datenblock angeben. Der Dienst berechnet die Prüfsumme der empfangenen Daten und validiert sie mit der angegebenen Prüfsumme. Die Aktion schlägt fehl, wenn die Prüfsummen nicht übereinstimmen.

  3. Wenn Sie mit dem Hinzufügen von Daten zum ausstehenden Snapshot fertig sind, verwenden Sie die CompleteSnapshot Aktion, um einen asynchronen Workflow zu starten, der den Snapshot versiegelt und in den Status „Abgeschlossen“ versetzt.

Wiederholen Sie diese Schritte, um einen neuen inkrementellen Snapshot mit dem zuvor erstellten Snapshot als übergeordneter Snapshot zu erstellen.

Im folgenden Diagramm ist Snapshot A beispielsweise der erste neue Snapshot, der gestartet wurde. Snapshot A wird als übergeordneter Snapshot zum Starten von Snapshot B verwendet. Snapshot B wird als übergeordneter Snapshot zum Starten und Erstellen von Snapshots C verwendet. Snapshots A, B und C sind inkrementelle Snapshots. Snapshot A wird verwendet, um EBS Volume 1 zu erstellen. Snapshot D wird aus EBS Volume 1 erstellt. Snapshot D ist ein inkrementeller Snapshot von A; es handelt sich nicht um einen inkrementellen Snapshot von B oder C.

EBSdirekt APIs verwendet, um inkrementelle Snapshots zu erstellen.

Die folgenden Beispiele zeigen, wie Snapshots mit Direct geschrieben werden. EBS APIs

Starten eines Snapshots

AWS CLI

Der folgende Beispielbefehl start-Snapshot startet einen 8-GiB-Snapshot, wobei der Snapshot snap-123EXAMPLE1234567 als übergeordneter Snapshot verwendet wird. Der neue Snapshot ist ein inkrementeller Snapshot des übergeordneten Snapshots. Der Snapshot wird in einen Fehlerzustand verschoben, wenn innerhalb des angegebenen Timeout-Zeitraums von 60 Minuten keine Einfüge- oder Abschlussanforderungen für den Snapshot gesendet werden. Das Client-Token 550e8400-e29b-41d4-a716-446655440000 stellt Idempotenz für die Anforderung sicher. Wenn das Client-Token weggelassen wird, generiert es AWS SDK automatisch eines für Sie. Weitere Informationen zur Idempotenz finden Sie unter StartSnapshot APIStellen Sie die Idempotenz in Anfragen sicher.

aws ebs start-snapshot --volume-size 8 --parent-snapshot snap-123EXAMPLE1234567 --timeout 60 --client-token 550e8400-e29b-41d4-a716-446655440000

Die folgende Beispielantwort für den vorherigen Befehl zeigt die Snapshot-ID, die AWS -Konto-ID, den Status, die Volume-Größe in GiB und die Größe der Blöcke im Snapshot. Der Snapshot wird im Zustand pending gestartet. Geben Sie die Snapshot-ID in nachfolgenden put-snapshot-block-Befehlen an, um Daten in den Snapshot zu schreiben. Verwenden Sie anschließend den Befehl complete-snapshot, um den Snapshot abzuschließen und den Status in completed zu ändern.

{ "SnapshotId": "snap-0aaEXAMPLEe306d62", "OwnerId": "111122223333", "Status": "pending", "VolumeSize": 8, "BlockSize": 524288 }
AWS API

Die folgende StartSnapshotBeispielanforderung startet einen 8 GiB-Snapshot, wobei der Snapshot snap-123EXAMPLE1234567 als übergeordneter Snapshot verwendet wird. Der neue Snapshot ist ein inkrementeller Snapshot des übergeordneten Snapshots. Der Snapshot wird in einen Fehlerzustand verschoben, wenn innerhalb des angegebenen Timeout-Zeitraums von 60 Minuten keine Einfüge- oder Abschlussanforderungen für den Snapshot gesendet werden. Das Client-Token 550e8400-e29b-41d4-a716-446655440000 stellt Idempotenz für die Anforderung sicher. Wenn das Client-Token weggelassen wird, generiert es AWS SDK automatisch eines für Sie. Weitere Informationen zur Idempotenz finden Sie unter StartSnapshot APIStellen Sie die Idempotenz in Anfragen sicher.

POST /snapshots HTTP/1.1 Host: ebs.us-east-2.amazonaws.com Accept-Encoding: identity User-Agent: <User agent parameter> X-Amz-Date: 20200618T040724Z Authorization: <Authentication parameter> { "VolumeSize": 8, "ParentSnapshot": snap-123EXAMPLE1234567, "ClientToken": "550e8400-e29b-41d4-a716-446655440000", "Timeout": 60 }

Die folgende Beispielantwort für die vorherige Anforderung zeigt die Snapshot-ID, die AWS -Konto-ID, den Status, die Volume-Größe in GiB und die Größe der Blöcke im Snapshot. Der Snapshot wird im Status „Ausstehend“ gestartet. Geben Sie die Snapshot-ID in einer nachfolgenden PutSnapshotBlocks-Anforderung an, um Daten in den Snapshot zu schreiben.

HTTP/1.1 201 Created x-amzn-RequestId: 929e6eb9-7183-405a-9502-5b7da37c1b18 Content-Type: application/json Content-Length: 181 Date: Thu, 18 Jun 2020 04:07:29 GMT Connection: keep-alive { "BlockSize": 524288, "Description": null, "OwnerId": "138695307491", "Progress": null, "SnapshotId": "snap-052EXAMPLEc85d8dd", "StartTime": null, "Status": "pending", "Tags": null, "VolumeSize": 8 }

Einfügen von Daten in einen Snapshot

AWS CLI

Der folgende Beispielbefehl put-snapshot schreibt 524288 Bytes von Daten in den Block-Index 1000 für den Snapshot snap-0aaEXAMPLEe306d62. Die Base64-codierte QOD3gmEQOXATfJx2Aa34W4FU2nZGyXfqtsUuktOw8DM=-Prüfsumme wurde mit dem SHA256-Algorithmus generiert. Die übertragenen Daten befinden sich in der Datei /tmp/data.

aws ebs put-snapshot-block --snapshot-id snap-0aaEXAMPLEe306d62 --block-index 1000 --data-length 524288 --block-data /tmp/data --checksum QOD3gmEQOXATfJx2Aa34W4FU2nZGyXfqtsUuktOw8DM= --checksum-algorithm SHA256

Die folgende Beispielantwort für den vorherigen Befehl bestätigt die Datenlänge, die Prüfsumme und den Prüfsummenalgorithmus für die vom Service empfangenen Daten.

{ "DataLength": "524288", "Checksum": "QOD3gmEQOXATfJx2Aa34W4FU2nZGyXfqtsUuktOw8DM=", "ChecksumAlgorithm": "SHA256" }
AWS API

Die folgende PutSnapshotBeispielanforderung schreibt 524288 Datenbytes in den Blockindex 1000 des Snapshotssnap-052EXAMPLEc85d8dd. Die Base64-codierte QOD3gmEQOXATfJx2Aa34W4FU2nZGyXfqtsUuktOw8DM=-Prüfsumme wurde mit dem SHA256-Algorithmus generiert. Die Daten werden im Hauptteil der Anfrage übertragen und wie BlockData im folgenden Beispiel dargestellt.

PUT /snapshots/snap-052EXAMPLEc85d8dd/blocks/1000 HTTP/1.1 Host: ebs.us-east-2.amazonaws.com Accept-Encoding: identity x-amz-Data-Length: 524288 x-amz-Checksum: QOD3gmEQOXATfJx2Aa34W4FU2nZGyXfqtsUuktOw8DM= x-amz-Checksum-Algorithm: SHA256 User-Agent: <User agent parameter> X-Amz-Date: 20200618T042215Z X-Amz-Content-SHA256: UNSIGNED-PAYLOAD Authorization: <Authentication parameter> BlockData

Die folgende Beispielantwort für die vorherige Anforderung bestätigt Datenlänge, Prüfsumme und Prüfsummenalgorithmus für die vom Service empfangenen Daten.

HTTP/1.1 201 Created x-amzn-RequestId: 643ac797-7e0c-4ad0-8417-97b77b43c57b x-amz-Checksum: QOD3gmEQOXATfJx2Aa34W4FU2nZGyXfqtsUuktOw8DM= x-amz-Checksum-Algorithm: SHA256 Content-Type: application/json Content-Length: 2 Date: Thu, 18 Jun 2020 04:22:12 GMT Connection: keep-alive {}

Abschluss eines Snapshots

AWS CLI

Mit dem folgenden Beispielbefehl complete-snapshot wird der Snapshot snap-0aaEXAMPLEe306d62 abgeschlossen. Der Befehl gibt an, dass 5 Blöcke in den Snapshot geschrieben wurden. Die Prüfsumme 6D3nmwi5f2F0wlh7xX8QprrJBFzDX8aacdOcA3KCM3c= stellt die Prüfsumme für den gesamten Datensatz dar, der in den Snapshot geschrieben wurde. Weitere Informationen zu Prüfsummen finden Sie unter Verwenden Sie EBS direkte APIs Prüfsummen, um Snapshot-Daten zu validieren weiter oben in dieser Anleitung.

aws ebs complete-snapshot --snapshot-id snap-0aaEXAMPLEe306d62 --changed-blocks-count 5 --checksum 6D3nmwi5f2F0wlh7xX8QprrJBFzDX8aacdOcA3KCM3c= --checksum-algorithm SHA256 --checksum-aggregation-method LINEAR

Im Folgenden finden Sie eine Beispielantwort für den vorherigen Befehl.

{ "Status": "pending" }
AWS API

Die folgende CompleteSnapshotBeispielanforderung vervollständigt den Snapshotsnap-052EXAMPLEc85d8dd. Der Befehl gibt an, dass 5 Blöcke in den Snapshot geschrieben wurden. Die Prüfsumme 6D3nmwi5f2F0wlh7xX8QprrJBFzDX8aacdOcA3KCM3c= stellt die Prüfsumme für den gesamten Datensatz dar, der in den Snapshot geschrieben wurde.

POST /snapshots/completion/snap-052EXAMPLEc85d8dd HTTP/1.1 Host: ebs.us-east-2.amazonaws.com Accept-Encoding: identity x-amz-ChangedBlocksCount: 5 x-amz-Checksum: 6D3nmwi5f2F0wlh7xX8QprrJBFzDX8aacdOcA3KCM3c= x-amz-Checksum-Algorithm: SHA256 x-amz-Checksum-Aggregation-Method: LINEAR User-Agent: <User agent parameter> X-Amz-Date: 20200618T043158Z Authorization: <Authentication parameter>

Im Folgenden finden Sie eine Beispielantwort für die vorherige Anforderung.

HTTP/1.1 202 Accepted x-amzn-RequestId: 06cba5b5-b731-49de-af40-80333ac3a117 Content-Type: application/json Content-Length: 20 Date: Thu, 18 Jun 2020 04:31:50 GMT Connection: keep-alive {"Status":"pending"}