Leer instantáneas de Amazon EBS mediante las API directas de EBS - Amazon EBS

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Leer instantáneas de Amazon EBS mediante las API directas de EBS

En los siguientes pasos se describe cómo utilizar las API directas de EBS para leer instantáneas:

  1. Utilice la acción ListSnapshotBlocks para ver todos los índices de bloque y los tokens de bloque de los bloques de una instantánea. O utilice la acción ListChangedBlocks para ver solo los índices de bloque y los tokens de bloque de bloques que son diferentes entre dos instantáneas del mismo volumen y parentesco de instantánea. Estas acciones le ayudan a identificar los tokens de bloque y los índices de bloque de bloques para los que es posible que desee obtener datos.

  2. Utilice la acción GetSnapshotBlock y especifique el índice de bloque y el token de bloque del bloque para el que desea obtener datos.

nota

No puede utilizar las API directas de EBS con las instantáneas archivadas.

En los siguientes ejemplos, se muestra cómo leer instantáneas mediante las API directas de EBS.

Listado de bloques en una instantánea

AWS CLI

El siguiente comando de ejemplo list-snapshot-blocks devuelve los índices de bloque y los tokens de bloque de bloques que están en la instantánea snap-0987654321. El parámetro --starting-block-index limita los resultados a índices de bloque mayores que 1000 y el parámetro --max-results limita los resultados a los primeros 100 bloques.

aws ebs list-snapshot-blocks --snapshot-id snap-0987654321 --starting-block-index 1000 --max-results 100

La siguiente respuesta de ejemplo para el comando anterior enumera los índices de bloque y los tokens de bloque en la instantánea. Utilice el comando get-snapshot-block y especifique el índice de bloque y el token de bloque del bloque para el que desea obtener datos. Los tokens de bloque son válidos hasta el tiempo de caducidad indicado.

{ "Blocks": [ { "BlockIndex": 1001, "BlockToken": "AAABAV3/PNhXOynVdMYHUpPsetaSvjLB1dtIGfbJv5OJ0sX855EzGTWos4a4" }, { "BlockIndex": 1002, "BlockToken": "AAABATGQIgwr0WwIuqIMjCA/Sy7e/YoQFZsHejzGNvjKauzNgzeI13YHBfQB" }, { "BlockIndex": 1007, "BlockToken": "AAABAZ9CTuQtUvp/dXqRWw4d07eOgTZ3jvn6hiW30W9duM8MiMw6yQayzF2c" }, { "BlockIndex": 1012, "BlockToken": "AAABAQdzxhw0rVV6PNmsfo/YRIxo9JPR85XxPf1BLjg0Hec6pygYr6laE1p0" }, { "BlockIndex": 1030, "BlockToken": "AAABAaYvPax6mv+iGWLdTUjQtFWouQ7Dqz6nSD9L+CbXnvpkswA6iDID523d" }, { "BlockIndex": 1031, "BlockToken": "AAABATgWZC0XcFwUKvTJbUXMiSPg59KVxJGL+BWBClkw6spzCxJVqDVaTskJ" }, ... ], "ExpiryTime": 1576287332.806, "VolumeSize": 32212254720, "BlockSize": 524288 }
AWS API

La siguiente solicitud de ejemplo ListSnapshotBlocks devuelve los índices de bloque y los tokens de bloque de bloques que están en la instantánea snap-0acEXAMPLEcf41648. El parámetro startingBlockIndex limita los resultados a índices de bloque mayores que 1000 y el parámetro maxResults limita los resultados a los primeros 100 bloques.

GET /snapshots/snap-0acEXAMPLEcf41648/blocks?maxResults=100&startingBlockIndex=1000 HTTP/1.1 Host: ebs.us-east-2.amazonaws.com Accept-Encoding: identity User-Agent: <User agent parameter> X-Amz-Date: 20200617T231953Z Authorization: <Authentication parameter>

