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

相关文章
|
6月前
|
Oracle 关系型数据库 虚拟化
在VMware的Win10虚拟机中安装使用ENSP
本文介绍了在Windows 10虚拟机上安装ENSP及相关软件的全过程,包括VirtualBox、WinPcap、Wireshark、VLC和ENSP的安装步骤,并提供图文演示,帮助用户顺利完成配置与测试。
1582 134
|
5月前
|
Linux 虚拟化 iOS开发
VMware Remote Console 13.0.1 for macOS, Linux, Windows - vSphere 虚拟机控制台的桌面客户端
VMware Remote Console 13.0.1 for macOS, Linux, Windows - vSphere 虚拟机控制台的桌面客户端
1106 0
VMware Remote Console 13.0.1 for macOS, Linux, Windows - vSphere 虚拟机控制台的桌面客户端
|
5月前
|
Linux 虚拟化 iOS开发
VMware Fusion 25H2 OEM BIOS 2.7 - 在 macOS 中运行 Windows 虚拟机的最佳方式
VMware Fusion 25H2 OEM BIOS 2.7 - 在 macOS 中运行 Windows 虚拟机的最佳方式
1301 0
VMware Fusion 25H2 OEM BIOS 2.7 - 在 macOS 中运行 Windows 虚拟机的最佳方式
|
5月前
|
存储 Linux 文件存储
VMware vSphere Replication 9.0.4 - 虚拟机复制和数据保护
VMware vSphere Replication 9.0.4 - 虚拟机复制和数据保护
272 2
|
7月前
|
Linux 虚拟化 iOS开发
Windows Server 2025 OVF (2025 年 8 月更新) - VMware 虚拟机模板
Windows Server 2025 OVF (2025 年 8 月更新) - VMware 虚拟机模板
747 3
Windows Server 2025 OVF (2025 年 8 月更新) - VMware 虚拟机模板
|
6月前
|
监控 Linux 网络安全
VMware vCenter Converter 9.0 - P2V 虚拟机转换工具
VMware vCenter Converter 9.0 - P2V 虚拟机转换工具
1884 0
VMware vCenter Converter 9.0 - P2V 虚拟机转换工具
|
7月前
|
Linux 虚拟化 iOS开发
Debian 13 x86_64 OVF (sysin) - VMware 虚拟机模板
Debian 13 x86_64 OVF (sysin) - VMware 虚拟机模板
524 0
Debian 13 x86_64 OVF (sysin) - VMware 虚拟机模板
|
8月前
|
运维 Linux 虚拟化
VMware虚拟机安装教程,Windows下安装VMware虚拟机,附VMware下载,Windows各版本系统镜像下载
虚拟机技术允许一台物理机运行多个操作系统,提升资源利用率,节省成本。通过快照、克隆等功能,实现系统快速恢复与复制,提高运维效率。本文详细介绍VMware虚拟机的安装步骤、Windows镜像下载及系统安装激活流程,适合初学者快速入门。
9243 0
|
7月前
|
存储 固态存储 Linux
从 0 学服务器虚拟化:VMware 搭建 3 个虚拟主机,个人 / 小企业够用的方案
服务器虚拟化技术通过在单台物理机上运行多个虚拟机,显著提升资源利用率和管理灵活性。本文以 VMware ESXi 8.0 Update 3e 为例,详解如何搭建经济实用的虚拟化环境,支持 3 个虚拟主机稳定运行,适合个人开发者和小企业降低硬件投入、实现数据本地化与安全存储。
1639 0
|
8月前
|
Linux 虚拟化 iOS开发
VMware Fusion 13.6.4 OEM BIOS 2.7 - 在 macOS 中运行 Windows 虚拟机的最佳方式
VMware Fusion 13.6.4 OEM BIOS 2.7 - 在 macOS 中运行 Windows 虚拟机的最佳方式
994 3