VMware 虚拟机的虚拟磁盘编程知识点扫盲之二

简介: 目录目录前文列表VDDK安装 VDDKVixDiskLibVADP前文列表VMware 虚拟机的虚拟磁盘编程知识点扫盲之一VDDK摘自官方文档:The Virtual Disk Development Kit (VDDK)...

目录

前文列表

VMware 虚拟机的虚拟磁盘编程知识点扫盲之一

VDDK

摘自官方文档:The Virtual Disk Development Kit (VDDK) is a collection of C/C++ libraries, code samples, utilities, and documentation to help you create and access VMware virtual disk storage. The VDDK is useful in conjunction with the vSphere API for writing backup and recovery software, or similar applications.

从上述内容可知,VDDK(虚拟磁盘开发包) 主要提供了 C/C++ Lib 库,让开发者能够连接并且访问 VMware 虚拟磁盘存储文件(VMDK File),是编写虚拟机数据备份和恢复的常用工具。简单来说 VDDK 就是一套 C 库及相关的 Sample 和 Docs。

VDDK 的具体功能

  • 读取虚拟磁盘数据。
  • 写入虚拟磁盘。
  • 备份虚拟机的单个指定卷或所有卷。
  • 将备份代理连接到 vSphere,备份存储簇上的所有虚拟机。
  • 管理虚拟磁盘的整理、扩展、转换、重命名、压缩文件系统镜像。
  • 运行离线的虚拟机病毒扫描、统一补丁与数据分析。
  • 对中毒和被破坏的离线虚拟机进行数据恢复或病毒清除。

其中对虚拟磁盘数据的读写操作,无疑是虚拟磁盘编程的重头戏,除了可以通过直接访问 VMDK File 来获取全量的虚拟机磁盘数据之外。并且由于虚拟机的快照数据文件同样是 VMDK File,所以 VDDK 甚至能够读写快照数据。与 CBT 功能结合更是能够实现获取指定时间点间隔的虚拟机增量数据。

获取 VDDK 的方法:可以从官方 download 下载 VDDK 软件包 VMware-vix-disklib-6.0.3-4888596.x86_64.tar.gz

VDDK 的组成:解压软件包后得的 vmware-vix-disklib-distrib 目录,内含了 bin64、doc、include、lib32、lib64 等子目录。

  • include 目录:包含 C/C++ Lib 库所需的头文件,如:vixDiskLib.h、vm_basic_types.h
  • lib 目录:包含 vixDiskLib.lib(Windows) 或者 libvixDiskLib.so(Linux) 等库文件
  • doc 目录:包含 HTML 参考文档,以及 doc/samples 目录下的示例程序。

安装 VDDK

  • Step1:
mv vmware-vix-disklib-distrib/ /usr/lib/vmware-vix-disklib/
  • Step2:
cd /usr/lib/vmware-vix-disklib/lib64
mkdir removed
  • Step3:将于系统 Lib 同名(冲突)的库文件移动到 removed 目录,防止影响到系统的正常运行,需要移动的库文件清单需要根据系统和个人环境来决定。例如:
mv libcrypto.so.* libcurl.so.* libglib-* libgobject-* libgthread-* libssl.so.* removed/
  • Step4:将 VDDK Lib 库文件的路径写入系统环境路径并刷新
echo "/usr/lib/vmware-vix-disklib/lib64" > /etc/ld.so.conf.d/vmware-vix-disklib.conf
ldconfig

VixDiskLib

VDDK 实际上是基于 Virtual Disk API 来实现的,Virtual Disk API(虚拟磁盘接口) 也就是 VixDiskLib,是一组管理 VMDK File 的函数调用集合,目的是帮助开发者集成 VMware 平台产品的解决方案,提供了以下主要功能函数:

  • Create: 创建 VMDK File
VixDiskLib_Create()
vixError = VixDiskLib_Create(appGlobals.connection, appGlobals.diskPath, &createParams, NULL, NULL);
  • Delete: 删除 VMDK File
  • Convert: 转换 VMDK File 的格式
  • Expand: 扩大 VMDK File 的 Size
  • Shrink: 缩小 VMDK File 的 Size
  • Defragment: 整理磁盘碎片
  • Rename: 重命名 VMDK File
  • Create redo logs: 创建虚拟机快照数据文件
  • 允许随机读写 VMDK File 上任意位置的数据
VixDiskLib_Open()
vixError = VixDiskLib_Open(appGlobals.connection, appGlobals.diskPath, appGlobals.openFlags, &srcHandle);

VixDiskLib_Close()
VixDiskLib_Close(srcHandle);

VixDiskLib_Read()
vixError = VixDiskLib_Read(srcHandle, i, j, buf);

VixDiskLib_Write()
vixError = VixDiskLib_Write(newDisk.Handle(), i, j, buf);
  • 读取元数据
VixDiskLib_GetInfo()
vixError = VixDiskLib_GetInfo(srcHandle, diskInfo);
  • 连接 vSphere Storage,支持包括 SAN、HotAdd 等高级传输方式
    NOTE: 使用高级传输模式,如果在恢复虚拟机时已经有一个预先存在的快照了,那么你应该先删除该快照,否则 SAN 模式恢复将失败。备份程序的运行服务器能够直接通过 FC 或者 iSCSI 和虚拟机磁盘所在的 Storage 连接。

