Menulis snapshot dengan API langsung EBS - Amazon Elastic Compute Cloud

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Menulis snapshot dengan API langsung EBS

Langkah-langkah berikut menjelaskan cara menggunakan API langsung EBS untuk menulis snapshot inkremental:

  1. Gunakan StartSnapshot tindakan dan tentukan ID snapshot induk untuk memulai snapshot sebagai snapshot tambahan dari yang sudah ada, atau hilangkan ID snapshot induk untuk memulai snapshot baru. Tindakan ini mengembalikan ID snapshot baru, yang berada dalam status tertunda.

  2. Gunakan PutSnapshotBlock tindakan dan tentukan ID snapshot yang tertunda untuk menambahkan data ke dalamnya dalam bentuk blok individual. Anda harus menentukan checksum SHA256 yang dienkode Base64 untuk blok data yang ditransmisikan. Layanan ini menghitung checksum data yang diterima dan memvalidasinya dengan checksum yang Anda tentukan. Tindakan gagal jika checksum tidak cocok.

  3. Setelah selesai menambahkan data ke snapshot yang tertunda, gunakan tindakan CompleteSnapshot untuk memulai alur kerja asinkronous yang menyegel snapshot dan mengubah statusnya menjadi selesai.

Ulangi langkah-langkah ini untuk membuat snapshot inkremental baru menggunakan snapshot yang dibuat sebelumnya sebagai induk.

Misalnya, dalam diagram berikut, snapshot A adalah snapshot baru pertama yang dimulai. Snapshot A digunakan sebagai snapshot induk untuk memulai snapshot B. Snapshot B digunakan sebagai snapshot induk untuk memulai dan membuat snapshot C. Snapshot A, B, dan C adalah snapshot inkremental. Snapshot A digunakan untuk membuat volume EBS 1. Snapshot D dibuat dari volume EBS 1. Snapshot D adalah snapshot inkremental A; bukan snapshot inkremental dari B atau C.


        API langsung EBS digunakan untuk membuat snapshot inkremental.

Contoh berikut menunjukkan cara menulis snapshot menggunakan API langsung EBS.

Mulai snapshot

AWS CLI

Contoh perintah start-snapshot berikut memulai snapshot 8 GiB, menggunakan snapshot snap-123EXAMPLE1234567 sebagai snapshot induk. Snapshot baru akan berupa snapshot inkremental dari snapshot induk. Snapshot berpindah ke status kesalahan jika tidak ada permintaan put atau complete yang dibuat untuk snapshot dalam periode waktu tunggu 60 menit yang ditentukan. Token klien 550e8400-e29b-41d4-a716-446655440000 memastikan idempotensi permintaan tersebut. Jika token klien dihilangkan, SDK AWS secara otomatis membuatkannya untuk Anda. Untuk informasi selengkapnya tentang idempotensi, lihat Idempotensi untuk API StartSnapshot .

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

Contoh respons berikut untuk perintah sebelumnya menunjukkan ID snapshot, ID akun AWS, status, ukuran volume dalam GiB, dan ukuran blok di snapshot. Snapshot dimulai dalam status pending. Tentukan ID snapshot di bagian perintah put-snapshot-block berikutnya untuk menuliskan data ke snapshot, lalu menggunakan perintah complete-snapshot untuk menyelesaikan snapshot dan mengubahnya status menjadi completed.

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

Permintaan StartSnapshotcontoh berikut memulai snapshot 8 GiB, menggunakan snapshot snap-123EXAMPLE1234567 sebagai snapshot induk. Snapshot baru akan berupa snapshot inkremental dari snapshot induk. Snapshot berpindah ke status kesalahan jika tidak ada permintaan put atau complete yang dibuat untuk snapshot dalam periode waktu tunggu 60 menit yang ditentukan. Token klien 550e8400-e29b-41d4-a716-446655440000 memastikan idempotensi permintaan tersebut. Jika token klien dihilangkan, SDK AWS secara otomatis membuatkannya untuk Anda. Untuk informasi selengkapnya tentang idempotensi, lihat Idempotensi untuk API 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 }

Contoh respons berikut untuk permintaan sebelumnya menunjukkan ID snapshot, ID akun AWS, status, ukuran volume dalam GiB, dan ukuran blok di snapshot. Snapshot dimulai dalam status tertunda. Tentukan ID snapshot di permintaan PutSnapshotBlocks berikutnya untuk menuliskan data ke 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 }

Menempatkan data ke dalam snapshot

AWS CLI

Contoh perintah berikut put-snapshot menulis 524288 Bita data untuk 1000 indeks blok pada snapshot snap-0aaEXAMPLEe306d62. Checksum QOD3gmEQOXATfJx2Aa34W4FU2nZGyXfqtsUuktOw8DM= berkode Base64 dibuat menggunakan algoritme SHA256. Data yang ditransmisikan terdapat di 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

Contoh respons untuk perintah sebelumnya berikut ini mengonfirmasi panjang data, checksum, dan algoritma checksum untuk data yang diterima oleh layanan.

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

PutSnapshotContoh permintaan berikut menulis 524288 Bytes data untuk memblokir indeks 1000 pada snapshotsnap-052EXAMPLEc85d8dd. Checksum QOD3gmEQOXATfJx2Aa34W4FU2nZGyXfqtsUuktOw8DM= dengan enkode Base64 dibuat menggunakan algoritma SHA256. Data ditransmisikan dalam badan permintaan dan direpresentasikan seperti BlockDatapada contoh berikut.

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

Contoh respons untuk permintaan sebelumnya berikut ini mengonfirmasi panjang data, checksum, dan algoritma checksum untuk data yang diterima oleh layanan.

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

Menyelesaikan snapshot

AWS CLI

Contoh perintah complete-snapshot berikut menyelesaikan snapshot snap-0aaEXAMPLEe306d62. Perintah menentukan bahwa 5 blok ditulis untuk snapshot. Checksum 6D3nmwi5f2F0wlh7xX8QprrJBFzDX8aacdOcA3KCM3c= mewakili checksum untuk set data lengkap yang ditulis ke snapshot. Untuk informasi selengkapnya tentang checksum, lihat Gunakan checksum sebelumnya di dalam panduan ini.

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

Berikut ini adalah contoh tanggapan untuk perintah sebelumnya.

{ "Status": "pending" }
AWS API

CompleteSnapshotContoh permintaan berikut melengkapi snapshotsnap-052EXAMPLEc85d8dd. Perintah menentukan bahwa 5 blok ditulis untuk snapshot. Checksum 6D3nmwi5f2F0wlh7xX8QprrJBFzDX8aacdOcA3KCM3c= merepresentasikan checksum untuk set data lengkap yang ditulis ke 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>

Berikut ini adalah contoh tanggapan untuk permintaan sebelumnya.

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