La siguiente respuesta de ejemplo para la solicitud anterior enumera los índices de bloque y los tokens de bloque en la instantánea. Utilice la acción GetSnapshotBlock y especifique el índice de bloque y el token de bloque del bloque para el que desea obtener datos. Los tokens de bloque son válidos hasta el tiempo de caducidad indicado.

HTTP/1.1 200 OK x-amzn-RequestId: d6e5017c-70a8-4539-8830-57f5557f3f27 Content-Type: application/json Content-Length: 2472 Date: Wed, 17 Jun 2020 23:19:56 GMT Connection: keep-alive { "BlockSize": 524288, "Blocks": [ { "BlockIndex": 0, "BlockToken": "AAUBAcuWqOCnDNuKle11s7IIX6jp6FYcC/q8oT93913HhvLvA+3JRrSybp/0" }, { "BlockIndex": 1536, "BlockToken": "AAUBAWudwfmofcrQhGVlLwuRKm2b8ZXPiyrgoykTRC6IU1NbxKWDY1pPjvnV" }, { "BlockIndex": 3072, "BlockToken": "AAUBAV7p6pC5fKAC7TokoNCtAnZhqq27u6YEXZ3MwRevBkDjmMx6iuA6tsBt" }, { "BlockIndex": 3073, "BlockToken": "AAUBAbqt9zpqBUEvtO2HINAfFaWToOwlPjbIsQOlx6JUN/0+iMQl0NtNbnX4" }, ... ], "ExpiryTime": 1.59298379649E9, "VolumeSize": 3 }

Listado de bloques que son diferentes entre dos instantáneas

Tenga en cuenta lo siguiente al realizar solicitudes paginadas para enumerar los bloques modificados entre dos instantáneas:

  • La respuesta puede incluir una o varias matrices ChangedBlocks vacías. Por ejemplo:

    • Instantánea 1: instantánea completa con 1000 bloques con índices de bloques 0 - 999.

    • Instantánea 2: instantánea incremental con solo un bloque modificado con un índice de bloques 999.

    Listar los bloques modificados para estas instantáneas con StartingBlockIndex = 0 y MaxResults = 100 devuelve una matriz vacía de ChangedBlocks. Debe solicitar los resultados restantes mediante nextToken hasta que devuelva el bloque modificado en el décimo conjunto de resultados, el cual incluye bloques con índices de bloque 900 - 999.

  • La respuesta puede omitir bloques no escritos en las instantáneas. Por ejemplo:

    • Instantánea 1: instantánea completa con 1000 bloques con índices de bloques 2000 - 2999.

    • Instantánea 2: instantánea incremental con solo un bloque modificado con el índice de bloques 2000.

    Al listar los bloques modificados para estas instantáneas con StartingBlockIndex = 0 y MaxResults = 100, la respuesta omite los índices de bloque 0 - 1999 e incluye el índice de bloques 2000. La respuesta no incluirá matrices ChangedBlocks vacías.

AWS CLI

El siguiente comando de ejemplo list-changed-blocks devuelve los índices de bloque y los tokens de bloque de bloques que son diferentes entre instantáneas snap-1234567890 y snap-0987654321. El parámetro --starting-block-index limita los resultados a índices de bloque mayores que 0 y el parámetro --max-results limita los resultados a los primeros 500 bloques.

aws ebs list-changed-blocks --first-snapshot-id snap-1234567890 --second-snapshot-id snap-0987654321 --starting-block-index 0 --max-results 500

La respuesta de ejemplo siguiente del comando anterior muestra que los índices de bloque 0, 6000, 6001, 6002 y 6003 son diferentes entre las dos instantáneas. Además, los índices de bloque 6001, 6002 y 6003 solo existen en el primer ID de instantánea especificado y no en el segundo ID de instantánea, porque no hay un segundo token de bloque en la respuesta.

Utilice el comando get-snapshot-block y especifique el índice de bloque y el token de bloque del bloque para el que desea obtener datos. Los tokens de bloque son válidos hasta el tiempo de caducidad indicado.

