为什么增量 EBS 快照的创建时间与完整 EBS 快照的创建时间相同?

1 分钟阅读
0

我想知道为什么 Amazon Elastic Block Store(Amazon EBS)卷的增量快照的创建时间与完整快照的创建时间相同。

解决方法

快照创建时间取决于以下因素:

  • EBS 卷的大小。
  • 自上次快照以来更改的块数(增量)。
  • EBS 卷上的工作负载。
  • 快照创建期间 EBS 卷的主动 I/O。如果在发出创建调用时,卷上的 I/O 操作同步,则会取消快照的优先级。
  • 快照的时机,因为带宽在后端服务器中共享。
  • 自上次拍摄快照以来的时间。

根据设计,EBS 快照显示的是备份的完整大小,而不是增量大小。第一个快照是数据的完整副本。后续快照是增量快照,包含最近快照中更改的数据块。后续快照显示的是完整大小,可以从任何 EBS 快照中恢复新卷,尽管其设计是增量的。每个增量快照都会引用后端的其他快照。

例如,如果自第一个快照以来对所有数据块都进行了修改,则创建快照所需的时间似乎与完整快照一样长。这是因为引用第一个快照的所有块都被修改了。

自上次创建快照以来的更改次数越多,后续创建快照所需的时间就越长。

创建时间还取决于其他基础架构因素,例如底层存储子系统的负载。无法预测 EBS 快照创建可能需要多长时间,也无法加快此过程。

有关详细信息,请参阅快照的工作原理

检查快照的实际大小

1.    运行 list-snapshot-blocks AWS 命令行界面(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 个块。如果您的快照有超过 10000 个块,则该命令还会返回 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 个月前