数据备份
支持基于 QEMU 块设备层的数据备份,各类型数据存储上的虚拟机均支持备份。备份类型可分为:全量备份、增量备份。全量备份包含完整的数据集合,增量备份仅包含自上一次备份后所有更新的数据集合。全量备份和增量备份均仅备份真实数据。
默认情况下,备份策略是在首次全量备份后,每 63 个增量备份的下一次备份就会自动执行一次全量备份。这是因为从备份数据恢复虚拟机,需要合并恢复点及之前的增量备份数据和全量备份数据。为保障数据安全,备份链最大长度为 64。实际上,系统内部有更智能灵活的应对策略来决定使用哪种合适的备份方式,以确保备份数据的安全可靠。
数据备份可分为三部分:数据复制、数据传输、数据保存。
数据复制
备份模块利用 QEMU 块设备层的脏数据跟踪功能(Dirty Bitmap)实现备份数据的导出。
虚拟机磁盘文件数据发生变化的位置被称为脏数据位置,Dirty Bitmap 记录自上次备份后,虚拟磁盘文件上产生脏数据的所有位置记录,根据位置记录,就可导出自上次备份后所有被修改过的数据,即增量的备份数据。
最终全量备份文件和各个增量备份文件会产生一个完整的备份链,保存完整的数据。Dirty Bitmap 存在于 QEMU 进程的内存中,虚拟机重启后就会丢失这部分信息,因此当虚拟机重启后的下一次备份,系统会自动选择全量备份。
如图 1所示:图 1. Dirty Bitmap


数据传输
数据保存
备份存储支持多种存储介质,包括:SAN、NAS、磁盘阵列以及带库等。
备份数据在备份存储中是切片去重存放的,备份数据会被切分成 64MB 大小的数据块,然后计算 hash,建立索引。拥有相同 hash 的数据块不会被存储多份。
如图 4所示:图 4. 数据切片保存




