VMware 虚拟化编程(11) — VMware 虚拟机的全量备份与增量备份方案

简介: 目录目录前文列表全量备份数据的获取方式增量备份数据的获取过程前文列表VMware 虚拟化编程(1) — VMDK/VDDK/VixDiskLib/VADP 概念简析 VMware 虚拟化编程(2) — 虚拟磁盘文件类型详解 VMware 虚...

目录

前文列表

VMware 虚拟化编程(1) — VMDK/VDDK/VixDiskLib/VADP 概念简析
VMware 虚拟化编程(2) — 虚拟磁盘文件类型详解
VMware 虚拟化编程(3) —VMware vSphere Web Service API 解析
VMware 虚拟化编程(4) — VDDK 安装
VMware 虚拟化编程(5) — VixDiskLib 虚拟磁盘库详解之一
VMware 虚拟化编程(6) — VixDiskLib 虚拟磁盘库详解之二
VMware 虚拟化编程(7) — VixDiskLib 虚拟磁盘库详解之三
VMware 虚拟化编程(8) — 多线程中的 VixDiskLib
VMware 虚拟化编程(9) — VMware 虚拟机的快照
VMware 虚拟化编程(10) — VMware 数据块修改跟踪技术 CBT

全量备份数据的获取方式

首先需要声明的是,无论是获取全量数据还是增量数据,其面向操作的对象都是虚拟磁盘,而非虚拟机。

获取 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 出其中属于该虚拟磁盘的那一份增量数据。

相关文章
|
26天前
|
Unix Linux 虚拟化
虚拟机VMware知识积累
虚拟机VMware知识积累
|
1天前
|
存储 SQL 运维
服务器数据恢复—Isilon存储误删除vmware虚拟机的数据恢复案例
Isilon存储使用的是分布式文件系统OneFS。在Isilon存储集群里面每个节点均为单一的OneFS文件系统,所以Isilon存储在进行横向扩展的同时不会影响数据的正常使用。Isilon存储集群所有节点提供相同的功能,节点与节点之间没有主备之分。当用户向Isilon存储集群中存储文件时,OneFS文件系统层面将文件划分为128K的片段分别存放到不同的节点中,而节点层面将128K的片段分成8K的小片段分别存放到节点的不同硬盘中。用户文件的Indoe信息、目录项及数据MAP则会分别存储在所有节点中,这样可以确保用户不管从哪个节点都可以访问到所有数据。Isilon存储在初始化时会让用户选择相应的
26 12
|
14天前
|
运维 安全 虚拟化
|
1月前
|
存储 IDE 开发工具
【读书笔记】 玩转虚拟机基于Vmware+Windows 虚拟化技术
【读书笔记】 玩转虚拟机基于Vmware+Windows 虚拟化技术
|
19天前
|
Linux 虚拟化
部署04-ncpa.cpl 虚拟机介绍,什么是虚拟机,怎样使用虚拟机,安装VMWARE,WorkStation,VMWARE这款软件是收费软件,可以在一个月期间进行使用,成功看VMWARE高级网络设置
部署04-ncpa.cpl 虚拟机介绍,什么是虚拟机,怎样使用虚拟机,安装VMWARE,WorkStation,VMWARE这款软件是收费软件,可以在一个月期间进行使用,成功看VMWARE高级网络设置
|
存储
阿里云混合云备份如何还原虚拟机备份?
前面我们介绍了混合云备份服务如何进行虚拟机备份,这次我们再来介绍一下,如何还原虚拟机备份。 当被保护虚拟机需要从备份点还原的时候,打开客户端控制台找到要还原的备份直接恢复数据就可以了。 下面我们来介绍如何还原一个虚拟机备份。
881 0
|
2月前
|
算法 虚拟化 C++
VMware虚拟机无法自适应和拖拽复制粘贴和共享目录问题
VMware虚拟机无法自适应和拖拽复制粘贴和共享目录问题
280 0
|
2月前
|
存储 SQL 数据挖掘
服务器数据恢复—误删除VMware虚拟机vmdk文件的数据恢复案例
服务器数据恢复环境: 某大厂PS4000服务器,服务器上部署VMware ESXi虚拟化平台。 服务器故障: 机房断电,重启后服务器中的某台虚拟机不能正常启动。管理员查看虚拟机配置文件,发现无法启动的虚拟机的配置文件除了磁盘文件以外其他配置文件全部丢失,xxx-flat.vmdk磁盘文件和xxx-000001-delta.vmdk快照文件还存在。联系VMware原厂工程师进行诊断,VMware原厂工程师尝试新建一个虚拟机,但发现存储空间不足,于是将故障虚拟机下的xxx-flat.vmdk磁盘文件删除了。VMware工程师重新建了一个虚拟机,分配了固定大小的虚拟磁盘,为虚拟机安装了Window
服务器数据恢复—误删除VMware虚拟机vmdk文件的数据恢复案例
|
1月前
|
虚拟化 UED
vmware-17虚拟机安装教程(保姆级,包含图文讲解,不需注册账户)
vmware-17虚拟机安装教程(保姆级,包含图文讲解,不需注册账户)
|
1月前
|
Linux 调度 虚拟化
Linux系统——初识Linux、虚拟机介绍、VMware WorkStation安装、在VMware上安装Linux
Linux系统——初识Linux、虚拟机介绍、VMware WorkStation安装、在VMware上安装Linux
77 4