3.1 备份流程

简要过程:
备份程序使用 vSphere API 建立和虚机的连接,并备份虚机的配置信息
使用 vSphere API 创建快照,往往会创建 Quiseced 类型的快照,来保证应用或者文件系统一致性
使用 VDDK API 建立和快照的第一个磁盘的连接,连接的传输模式将会是 san/hotadd/nbdssl/nbd 中的一种。
对该磁盘,调用 QueryChangedDiskAreas 接口,获取它与上次备份时磁盘之间发生了变化的数据块列表
调用 VDDK API,读取发生了变化的数据块的内容并写入存储中的备份
依次处理其它磁盘
所有磁盘处理完毕后,删除快照,并断开与虚机的连接
特点:
利用快照功能,保存虚机在某个时间点上的状态和快照,很短时间之后虚机就可以照常运行。备份结束,快照会被删除,这样虚机的性能也就不受到影响了。
利用 VADP API,只读取两次备份之间磁盘上发生了变化的数据块。当然了,第一次是必须做全备份。
只将变化的数据块写入后端存储,也就是说后端存储必须负责维护第一次全备份和以后每次delta备份之间的关系。其实相当于将 VMware 的 Snapshot manger 功能挪到了备份软件的后端存储。
3.2 恢复流程

简要过程:
备份程序使用 vSphere API 建立和待恢复虚机的连接,并恢复虚机的配置信息
使用 vSphere API 创建快照,往往会创建 Quiseced 类型的快照,来保证应用或者文件系统一致性
使用 VDDK API 建立和快照的第一个磁盘的连接
对该磁盘,调用 QueryChangedDiskAreas 接口,获取它与上次备份时磁盘之间发生了变化的数据块列表
调用 VDDK API,从所存备份中读取变化块的数据,再写入快照磁盘的相应位置。该磁盘的所有变化块写入完成后,关闭与磁盘的连接。
依次处理其它磁盘
将虚机revert到已恢复快照
删除快照,并断开与虚机的连接
特点:
在操作前,需要确保虚机处于关机状态
同样也利用快照,然后再利用 API 获取本次快照和上次备份所对应快照之间发生变化了的数据块,再使用已保存的备份中的数据将发生了变化的快照磁盘中相应的数据块覆盖掉
快照的磁盘 vmdk 文件都被恢复后,执行快照恢复
结束后,删除快照
虽然备份时上传的是 delta 数据块,但是在做恢复时,需要读取全部的数据块。

