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

目录

  • 目录
  • 前文列表
  • VDDK
    • 安装 VDDK
  • VixDiskLib
  • VADP

前文列表

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 官方的数据保护方案,具体的使用方法这里不做赘述。

时间: 2024-10-06 07:37:17

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

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

目录 目录 前言 VMware 虚拟机文件类型 VMware 虚拟机的快照 Quiseced Snapshot Quiseced Snapshot 的创建过程 创建快照 创建快照的执行过程及原理 删除快照 CBT CBT 执行过程 queryChangedDiskAreas 开启 CBT 前言 该篇博文是 VMware 虚拟磁盘编程的基础,也是编写 VMware 虚拟机保护与恢复程序的基础,属于相关知识点扫盲. VMware 虚拟机文件类型 VMware 虚拟机在 EXSi 宿主机上的文件类型:

vmware虚拟机详细使用方法

  随着电脑配置不断提高,我们多数人都已经步入了电脑性能过剩时代,不过电脑配置性能过剩也并不是什么坏事,我们可以通过在电脑中创建虚拟机实现一台电脑两个人用,我们只需要多购买一个显示器即可.非常适合家庭朋朋友使用,再也不会出现两个人抢电脑的情况了,呵呵. 虚拟机已经不是什么新鲜事了,大家可以在百度搜索诸如VPS等属于会找到很多VPS服务器均是采用虚拟技术,也就是将一台服务器通过创建虚拟机实现多个独立管理单元,每个管理单元拥有类似于完整一台电脑的功能,可以独立安装各自的操作系统,各自运行,并且可以各

VMware 虚拟化编程(15) — VMware 虚拟机的恢复方案设计

目录 目录 前文列表 将已存在的虚拟机恢复到指定时间点 恢复为新建虚拟机 灾难恢复 恢复细节 恢复增量备份数据 以 RDM 的方式创建虚拟磁盘 创建虚拟机 Sample of VirtualMachineConfigSpec Demo of VirtualMachineConfigSpec 前文列表 VMware 虚拟化编程(1) - VMDK/VDDK/VixDiskLib/VADP 概念简析 VMware 虚拟化编程(2) - 虚拟磁盘文件类型详解 VMware 虚拟化编程(3) -VMwa

VMware 虚拟化编程(13) — VMware 虚拟机的备份方案设计

目录 目录 前文列表 备份思路 备份算法 备份细节 连接到 vCenter 还是 ESXi 如何选择快照类型 是否开启 CBT 如何获取备份数据 如何提高备份数据的传输率 备份厚置备磁盘和精简置备磁盘有什么区别 Thin 精简置备虚拟磁盘 Thick-Lazy 延迟置零的厚置备虚拟磁盘 Thick-Eager 立即置零的厚置备虚拟磁盘 有什么磁盘类型是无法进行备份的 前文列表 VMware 虚拟化编程(1) - VMDK/VDDK/VixDiskLib/VADP 概念简析 VMware 虚拟化编

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

目录 目录 前文列表 全量备份数据的获取方式 增量备份数据的获取过程 前文列表 VMware 虚拟化编程(1) - VMDK/VDDK/VixDiskLib/VADP 概念简析 VMware 虚拟化编程(2) - 虚拟磁盘文件类型详解 VMware 虚拟化编程(3) -VMware vSphere Web Service API 解析 VMware 虚拟化编程(4) - VDDK 安装 VMware 虚拟化编程(5) - VixDiskLib 虚拟磁盘库详解之一 VMware 虚拟化编程(6)

VMware 虚拟化编程(9) — VMware 虚拟机的快照

目录 目录 前文列表 VMware 虚拟机的快照 快照的执行过程 删除快照 快照类型 Quiseced Snapshot 前文列表 VMware 虚拟化编程(1) - VMDK/VDDK/VixDiskLib/VADP 概念简析 VMware 虚拟化编程(2) - 虚拟磁盘文件类型详解 VMware 虚拟化编程(3) -VMware vSphere Web Service API 解析 VMware 虚拟化编程(4) - VDDK 安装 VMware 虚拟化编程(5) - VixDiskLib

VMware虚拟机置备磁盘I/O测试分析

个人的项目实施中,经常有同事或者客户问"VMware虚拟机有三种置备方式,厚置备延迟置零.厚置备格 式.精简置备哪种好",根据不同的具体环境,从不同的侧重点出发,答案是选择最合适的,而不是最好的 . 前段时间,学习了王春海老师的一篇<虚拟磁盘性能测试>的博文,王老师测试了不同存储下,不同虚 拟机格式的磁盘性能,个人受益良多,这篇博文将扩展下王老师的测试,测试厚置备格式与精简置备格式在 传输不同块时的IOPS. 测试设计:在一台Windows 2008 DataCenter系

Vmware虚拟机安装OS X Mountain Lion系统图文教程

Vmware虚拟机安装OS X Mountain Lion系统 安装过程用一个字形容,就是慢,大概需要2-3个小时,看机器性能还有你的RP,我的配置:i5-2557m,4GB,win7 x64 运行速度只能说 更慢!.比真正苹果电脑慢100倍.所以,急性子的人就不要看了 首先,需要注意的事情: 1.必须使用Intel CPU,并且支持硬件虚拟化 当Hardware Virtualization为Yes或者Locked ON的时候才可以使用虚拟机,如果你的CPU支持硬件级虚拟模式但是Hardwar

VMware虚拟机怎么用?

首先我们正常进入电脑系统,然后去网上下载VMware虚拟机软件. 建议大家下载中文汉化版的VMware虚拟机,这样方便使用,软件下载完成后,接下来就是VMware虚拟机软件安装了. 双击下载好的VMware虚拟机软件开始安装,首先我们看到的是VMware虚拟机安装向导,如下图: VMware虚拟机安装向导 VMware虚拟机安装选择兼容性 新建虚拟机,并填写上虚拟机名称以及安装位置 为虚拟机分配处理器资源 为虚拟机分配处理器资源大家可以根据电脑配置实际情况与虚拟应用等方面考虑分配资源多少 为虚拟