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.
Escribir 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 escribir instantáneas incrementales:
-
Utilice la acción StartSnapshot y especifique un ID de instantánea principal para iniciar una instantánea como instantánea incremental de una existente u omita el ID de instantánea principal para iniciar una nueva instantánea. Esta acción devuelve el nuevo ID de instantánea, que está en estado pendiente.
-
Utilice la acción PutSnapshotBlock y especifique el ID de la instantánea pendiente para agregarle datos en forma de bloques individuales. Debe especificar una suma de comprobación de codificación Base64 SHA256 para el bloque de datos transmitido. El servicio calcula la suma de comprobación de los datos recibidos y la valida con la suma de comprobación especificada. La acción devuelve un error si las sumas de comprobación no coinciden.
-
Cuando haya terminado de agregar datos a la instantánea pendiente, utilice la acción CompleteSnapshot para iniciar un flujo de trabajo asíncrono que selle la instantánea y la mueva a un estado completado.
Repita estos pasos para crear una nueva instantánea incremental utilizando la instantánea creada anteriormente como principal.
Por ejemplo, en el siguiente diagrama, la instantánea A es la primera nueva instantánea iniciada. La instantánea A se utiliza como instantánea principal para iniciar la instantánea B. La instantánea B se utiliza como instantánea principal para iniciar y crear la instantánea C. Las instantáneas A, B y C son instantáneas incrementales. La instantánea A se utiliza para crear el volumen 1 de EBS. La instantánea D se crea a partir del volumen 1 de EBS. La instantánea D es una instantánea incremental de A; no es una instantánea incremental de B o C.
En los siguientes ejemplos, se muestra cómo escribir instantáneas mediante las API directas de EBS.
Iniciar una instantánea
- AWS CLI
-
El siguiente comando de ejemplo start-snapshot inicia una instantánea de 8
GiB, utilizando la instantánea snap-123EXAMPLE1234567
como instantánea principal. La nueva instantánea será una instantánea incremental de la instantánea principal. La instantánea se mueve a un estado de error si no hay solicitudes PUT o completas realizadas para la instantánea dentro del periodo de tiempo de espera de 60
minutos especificado. El token de cliente 550e8400-e29b-41d4-a716-446655440000
garantiza la idempotencia de la solicitud. Si se omite el token de cliente, el SDK de AWS genera automáticamente uno para usted. Para obtener más información acerca de la idempotencia, consulte Garantizar idempotencia en las solicitudes de la API de StartSnapshot.
aws ebs start-snapshot --volume-size 8
--parent-snapshot snap-123EXAMPLE1234567
--timeout 60
--client-token 550e8400-e29b-41d4-a716-446655440000
La siguiente respuesta de ejemplo al comando anterior muestra el ID de la instantánea, el ID de la cuenta de AWS, el estado, el tamaño del volumen en GiB y el tamaño de los bloques de la instantánea. La instantánea se inicia en un estado pending
. Especifique el ID de instantánea en los comandos put-snapshot-block
siguientes para escribir datos en la instantánea y, a continuación, utilice el comando complete-snapshot
para completar la instantánea y cambiar su estado a completed
.
{
"SnapshotId": "snap-0aaEXAMPLEe306d62",
"OwnerId": "111122223333",
"Status": "pending",
"VolumeSize": 8,
"BlockSize": 524288
}
- AWS API
-
La siguiente solicitud de ejemplo de StartSnapshot inicia una instantánea de 8
GiB, utilizando la instantánea snap-123EXAMPLE1234567
como instantánea principal. La nueva instantánea será una instantánea incremental de la instantánea principal. La instantánea se mueve a un estado de error si no hay solicitudes PUT o completas realizadas para la instantánea dentro del periodo de tiempo de espera de 60
minutos especificado. El token de cliente 550e8400-e29b-41d4-a716-446655440000
garantiza la idempotencia de la solicitud. Si se omite el token de cliente, el SDK de AWS genera automáticamente uno para usted. Para obtener más información acerca de la idempotencia, consulte Garantizar idempotencia en las solicitudes de la API de StartSnapshot.
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 siguiente respuesta de ejemplo a la solicitud anterior muestra el ID de la instantánea, el ID de la cuenta de AWS, el estado, el tamaño del volumen en GiB y el tamaño de los bloques de la instantánea. La instantánea se inicia en un estado pendiente. Especifique el ID de instantánea en una solicitud PutSnapshotBlocks
posterior para escribir datos en la instantánea.
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
}
Inclusión de datos en una instantánea
- AWS CLI
-
El siguiente comando de ejemplo put-snapshot escribe 524288
Bytes de datos para bloquear el índice 1000
en la instantánea snap-0aaEXAMPLEe306d62
. La suma de comprobación QOD3gmEQOXATfJx2Aa34W4FU2nZGyXfqtsUuktOw8DM=
codificada en Base64 se generó utilizando el algoritmo SHA256
. Los datos que se transmiten están en el archivo /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
La respuesta de ejemplo siguiente para el comando anterior confirma la longitud de los datos, la suma de comprobación y el algoritmo de suma de comprobación para los datos recibidos por el servicio.
{
"DataLength": "524288",
"Checksum": "QOD3gmEQOXATfJx2Aa34W4FU2nZGyXfqtsUuktOw8DM=",
"ChecksumAlgorithm": "SHA256"
}
- AWS API
-
La siguiente solicitud de ejemplo de PutSnapshot escribe 524288
Bytes de datos para bloquear el índice 1000
en la instantánea snap-052EXAMPLEc85d8dd
. La suma de comprobación QOD3gmEQOXATfJx2Aa34W4FU2nZGyXfqtsUuktOw8DM=
codificada en Base64 se generó utilizando el algoritmo SHA256
. Los datos se transmiten en el cuerpo de la solicitud y se representan como BlockData
en el siguiente ejemplo.
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 siguiente respuesta de ejemplo para la solicitud anterior confirma la longitud de los datos, la suma de comprobación y el algoritmo de suma de comprobación para los datos recibidos por el servicio.
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
{}
Completar una instantánea
- AWS CLI
-
El siguiente comando de ejemplo complete-snapshot completa la instantánea snap-0aaEXAMPLEe306d62
. El comando especifica que 5
bloques se escribieron en la instantánea. La suma de comprobación 6D3nmwi5f2F0wlh7xX8QprrJBFzDX8aacdOcA3KCM3c=
representa la suma de comprobación del conjunto completo de datos escritos en una instantánea. Para obtener más información acerca de las sumas de comprobación, consulte Usar sumas de comprobación de las API directas de EBS para validar los datos de las instantáneas anteriormente en esta guía.
aws ebs complete-snapshot --snapshot-id snap-0aaEXAMPLEe306d62
--changed-blocks-count 5
--checksum 6D3nmwi5f2F0wlh7xX8QprrJBFzDX8aacdOcA3KCM3c=
--checksum-algorithm SHA256
--checksum-aggregation-method LINEAR
A continuación, se muestra una respuesta de ejemplo para el comando anterior.
{
"Status": "pending"
}
- AWS API
-
El siguiente ejemplo Instantánea completa solicita la instantánea completa snap-052EXAMPLEc85d8dd
. El comando especifica que 5
bloques se escribieron en la instantánea. La suma de comprobación 6D3nmwi5f2F0wlh7xX8QprrJBFzDX8aacdOcA3KCM3c=
representa la suma de comprobación del conjunto completo de datos escritos en una instantánea.
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>
La siguiente es una respuesta de ejemplo para la solicitud 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"}