為什麼建立增量 EBS 快照需要與建立完整 EBS 快照相同的時間?

1 分的閱讀內容
0

我想知道為什麼建立 Amazon Elastic Block Store (Amazon EBS) 磁碟區的增量快照需要與完整快照相同的時間。

解決方法

快照建立時間取決於下列因素:

  • EBS 磁碟區的大小。
  • 自上次快照以來,區塊數量已變更 (delta)。
  • EBS 磁碟區上的工作負載。
  • 建立快照期間,對 EBS 磁碟區的作用中輸入/輸出 (I/O)。如果在發出建立呼叫時,磁碟區上同時存在輸入/輸出作業,則會取消快照的優先級。
  • 快照計時,因為頻寬是在後端伺服器共用的。
  • 自上次拍攝快照以來的時間。

根據設計,EBS 快照會顯示備份的完整大小,而不是增量大小。第一個快照是資料的完整副本。後續快照為增量,其中包含最近快照中已變更的區塊。後續快照會顯示完整大小,因為可以從任何 EBS 快照還原新的磁碟區,即使其設計為增量。每個增量快照都會參考後端中的其他快照。

例如,如果自第一個快照起修改了所有區塊,則建立快照花費的時間可能費與完整快照相同。這是因為參考第一個快照的所有區塊都會被修改。

自上次快照以來的變更數目越多,建立後續快照所需的時間就越長。

建立時間也取決於其他基礎架構因素,例如基礎儲存區子系統的負載。無法預測建立 EBS 快照可能需要多長時間或加速此程序。

如需詳細資訊,請參閱快照的運作方式

檢查快照的實際大小

1.    執行 list-snapshot-blocks AWS Command Line Interface (AWS CLI) 命令。在下列範例命令中,將 value 替換成快照的 ID。

$ aws ebs list-snapshot-blocks --snapshot-id value

**注意:**如果您在執行 AWS CLI 命令時收到錯誤訊息,請確定您使用的是最新版本的 AWS CLI

list-snapshot-blocks命令列出了該快照中的所有數據塊與區塊索引和區塊令牌。請注意,API 不會直接為您提供區塊總數。您必須根據區塊令牌或區塊索引來計算返回的區塊數。

list-snapshot-blocks 命令會在單一結果中最多傳回 10,000 個區塊。如果您的快照有超過 10,000 個區塊,則該命令還會傳回 NextToken

執行下列命令以使用權杖擷取下一頁結果。在下列範例命令中,將 value 替換成快照的 ID。

$ aws ebs list-snapshot-blocks --snapshot-id <value> --next-token value

2.    對區塊計數後,用總區塊數乘以 512 (每個區塊的大小為 512 KiB) 來計算數據大小。

範例

快照中的資料大小 (以 KiB 為單位) = 總區塊數* 512

縮短快照建立時間

最佳實務是頻繁擷取磁碟區快照。頻繁建立快照表示磁碟區上變更的區塊較小,因此可縮短建立快照的時間。若要自動建立和刪除快照,請使用 Amazon Data Lifecycle ManagerAWS Backup

相關資訊

為什麼我的 Amazon Elastic Compute Cloud (Amazon EC2) AMI 或 EBS 快照建立緩慢?

AWS 官方
AWS 官方已更新 10 個月前