VMware 虚拟化编程(11) — VMware 虚拟机的全量备份与增量备份方案
发布日期:2021-06-30 10:09:16
浏览次数:2
分类:技术文章
本文共 1099 字,大约阅读时间需要 3 分钟。
目录
前文列表
全量备份数据的获取方式
首先需要声明的是,无论是获取全量数据还是增量数据,其面向操作的对象都是虚拟磁盘,而非虚拟机。
获取 VMware 虚拟机的全量备份相对简单,通常有以下两种方式:
方式一:直接使用 VixDiskLib 来备份虚拟磁盘的所有内容,这种方式的缺点在于,对于「精简置备」或「厚置备延迟置零」的虚拟磁盘而言,实际上需要备份的数据可能远小于虚拟磁盘中所含有的数据。因为虚拟磁盘中有些数据可能只是没有被擦除,非当前虚拟机所实际拥有的数据。
方式二:
changeId='*'
的 QueryChangedDiskAreas 调用,可以获得虚拟磁盘的全量数据。「*」表示 QueryChangedDiskAreas 应该返回虚拟磁盘中实际已分配的数据块偏移量,这里解决了方式一的缺陷。但需要注意的是,QueryChangedDiskAreas 获得的是已修改数据块的偏移量,而非实际的数据,仍然需要结合 VixDiskLib 来取得实际的磁盘数据。
NOTE:对于「厚置备置零」的虚拟磁盘来说,方式二和方式一的效果是等同的。
增量备份数据的获取过程
- Step 1:对虚拟机执行第一次快照,并获取全量数据。
- Step 2:通过 vShpere WS API
VirtualDisk.getBacking.getChangeId
来取得 Step 1 中所创建快照的虚拟磁盘的 ChangeId。 - Step 3:对虚拟机执行第二次快照。
- Step 4:调用 vShpere WS API
QueryChangedDiskAreas
,并传入从 Step 2 取得的 ChangeId、从 Step 3 创建的快照 moRef 和指定虚拟磁盘的唯一 ID 作为实参。如此就能够获得自第一次快照时间点(前端点)到第二次快照时间点(后端点)之间,该虚拟磁盘的已修改数据块的偏移量。 - Step 5:结合 Step 4 获得的已修改数据块偏移量和 VixDiskLib 所提供的的 VixDiskLib_Read 函数就能够取得该虚拟磁盘的增量数据。
- Step 6:逐一对虚拟机所含有的虚拟磁盘重复 Step 2,4,5,最终获得虚拟机完整的增量数据。
NOTE:从上述过程可知,在多磁盘场景中,虚拟机的一个快照数据文件中可能包含了该虚拟机所有虚拟磁盘的增量数据。所以当我们使用 VixDiskLib_ConnectEx 并 VixDiskLib_Open 一个快照之后,还需要根据不同虚拟磁盘的已修改数据块偏移量来 VixDiskLib_Read 出其中属于该虚拟磁盘的那一份增量数据。
转载地址:https://is-cloud.blog.csdn.net/article/details/78306851 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
网站不错 人气很旺了 加油
[***.192.178.218]2024年04月27日 21时13分25秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
数据库SQL优化大总结之 百万级数据库优化方案
2019-04-30
数据库性能优化一:数据库自身优化(大数据量)
2019-04-30
MYSQL数据库语句优化
2019-04-30
Modbus通讯两种传输方式
2019-04-30
关于TCP/IOCP构架中出现的Socket假死连接解决方案
2019-04-30
UDP Socket客服示例
2019-04-30
十大滤波算法程序大全(精心整理版) - C++
2019-04-30
60个非常实用的CSS代码
2019-04-30
Oracle在存储过程中如何返回结果集
2019-04-30
oracle如何解决锁表问题
2019-04-30
Oracle内连接和外连接(转)(多种写法)
2019-04-30
4.日期推算处理
2019-04-30
7.查询指定日期段的人员
2019-04-30
12.计算工作时间的函数
2019-04-30
13. SET LANGUAGE对日期处理的影响案例
2019-04-30
14.日期格式化处理
2019-04-30
16.分段截取函数
2019-04-30
17.各种字符串分拆处理函数
2019-04-30
函数-SQL-获取中文的缩写字母(案例)
2019-04-30
18.分段截取函数
2019-04-30