卷级实时备份的底层数据处理原理
一、任意时间点回退
实时备份数据,意味着备份数据和生产数据是时刻保持一致的状态,在这种情况下,要做到任意时间点回退恢复,需要借助特出的存储空间结构。
云祺在对目标卷进行实时备份时,在备份系统本地存放实时备份过来的数据的时候,会将备份数据分成两个空间:镜像空间和日志空间。其中镜像空间主要存放与目标卷最新状态完全一致的镜像数据;日志空间则用于任意时间回退,通过COW(写时复制,一种常用于快照的数据处理技术)机制,采用逆向增量的方式存储I/O的变化记录。
当要进行任意时间点回退恢复的时候,备份系统会先将日志空间理的逆向增量记录恢复到目标主机的目标卷上,再从镜像空间种拉取出未恢复的数据块,恢复到目标卷对应的位置上。如下图:
二、监控缓存
在实际的生产环境中进行实时备份的时候,有可能会出现两种情况:1、生产数据产生的频率大于数据备份处理的效率;2、备份网络出现异常或者波动。这两种情况都将导致实时备份无法正常运行。
针对这两种情况,云祺引入了监控缓存。当生产主机出现以上两种特殊情况的时候,实时备份代理可以将要实时备份的数据,先放入缓存中,等待主机恢复正常后,在进行数据传输。
在缓存中,又分为内存缓存和文件缓存,内存缓存占用的存储空间是主机的内存空间,文件缓存占用的存储空间是主机上的硬盘空间。它们的区别在于内存缓存读写性能好,但是相对空间就小,而文件缓存性能比较差,但是缓存空间可以非常的大。
系统支持这两种缓存的二选一配置,或者同时配置,并且在同时配置的情况下,支持根据缓存使用情况自适应切换,以达到最优的实时数据监控效率。
如下图:
三、I/O复制模式
因为云祺实时备份功能是基于卷级的,并且代理时刻监控主机目标卷的I/O情况,一旦监测到数据变化就会将此I/O同步复制一份放入缓存,等待传输给备份系统。
那么在这种情况下,I/O的复制模式有两种,一种是同步模式,另外一种就是异步模式了。同步模式意为实时备份代理会确保实时变化的数据先达到缓存空间,再继续下放到生产卷中。异步模式就和同步模式是相反的了,代理不会确保复制的数据到达缓存空间,即可将上层提交的数据直接下放到生产卷中。
在同步模式下:生产I/O的提交响应时间会变长,但是内存开销不会增加。在异步模式下:内存开销将会增加,生产I/O的提交响应时间不会发生变化。
基于两种模式的特点,云祺在配置I/O复制模式的时候,也提供自适应的模式,代理模块可以根据生产主机的资源情况,在同步模式和异步模式之间动态切换,以保障最优的处理效率。