创建快照原理
您可以根据需要为云盘手动或自动创建快照。具体操作,请参见创建快照或创建自动快照策略。
原理说明
快照分为全量快照和增量快照。云盘创建的第一份快照是创建时间点云盘上所有数据块的全量快照,不备份空数据块。后续创建的快照均是增量快照,仅备份上一个快照以来有变化的数据块。全量快照和增量快照的元信息中均会存储全量的数据块信息,因此在通过任一快照回滚云盘时,均可以恢复对应历史时间点的所有云盘数据。
说明
云盘初始化后会在逻辑块地址LBA(Logical Block Address)的基础上划分数据块(Block)作为快照数据备份的最小粒度,一旦数据块有业务数据写入,就将参与计量。云盘的数据写入和修改不会对已创建的快照造成影响,快照也不会影响原云盘的数据。
快照创建完成后,将存储在对象存储OSS中。
在OSS支持同城冗余的地域,将默认使用同城冗余OSS来存储您的快照数据,以最大程度保证您快照数据的冗余性。
在OSS暂不支持同城冗余的地域,将使用本地冗余OSS来存储您的快照数据。如果您的业务可用性要求较高,建议您使用复制快照来进一步备份数据。
出于数据安全性考虑,您不能选择使用自己创建的OSS Bucket来存储快照数据。
有关对象存储OSS支持同城冗余的地域信息,请参见存储冗余概述和创建同城冗余存储Bucket。
使用快照创建云盘或回滚云盘后,需要把快照数据从OSS加载到云盘中,云盘被读取的数据会优先加载。这个过程的持续时间受快照数据量的影响,需要几分钟到几小时。在快照数据被全部加载到云盘之前,云盘的读访问时延将会增加。一旦快照的所有数据块都被加载到云盘中,后续的读访问将会恢复到正常的性能水平。
示例说明
假设ECS实例的某块云盘分别在10:00和11:00有新的业务数据写入,那么该云盘快照的原理说明如下:
9:00时,云盘的数据块为A、B和C,此时创建第一份快照1,快照1中就备份了数据块A、B和C。快照1为全量快照,备份了该云盘上在创建快照1时的所有数据。
云盘继续写入数据,修改数据块A为A1、修改数据块B为B1、新增数据块D。在10:00时创建第二份快照2,快照2仅备份有变化的数据块A1、B1和D,快照2为增量快照。快照2的元信息中会记录云盘全量的数据块A1、B1、C和D,其中数据块C来源于快照1。
云盘继续写入数据,修改数据块C为C1、新增数据块E,在11:00时创建第三份快照3,快照3仅备份有变化的数据块C1和E,快照3为增量快照。快照3的元信息中会记录云盘全量的数据块A1、B1、C1、D和E,其中数据块A1、B1和D来源于快照2。
以此类推。