本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
下列步驟說明如何使用 EBS 直接 API 寫入增量快照:
-
使用 StartSnapShot 動作並指定父系快照 ID,將快照啟動為現有快照的增量快照,或省略父系快照 ID 以啟動新快照。此動作會傳回新的快照 ID,此 ID 處於待定狀態。
-
使用 PutSnapshotBlock 動作,並指定待定快照的 ID,以個別區塊的形式新增資料。您必須為傳輸的資料區塊指定 Base64 編碼的 SHA256 檢查總和。服務會運算所接收資料的檢查總和,並使用您指定的檢查總和進行驗證。如果檢查總和不相符,該動作就會失敗。
-
當您完成將資料新增至待定的快照時,請使用 CompleteSnapshot 動作來啟動密封快照的非同步工作流程,並將其移至完成狀態。
重複這些步驟,以使用先前建立的快照做為父系快照來建立新的增量快照。
例如,在下圖中,快照 A 是第一個啟動的新快照。系統將快照 A 作為啟動快照 B 的父系快照。將快照 B 作為啟動和建立快照的父系快照 C。快照 A、B 和 C 是增量快照。快照 A 用於建立 EBS 磁碟區 1。快照 D 是從 EBS 磁碟區 1 建立的快照。快照 D 是 A 的增量快照;它不是 B 或 C 的增量快照。

下列範例示範如何使用 EBS 直接 API 寫入快照。
啟動快照
下列 start-snapshot8
GiB 快照,並使用快照 snap-123EXAMPLE1234567
做為父系快照。新快照將是父系快照的增量快照。如果在指定的 60
分鐘逾時期間內沒有對快照提出放置或完成請求,則快照會移至錯誤狀態。550e8400-e29b-41d4-a716-446655440000
用戶端字符會確保請求的冪等性。如果省略用戶端字符,軟體 AWS 開發套件會自動為您產生一個字符。如需取得冪等性的詳細資訊,請參閱 確保 StartSnapshot API 請求中的冪等性。
aws ebs start-snapshot --volume-size
8
--parent-snapshotsnap-123EXAMPLE1234567
--timeout60
--client-token550e8400-e29b-41d4-a716-446655440000
下列針對先前命令的回應範例顯示快照 ID、 AWS
帳戶 ID、狀態、以 GiB 為單位的磁碟區大小,以及快照中區塊的大小。快照會以 pending
狀態啟動。在後續 put-snapshot-block
命令中指定快照 ID,將資料寫入快照,然後使用 complete-snapshot
命令完成快照並將其狀態變更為 completed
。
{
"SnapshotId": "snap-0aaEXAMPLEe306d62",
"OwnerId": "111122223333",
"Status": "pending",
"VolumeSize": 8,
"BlockSize": 524288
}
將資料放入快照中
下列 put-snapshot-block524288
位元組,以封鎖快照 1000
上的索引snap-0aaEXAMPLEe306d62
。Base64 編碼的 QOD3gmEQOXATfJx2Aa34W4FU2nZGyXfqtsUuktOw8DM=
檢查總和是使用 SHA256
演算法產生的。傳輸的資料位於 /tmp/data
檔案中。
aws ebs put-snapshot-block --snapshot-id
snap-0aaEXAMPLEe306d62
--block-index1000
--data-length524288
--block-data/tmp/data
--checksumQOD3gmEQOXATfJx2Aa34W4FU2nZGyXfqtsUuktOw8DM=
--checksum-algorithmSHA256
前一個命令的下列範例回應會針對服務接收的資料,確認資料長度、檢查總和演算法。
{
"DataLength": "524288",
"Checksum": "QOD3gmEQOXATfJx2Aa34W4FU2nZGyXfqtsUuktOw8DM=",
"ChecksumAlgorithm": "SHA256"
}
完成快照
下列 complete-snapshotsnap-0aaEXAMPLEe306d62
。該命令會指定 5
區塊已寫入快照。6D3nmwi5f2F0wlh7xX8QprrJBFzDX8aacdOcA3KCM3c=
檢查總和代表寫入快照的完整資料集的檢查總和。如需有關檢查總和的詳細資訊,請參閱本指南前述的 使用 EBS 直接 APIs 檢查總和來驗證快照資料。
aws ebs complete-snapshot --snapshot-id
snap-0aaEXAMPLEe306d62
--changed-blocks-count5
--checksum6D3nmwi5f2F0wlh7xX8QprrJBFzDX8aacdOcA3KCM3c=
--checksum-algorithmSHA256
--checksum-aggregation-methodLINEAR
以下是前一個命令的範例回應。
{
"Status": "pending"
}