VixDiskLib 本质上是应用了 C 的文件 I/O 系统调用(Function call semantics are patternedafter C system calls for file I/O)功能,所以开发者能够在软件中导入 VixDiskLib 来编写访问 VMDK File 的程序。

VADP

VADP(vStorage APIs for DataProtection) 全称 VMware Storage APIs - Data Protection,其应用了 Virtual Disk API 和部分 vSphere API 来创建和管理 ESXi 上虚拟机的快照,并且虚拟机的支持全量和增量备份。是 VMware 官方的数据保护方案,具体的使用方法这里不做赘述。

相关文章
|
1天前
|
Unix 虚拟化 iOS开发
FreeBSD 13.5 x86_64 OVF (sysin) - VMware 虚拟机模板
FreeBSD 13.5 x86_64 OVF (sysin) - VMware 虚拟机模板
14 1
FreeBSD 13.5 x86_64 OVF (sysin) - VMware 虚拟机模板
|
15天前
|
存储 虚拟化
【2025最新】 神奇!VMware Workstation Pro虚拟机还原与删除功能,让你轻松应对各种场景!
删除和还原VMware虚拟机的操作步骤如下: **删除虚拟机:** 1. 选择要删除的虚拟机,右键点击并选择“移除”。 2. 这仅从列表中移除虚拟机,并未彻底删除。需前往VMware默认存储路径(如 `D:\VMware\data`),找到对应虚拟机文件夹并删除。 **还原虚拟机:** 1. 若误删虚拟机列表项目,可通过右键点击空白处,选择“打开”,找到保存虚拟机的路径文件夹。 2. 选择被删除虚拟机对应的 `.vmx` 配置文件并打开,即可在列表中恢复该虚拟机。 总结:VMware虚拟机可用于模拟多种操作系统和开发环境,掌握删除与还原技巧可提高使用效率。
66 8
【2025最新】 神奇!VMware Workstation Pro虚拟机还原与删除功能,让你轻松应对各种场景!
|
15天前
|
虚拟化
【2025最新】VMware Workstation Pro 虚拟机基础配置教程,方便你的神操作!
VMware Workstation Pro 是一款强大的虚拟化工具,本文简要介绍其基本配置与操作。安装后,用户可以通过“编辑菜单 > 首选项”设置虚拟机保存路径、是否显示托盘图标等全局配置。新建虚拟机时,需选择操作系统类型、配置处理器、内存、网络和硬盘等参数。建议根据主机硬件性能合理分配资源,避免过度占用。创建完成后,用户可加载 ISO 镜像文件安装所需操作系统。通过这些步骤,您可以轻松搭建并管理多个虚拟环境。
75 8
【2025最新】VMware Workstation Pro 虚拟机基础配置教程,方便你的神操作!
|
4月前
|
Ubuntu 网络安全 虚拟化
VMware虚拟机ping不通原因排查及分析
下面以 VMware 虚拟机为例进行介绍。
2584 3
|
15天前
|
存储 编解码 虚拟化
【2025最新】VMware Workstation Pro 虚拟机配置与安装VMware Tools 感受它的强大~
VMware Tools 是 VMware 虚拟机中自带的一种增强工具,能够显著提升虚拟机的性能和用户体验。它提供了优化的显卡驱动程序、文件共享与拖放功能、时间同步以及跨虚拟机和宿主机的复制粘贴功能。安装 VMware Tools 可以让虚拟机在 VMware 平台上运行得更加高效,并且对于老旧系统(如 Win98、Win2000、WinXP)也能提供必要的驱动支持。每个虚拟机都需要独立安装与其操作系统版本相匹配的 VMware Tools,以确保最佳兼容性和性能表现。
58 6
【2025最新】VMware Workstation Pro 虚拟机配置与安装VMware Tools 感受它的强大~
|
15天前
|
Web App开发 安全 Linux
【独家揭秘2025】VMware Workstation Pro虚拟机:免费安装教程大放送,一键解锁操作系统模拟神器!
VMware Workstation Pro 是由威睿(VMware)公司开发的一款功能强大的桌面虚拟化软件,允许用户在同一台物理计算机上同时运行多个操作系统,如Windows、..
54 2
【独家揭秘2025】VMware Workstation Pro虚拟机:免费安装教程大放送,一键解锁操作系统模拟神器!
|
4月前
|
存储 SQL 数据库
虚拟化数据恢复—Vmware虚拟机误还原快照的数据恢复案例
虚拟化数据恢复环境: 一台虚拟机从物理机迁移到ESXI虚拟化平台,迁移完成后做了一个快照。虚拟机上运行了一个SQL Server数据库,记录了数年的数据。 ESXI虚拟化平台上有数十台虚拟机,EXSI虚拟化平台连接了一台EVA存储,所有的虚拟机都存放在EVA存储上。 虚拟化故障: 工组人员误操作将数年前迁移完成后做的快照还原了,也就意味着虚拟机状态还原到数年前,近几年数据都被删除了。 还原快照相当于删除数据,意味着部分存储空间会被释放。为了不让这部分释放的空间被重用,需要将连接到这台存储的所有虚拟机都关掉,需要将不能长时间宕机的虚拟机迁移到别的EXSI虚拟化平台上。
162 50
|
虚拟化 数据安全/隐私保护 Linux

热门文章

最新文章