{ "ChangedBlocks": [ { "BlockIndex": 0, "FirstBlockToken": "AAABAVahm9SO60Dyi0ORySzn2ZjGjW/KN3uygGlS0QOYWesbzBbDnX2dGpmC", "SecondBlockToken": "AAABAf8o0o6UFi1rDbSZGIRaCEdDyBu9TlvtCQxxoKV8qrUPQP7vcM6iWGSr" }, { "BlockIndex": 6000, "FirstBlockToken": "AAABAbYSiZvJ0/R9tz8suI8dSzecLjN4kkazK8inFXVintPkdaVFLfCMQsKe", "SecondBlockToken": "AAABAZnqTdzFmKRpsaMAsDxviVqEI/3jJzI2crq2eFDCgHmyNf777elD9oVR" }, { "BlockIndex": 6001, "FirstBlockToken": "AAABASBpSJ2UAD3PLxJnCt6zun4/T4sU25Bnb8jB5Q6FRXHFqAIAqE04hJoR" }, { "BlockIndex": 6002, "FirstBlockToken": "AAABASqX4/NWjvNceoyMUljcRd0DnwbSwNnes1UkoP62CrQXvn47BY5435aw" }, { "BlockIndex": 6003, "FirstBlockToken": "AAABASmJ0O5JxAOce25rF4P1sdRtyIDsX12tFEDunnePYUKOf4PBROuICb2A" }, ... ], "ExpiryTime": 1576308931.973, "VolumeSize": 32212254720, "BlockSize": 524288, "NextToken": "AAADARqElNng/sV98CYk/bJDCXeLJmLJHnNSkHvLzVaO0zsPH/QM3Bi3zF//O6Mdi/BbJarBnp8h" }
AWS API

La siguiente solicitud de ejemplo ListChangedBlocks devuelve los índices de bloque y los tokens de bloque de los bloques que son distintos entre las instantáneas snap-0acEXAMPLEcf41648 y snap-0c9EXAMPLE1b30e2f. El parámetro startingBlockIndex limita los resultados a índices de bloque mayores que 0 y el parámetro maxResults limita los resultados a los primeros 500 bloques.

GET /snapshots/snap-0c9EXAMPLE1b30e2f/changedblocks?firstSnapshotId=snap-0acEXAMPLEcf41648&maxResults=500&startingBlockIndex=0 HTTP/1.1 Host: ebs.us-east-2.amazonaws.com Accept-Encoding: identity User-Agent: <User agent parameter> X-Amz-Date: 20200617T232546Z Authorization: <Authentication parameter>

La respuesta de ejemplo siguiente para la solicitud anterior muestra que los índices de bloque 0, 3072, 6002 y 6003 son diferentes entre las dos instantáneas. Además, los índices de bloque 6002 y 6003 solo existen en el primer ID de instantánea especificado y no en el segundo ID de instantánea, porque no hay un segundo token de bloque en la respuesta.

Utilice la acción GetSnapshotBlock y especifique el índice de bloque y el token de bloque del bloque para el que desea obtener los datos. Los tokens de bloque son válidos hasta el tiempo de caducidad indicado.

