云服务器ECS提供快照功能,通过有计划地对云盘和共享块存储(以下简称磁盘)创建快照,能够保留磁盘在某一个或者多个时间点的数据状态。快照有力地保证了您的业务安全和提高了应用部署效率。

增量快照原理

磁盘格式化后会在逻辑块地址(LBA)的基础上划分数据块(Block)。一旦数据块有业务数据写入,就将参与计量。磁盘第一份快照是全量快照,不拷贝空数据块。后续快照均是增量快照,拷贝自上一个快照以来的增量业务数据和脏数据。因此同一个数据块在不同快照中可能会出现多个版本。例如,下图快照1、快照2和快照3分别是一块磁盘的第一份、第二份和第三份快照:



创建每一份快照时,文件系统分块检查磁盘数据,只有发生变化的数据块才会被拷贝到快照中:

  • 快照1是第一份快照,备份了该磁盘上某一时刻的所有数据。

  • 快照2只备份有变化的数据块B1和C1。数据块A和D引用快照1中的A和D。

  • 快照3只备份有变化的数据块B2。数据块A和D引用快照1中的A和D,数据块C1引用快照2中的C1。

  • 当磁盘需要恢复到快照3的状态时,回滚磁盘功能将数据块A、B2、C1和D备份到磁盘上,恢复磁盘到快照3的状态。

  • 假如您需要删除快照2,则快照中的数据块B1被删除,不会删除存在引用关系的数据块C1。当磁盘恢复到快照3的状态时,仍可以恢复数据块C1。

快照链

快照链是一块磁盘中所有快照组成的关系链。一块磁盘对应一条快照链,快照链ID即磁盘ID。一条快照链中有大量引用和被引用的数据块关系。快照链包括以下信息:

  • 快照容量:快照链中所有快照占用的存储空间。

  • 快照额度:每块磁盘最多只能创建64份快照。更多详情,请参见使用限制

    说明 磁盘快照数量达到额度上限后,如果要继续创建自动快照,系统会自动删除最早的自动快照;如果要手动创建快照,您需要手动删除不需要的快照。更多信息,请参见用户指南为磁盘设置自动快照策略删除快照
  • 快照节点:快照链中的一个节点表示磁盘的一份快照。每条快照链最多有64个节点,包括手动创建及自动创建的快照。

删除快照原理

当您不再需要某份快照或者快照个数超出额度时,您需要删除一部分快照释放空间。由于快照采用增量原理,假设您需要删除快照链中的某一份快照S1,则流程示意图和逻辑概述如下所示:



  1. 阿里云离线分析已删除快照S1的所有数据块(Block),删除未被快照链中其他快照引用的数据块。
  2. 添加快照S1脏数据块到快照S2。剩下的快照一共记录了10个Block的信息:
    • 快照S0的6个。
    • 快照S1的2个脏数据块。
    • 快照S2的2个。