Scrivi istantanee con direct EBS APIs - Amazon EBS

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Scrivi istantanee con direct EBS APIs

I passaggi seguenti descrivono come utilizzare il EBS direct APIs per scrivere istantanee incrementali:

  1. Utilizzate l' StartSnapshot azione e specificate un ID snapshot principale per avviare un'istantanea come istantanea incrementale di un'istantanea esistente oppure omettete l'ID dello snapshot principale per iniziare una nuova istantanea. Questa operazione restituisce il nuovo ID snapshot, che è in sospeso.

  2. Utilizzate l' PutSnapshotBlock azione e specificate l'ID dell'istantanea in sospeso per aggiungervi dati sotto forma di singoli blocchi. È necessario specificare un checksum con codifica Base64 per il SHA256 blocco di dati trasmesso. Il servizio calcola il checksum dei dati ricevuti e lo convalida con il checksum specificato. L'operazione ha esito negativo se i checksum non corrispondono.

  3. Quando hai finito di aggiungere dati allo snapshot in sospeso, usa l' CompleteSnapshotazione per avviare un flusso di lavoro asincrono che sigilla l'istantanea e la sposta in uno stato completo.

Ripeti queste fasi per creare un nuovo snapshot incrementale utilizzando lo snapshot creato in precedenza come padre.

Nel diagramma seguente, ad esempio, lo snapshot A è il primo nuovo snapshot avviato. Lo snapshot A viene utilizzato come snapshot padre per avviare lo snapshot B. Lo snapshot B viene utilizzato come snapshot padre per avviare e creare lo snapshot C. Gli snapshot A, B e C sono snapshot incrementali. L'istantanea A viene utilizzata per creare il volume 1. EBS L'istantanea D viene creata dal EBS volume 1. Lo snapshot D è uno snapshot incrementale di A; non è uno snapshot incrementale di B o C.

EBSAPIsutilizzato direttamente per creare istantanee incrementali.

Gli esempi seguenti mostrano come scrivere istantanee usando la diretta. EBS APIs

Avvio di uno snapshot

AWS CLI

Il seguente comando di esempio start-snapshot avvia uno snapshot 8 GiB utilizzando lo snapshot snap-123EXAMPLE1234567 come snapshot padre. Il nuovo snapshot sarà uno snapshot incrementale dello snapshot padre. Lo snapshot viene impostato in stato di errore se non vengono effettuate richieste di inserimento o completamento per lo snapshot entro il periodo di timeout di 60 minuti specificato. Il token client 550e8400-e29b-41d4-a716-446655440000 garantisce l'idempotenza della richiesta. Se il token client viene omesso, ne genera AWS SDK automaticamente uno per te. Per ulteriori informazioni sull'idempotenza, consulta Idempotenza per StartSnapshot API.

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

La seguente risposta di esempio per il comando precedente mostra l'ID snapshot, l'ID account AWS , lo stato, la dimensione del volume in GiB e la dimensione dei blocchi dello snapshot. Lo snapshot al momento dell'avvio è nello stato pending. Specifica l'ID snapshot nei comandi put-snapshot-block successivi per scrivere i dati nello snapshot, quindi utilizza il comando complete-snapshot per completare lo snapshot e modificare lo stato come completed.

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

La seguente richiesta di StartSnapshotesempio avvia un'istantanea 8 GiB, utilizzando snapshot snap-123EXAMPLE1234567 come snapshot principale. Il nuovo snapshot sarà uno snapshot incrementale dello snapshot padre. Lo snapshot viene impostato in stato di errore se non vengono effettuate richieste di inserimento o completamento per lo snapshot entro il periodo di timeout di 60 minuti specificato. Il token client 550e8400-e29b-41d4-a716-446655440000 garantisce l'idempotenza della richiesta. Se il token client viene omesso, ne genera AWS SDK automaticamente uno per te. Per ulteriori informazioni sull'idempotenza, consulta Idempotenza per StartSnapshot API.

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 }

La seguente risposta di esempio per la richiesta precedente mostra l'ID snapshot, l'ID account AWS , lo stato, la dimensione del volume in GiB e la dimensione dei blocchi dello snapshot. Lo snapshot al momento dell'avvio è nello stato in sospeso. Specifica l'ID snapshot in una richiesta PutSnapshotBlocks successiva per scrivere i dati nello snapshot.

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 }

Inserimento dei dati in uno snapshot

AWS CLI

Il seguente comando di esempio put-snapshot scrive 524288 byte di dati nell'indice di blocco 1000 nello snapshot snap-0aaEXAMPLEe306d62. Il checksum QOD3gmEQOXATfJx2Aa34W4FU2nZGyXfqtsUuktOw8DM= con codifica Base64 è stato generato utilizzando l'algoritmo SHA256. I dati trasmessi si trovano nel file /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

Il seguente esempio di risposta per il comando precedente conferma la lunghezza dei dati, il checksum e l'algoritmo di checksum per i dati ricevuti dal servizio.

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

La seguente richiesta di PutSnapshotesempio scrive 524288 byte di dati per bloccare l'indice 1000 sull'istantanea. snap-052EXAMPLEc85d8dd Il checksum QOD3gmEQOXATfJx2Aa34W4FU2nZGyXfqtsUuktOw8DM= con codifica Base64 è stato generato utilizzando l'algoritmo SHA256. I dati vengono trasmessi nel corpo della richiesta e sono rappresentati come BlockData nel seguente esempio.

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

La seguente risposta di esempio per la richiesta precedente conferma la lunghezza dei dati, il checksum e l'algoritmo di checksum per i dati ricevuti dal servizio.

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

Completamento di uno snapshot

AWS CLI

Il seguente comando di esempio complete-snapshot completa lo snapshot snap-0aaEXAMPLEe306d62. Il comando specifica che 5 blocchi sono stati scritti nello snapshot. Il checksum 6D3nmwi5f2F0wlh7xX8QprrJBFzDX8aacdOcA3KCM3c= rappresenta il checksum per il set completo di dati scritti in uno snapshot. Per ulteriori informazioni sui checksum, consulta Utilizzo dei checksum in precedenza in questa guida.

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

Di seguito è riportata una risposta di esempio per il comando precedente.

{ "Status": "pending" }
AWS API

La seguente richiesta di CompleteSnapshotesempio completa l'istantaneasnap-052EXAMPLEc85d8dd. Il comando specifica che 5 blocchi sono stati scritti nello snapshot. Il checksum 6D3nmwi5f2F0wlh7xX8QprrJBFzDX8aacdOcA3KCM3c= rappresenta il checksum per il set completo di dati scritti in uno snapshot.

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>

Di seguito è riportato un esempio di risposta per la richiesta precedente.

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