HTTP/1.1 200 OK x-amzn-RequestId: fb0f6743-6d81-4be8-afbe-db11a5bb8a1f Content-Type: application/json Content-Length: 1456 Date: Wed, 17 Jun 2020 23:25:47 GMT Connection: keep-alive { "BlockSize": 524288, "ChangedBlocks": [ { "BlockIndex": 0, "FirstBlockToken": "AAUBAVaWqOCnDNuKle11s7IIX6jp6FYcC/tJuVT1GgP23AuLntwiMdJ+OJkL", "SecondBlockToken": "AAUBASxzy0Y0b33JVRLoYm3NOresCxn5RO+HVFzXW3Y/RwfFaPX2Edx8QHCh" }, { "BlockIndex": 3072, "FirstBlockToken": "AAUBAcHp6pC5fKAC7TokoNCtAnZhqq27u6fxRfZOLEmeXLmHBf2R/Yb24MaS", "SecondBlockToken": "AAUBARGCaufCqBRZC8tEkPYGGkSv3vqvOjJ2xKDi3ljDFiytUxBLXYgTmkid" }, { "BlockIndex": 6002, "FirstBlockToken": "AAABASqX4/NWjvNceoyMUljcRd0DnwbSwNnes1UkoP62CrQXvn47BY5435aw" }, { "BlockIndex": 6003, "FirstBlockToken": "AAABASmJ0O5JxAOce25rF4P1sdRtyIDsX12tFEDunnePYUKOf4PBROuICb2A" }, ... ], "ExpiryTime": 1.592976647009E9, "VolumeSize": 3 }

Obtener datos de bloque de una instantánea

AWS CLI

El siguiente comando de ejemplo get-snapshot-block devuelve los datos en el índice de bloque 6001 con token de bloque AAABASBpSJ2UAD3PLxJnCt6zun4/T4sU25Bnb8jB5Q6FRXHFqAIAqE04hJoR, en la instantánea snap-1234567890. Los datos binarios se envían al archivo data en el directorio C:\Temp de un equipo con Windows. Si ejecuta el comando en un equipo Linux o Unix, reemplace la ruta de salida por /tmp/data para enviar los datos al archivo data en el directorio /tmp.

aws ebs get-snapshot-block --snapshot-id snap-1234567890 --block-index 6001 --block-token AAABASBpSJ2UAD3PLxJnCt6zun4/T4sU25Bnb8jB5Q6FRXHFqAIAqE04hJoR C:/Temp/data

La respuesta de ejemplo siguiente para el comando anterior muestra el tamaño de los datos devueltos, la suma de comprobación para validar los datos y el algoritmo de la suma de comprobación. Los datos binarios se guardan automáticamente en el directorio y archivo especificados en el comando de la solicitud.

{ "DataLength": "524288", "Checksum": "cf0Y6/Fn0oFa4VyjQPOa/iD0zhTflPTKzxGv2OKowXc=", "ChecksumAlgorithm": "SHA256" }
AWS API

La siguiente solicitud de ejemplo GetSnapshotBlock devuelve los datos del índice de bloque 3072 con token de bloque AAUBARGCaufCqBRZC8tEkPYGGkSv3vqvOjJ2xKDi3ljDFiytUxBLXYgTmkid, en la instantánea snap-0c9EXAMPLE1b30e2f.

GET /snapshots/snap-0c9EXAMPLE1b30e2f/blocks/3072?blockToken=AAUBARGCaufCqBRZC8tEkPYGGkSv3vqvOjJ2xKDi3ljDFiytUxBLXYgTmkid HTTP/1.1 Host: ebs.us-east-2.amazonaws.com Accept-Encoding: identity User-Agent: <User agent parameter> X-Amz-Date: 20200617T232838Z Authorization: <Authentication parameter>

La siguiente respuesta de ejemplo para la solicitud anterior muestra el tamaño de los datos devueltos, la suma de comprobación para validar los datos y el algoritmo utilizado para generar la suma de comprobación. Los datos binarios se transmiten en el cuerpo de la respuesta y se representan como BlockData en el siguiente ejemplo.

HTTP/1.1 200 OK x-amzn-RequestId: 2d0db2fb-bd88-474d-a137-81c4e57d7b9f x-amz-Data-Length: 524288 x-amz-Checksum: Vc0yY2j3qg8bUL9I6GQuI2orTudrQRBDMIhcy7bdEsw= x-amz-Checksum-Algorithm: SHA256 Content-Type: application/octet-stream Content-Length: 524288 Date: Wed, 17 Jun 2020 23:28:38 GMT Connection: keep-alive BlockData