帮助与文档

当前位置: 首页帮助中心快照备份 SHB > 

快照

快照
发布时间:2017-05-10

快照用于数据容灾;应用快照回滚功能,可实时回滚数据。

快照指的是数据集合在某个时间点(拷贝开始的时间点)的完整拷贝或者镜像,当生产系统数据丢失时,可通过快照完整的恢复到快照时间点,是一种重要的数据容灾手段。

磁盘快照是把磁盘某个时刻的数据冻结起来,形成一个副本,需要的时候可以随时回溯到这个副本上的数据。对于用户数据的加固,或者定期备份是个非常有用的系统。

快照存储:
快照存储有两个方案, 一个是把快照数据和磁盘存储数据放一起,一个是把快照数据存到第三方系统。

第一个办法的优点是用户的快照创建和回滚比较快,但是达不到真正的容灾效果。第二种办法能够达到真正的容灾效果,但是数据搬迁过程会耗一定的时间和带宽。考虑快照的核心诉求点是达到真正的容灾,我们选择第二种办法。

我们将快照数据储存在与生产系统隔离的、不同存储引擎的TFS系统中,除了在硬件上容灾外,还可以在软件和运营层面容灾。

快照创建:
用户创建快照后,我们立即启动后台进程,以block为单位,将用户数据从生产系统拷贝到快照系统,为了保证用户数据的时间点一致,快照设计采用了多版本和Cow(Copy on Write)技术。

用户创建一次快照,用户的写入数据版本就会自增,并分配新的block进行保存,避免对原来数据进行修改,从而保证数据的时间点一致。

由于快照分配也是以block为粒度,而用户写不一定覆盖整个block块,所以需要在用户第一次写时,将旧block数据拷贝的新block后,再实施修改。后台进程会负责将所有的旧block拷贝到快照系统。

所以,创建快照是一个瞬间过程,但整个快照数据的备份则需要耗费一定的时间,时间长短由备份的带宽决定。

快照回滚:
通过读写的trigger机制实时回滚数据。

用户一旦使用快照实施回滚,则立即启动回滚进程实施数据的搬迁,且用户在此时即可使用该快照数据。

后台通过bitmap记录完成搬迁的block块,当用户请求时,先检查对应的block是否已经完成回滚动作。若未完成,则先阻塞用户请求,优先触发对该block的回滚,完成后再执行用户请求,从而保证用户能实时使用回滚数据。

使用快照创建磁盘:
原理与快照回滚类似,提供快速、批量克隆磁盘的能力,满足批量服务器部署的需求。


以上内容是否对您有帮助?