快照原理
快照是云盘在某一个或多个时间点的数据备份,可以将当前云盘恢复到快照对应历史时间点的云盘数据。本文为您介绍创建快照和删除快照的原理、快照容量的计算原理以及快照容量与云盘容量的关系等。
创建快照
快照是以数据块(存储系统中用于管理数据的基本单元)作为快照数据备份的最小粒度,分为全量快照和增量快照。
为云盘创建的第一份标准快照是全量快照,会备份创建时间点前该云盘上的所有数据。后续创建的标准快照均是增量快照,仅备份自上一份快照以来有变化(修改或新增)的数据块,这样可以有效地降低快照存储空间,为您节省快照存储成本。
增量快照虽不存储全量数据,但会引用全量快照中无变化的数据,因此通过任一快照回滚云盘时,均可以恢复快照创建时间点的所有云盘数据。
示例说明
假设某块云盘分别在10:00和11:00有业务修改和新业务数据写入,那么该云盘快照的原理说明如下:
- 9:00时,云盘的数据块为A和B,此时创建第一份快照1,快照1为全量快照,备份数据块A和B,存储了该云盘上在创建快照1时的所有数据。
- 云盘继续写入数据,修改数据块B为B1。在10:00时创建第二份快照2,快照2为增量快照,仅备份有变化的数据块B1。对于未变化的数据块A,不重复备份,引用于快照1。
- 云盘继续写入数据,新增数据块C。在11:00时创建第三份快照3,快照3为增量快照,仅备份有变化的数据块C。对于未变化的数据块A和数据块B1,不重复备份,其中数据块A引用于快照1,数据块B1引用于快照2。
- 以此类推。
删除快照
当您不再需要某份快照或者快照个数超出额度时,您可以删除一部分快照释放空间。
增量快照虽不存储全量数据,但会引用全量快照中无变化的数据,因此删除任一快照后,使用未删除的快照仍可将云盘的数据恢复到创建快照时的状态。
示例说明
假设ECS实例的某块云盘创建了快照1、快照2及快照3,各快照包含的数据块示例如下:
- 快照1:全量快照,包含数据块A和B。
- 快照2:增量快照,仅包含增量数据,即快照2仅包含数据块B1。对于未变化的数据块A,不重复备份,A引用于快照1。
- 快照3:增量快照,仅包含增量数据,即快照3仅包含数据块C。对于未变化的数据块A和数据块B1,不重复备份,其中数据块A引用于快照1,数据块B1引用于快照2。
示例1:删除云盘的全量快照
删除全量快照1时,快照链中的下一个快照2将变成全量快照,由于快照1的A数据块被快照2引用,因此数据块A会被保留至快照2中,快照 1 中的数据块B被删除。对于快照3,数据块A引用变为快照2,数据块B1的引用不变。
示例2:删除云盘的增量快照
删除增量快照2时,仅需注意引用关系,由于快照2的A数据块引用于快照1,B1数据块被快照3引用,因此删除增量快照2后,会取消A数据块的引用,并将数据块B1保留至快照3。
快照容量计算
每块云盘的快照总容量以快照链(云盘所有快照组成的关系链)为粒度进行统计,统计当前云盘所有快照的数据块占用的存储空间。
快照容量涉及的概念说明如下:
- 快照全量大小:单个快照所有数据块占用的存储空间大小。
- 快照增量大小:当前快照与同一快照链中上一份快照之间不同的数据块占用的存储空间大小。
- 快照总容量:第一份快照(即全量快照)的全量大小与后续所有增量快照的增量大小之和。
快照容量与云盘容量的关系
云盘的单个快照容量不会超过云盘容量,但是随着快照的增加,云盘容量可能会小于所有快照的总容量。
假设您创建了一个40 GiB的云盘,第一次写入了30 GB的数据,那么此时创建的快照容量是30 GB。之后采用覆盖写方式,写入30 GB数据后再次创建快照,此时云盘容量仍然是40 GiB,但此时因变化的数据量为30 GB,所以该盘的快照总容量为60 GB,大于云盘容量。
您可以通过快照链查看单块云盘的容量以及快照容量。例如,源云盘容量为 40 GiB,而该云盘的快照容量仅为 3.57 GB。
快照容量与系统容量的差异
快照会以固定大小的数据块(Block)作为快照数据备份的最小粒度,以此来计算快照容量大小。
当用户在云盘内进行删除文件操作时,系统显示的容量会减少,但通常对于操作系统的文件系统来说,删除文件仅是标记文件为删除,并不会真正地物理删除该文件对应的数据。因此,对于云盘来说,删除文件也是一个写入操作,并不会减少云盘真正的数据占用空间,相应地如果此时创建快照,快照依然会包含该删除文件对应的数据块。除非操作系统内的文件系统真正执行了文件删除,您可以详细了解文件系统的TRIM机制。
用户无主动写入系统盘的行为,但快照容量依然可能增长。操作系统在运行时会产生系统文件,同样会写入云盘,并备份在快照中。
一份快照的容量大小可能略大于云盘写入数据的大小。因为文件系统的一些元数据信息会占用云盘空间,快照的数据块会包含该元数据信息及用户写入的真实数据信息。例如,用户只在云盘中创建1 MB的文本文件,快照备份的数据大小因为有文件系统元数据的存在会略大于文本文件的大小,即快照容量会大于1 MB。