Escreva EBS instantâneos da Amazon com EBS o Direct APIs - Amazon EBS

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Escreva EBS instantâneos da Amazon com EBS o Direct APIs

As etapas a seguir descrevem como usar o EBS direct APIs para gravar instantâneos incrementais:

  1. Use a StartSnapshot ação e especifique uma ID de instantâneo principal para iniciar um instantâneo como um instantâneo incremental de um existente ou omita a ID de instantâneo pai para iniciar um novo instantâneo. Essa ação retorna o novo ID de snapshot que está em estado pendente.

  2. Use a PutSnapshotBlock ação e especifique a ID do instantâneo pendente para adicionar dados a ele na forma de blocos individuais. Você deve especificar uma SHA256 soma de verificação codificada em Base64 para o bloco de dados transmitidos. O serviço calcula a soma de verificação dos dados recebidos e os valida com relação à soma de verificação especificada. A ação falhará se as somas de verificação não corresponderem.

  3. Quando terminar de adicionar dados ao instantâneo pendente, use a CompleteSnapshot ação para iniciar um fluxo de trabalho assíncrono que sela o instantâneo e o move para um estado concluído.

Repita essas etapas para criar um novo snapshot incremental usando o snapshot criado anteriormente como pai.

Por exemplo, no diagrama a seguir, o snapshot A é o primeiro novo snapshot iniciado. O snapshot A é usado como snapshot pai para iniciar o snapshot B. O snapshot B é usado como snapshot pai para iniciar e criar o snapshot C. Os snapshots A, B e C são snapshots incrementais. O instantâneo A é usado para criar o EBS volume 1. O snapshot D é criado a partir do EBS volume 1. O snapshot D é um snapshot incremental de A; ele não é um snapshot incremental de B nem C.

EBSdirect APIs usado para criar instantâneos incrementais.

Os exemplos a seguir mostram como gravar instantâneos usando o EBS directAPIs.

Iniciar um snapshot

AWS CLI

O comando de exemplo start-snapshot a seguir inicia um snapshot 8 GiB usando o snapshot snap-123EXAMPLE1234567 como snapshot pai. O novo snapshot será um snapshot incremental do snapshot pai. O snapshot será movido para um estado de erro se não houver solicitações put ou complete feitas para o snapshot dentro do período limite especificado de 60 minutos. O token 550e8400-e29b-41d4-a716-446655440000 do cliente garante idempotência para a solicitação. Se o token do cliente for omitido, ele AWS SDK gerará automaticamente um para você. Para obter mais informações sobre idempotência, consulte Garanta a idempotência nas solicitações StartSnapshot API.

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

O exemplo de resposta a seguir para o comando anterior mostra o ID do snapshot, o ID da conta da AWS , o status, o tamanho do volume em GiB e o tamanho dos blocos no snapshot. O snapshot é iniciado em estado pending. Especifique o ID do snapshot nos comandos put-snapshot-block subsequentes para gravar dados no snapshot, depois, use o comando complete-snapshot para concluir o snapshot e alterar seu status para completed.

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

O StartSnapshotexemplo de solicitação a seguir inicia um instantâneo de 8 GiB, usando o instantâneo snap-123EXAMPLE1234567 como o instantâneo pai. O novo snapshot será um snapshot incremental do snapshot pai. O snapshot será movido para um estado de erro se não houver solicitações put ou complete feitas para o snapshot dentro do período limite especificado de 60 minutos. O token 550e8400-e29b-41d4-a716-446655440000 do cliente garante idempotência para a solicitação. Se o token do cliente for omitido, ele AWS SDK gerará automaticamente um para você. Para obter mais informações sobre idempotência, consulte Garanta a idempotência nas solicitações 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 }

O exemplo de resposta a seguir para a solicitação anterior mostra o ID do snapshot, o ID da conta da AWS , o status, o tamanho do volume em GiB e o tamanho dos blocos no snapshot. O snapshot é iniciado em estado pendente. Especifique o ID do snapshot em uma solicitação PutSnapshotBlocks subsequente para gravar dados no 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 }

Inserir dados em um snapshot

AWS CLI

O comando de exemplo put-snapshot a seguir grava 524288 bytes de dados no índice de bloco 1000 no snapshot snap-0aaEXAMPLEe306d62. A soma de verificação QOD3gmEQOXATfJx2Aa34W4FU2nZGyXfqtsUuktOw8DM= codificada pelo Base64 foi gerada com o uso do algoritmo SHA256. Os dados transmitidos ficam no arquivo /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

A resposta de exemplo a seguir para o comando anterior confirma o comprimento dos dados, a soma de verificação e o algoritmo de soma de verificação para os dados recebidos pelo serviço.

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

O PutSnapshotexemplo a seguir grava 524288 bytes de dados 1000 no índice de blocos no snapshotsnap-052EXAMPLEc85d8dd. A soma de verificação QOD3gmEQOXATfJx2Aa34W4FU2nZGyXfqtsUuktOw8DM= codificada pelo Base64 foi gerada com o uso do algoritmo SHA256. Os dados são transmitidos no corpo da solicitação e são representados como BlockData no exemplo a seguir.

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

Veja a seguir a resposta de exemplo para a solicitação anterior, que confirma o comprimento dos dados, a soma de verificação e o algoritmo de soma de verificação para os dados recebidos pelo serviço.

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

Concluir um snapshot

AWS CLI

O comando de exemplo complete-snapshot a seguir conclui o snapshot snap-0aaEXAMPLEe306d62. O comando especifica que 5 blocos foram gravados no snapshot. A soma de verificação 6D3nmwi5f2F0wlh7xX8QprrJBFzDX8aacdOcA3KCM3c= representa a soma de verificação para o conjunto completo de dados gravados em um snapshot. Para obter mais informações sobre somas de verificação, consulte Use APIs somas de verificação EBS diretas para validar dados de instantâneos anteriormente neste guia.

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

Veja a seguir um exemplo de resposta para o comando anterior.

{ "Status": "pending" }
AWS API

O CompleteSnapshotexemplo de solicitação a seguir conclui o snapshotsnap-052EXAMPLEc85d8dd. O comando especifica que 5 blocos foram gravados no snapshot. A soma de verificação 6D3nmwi5f2F0wlh7xX8QprrJBFzDX8aacdOcA3KCM3c= representa a soma de verificação para o conjunto completo de dados gravados em um 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>

Veja a seguir um exemplo de resposta para a solicitação anterior.

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