目录
前文列表
VMware 虚拟化编程(1) — VMDK/VDDK/VixDiskLib/VADP 概念简析
VMware 虚拟化编程(2) — 虚拟磁盘文件类型详解
VMware 虚拟化编程(3) —VMware vSphere Web Service API 解析
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 库以及相关的 Docs 和 Sample,开发者能够通过调用这些库函数来实现连接和管理 VMware 虚拟磁盘文件(VMDK File)。
VDDK 提供了以下功能:
- 读取虚拟磁盘文件的数据。
- 写入数据到虚拟磁盘文件。
- 备份虚拟机的单个指定卷或所有卷。
- 将备份代理连接到 vSphere,备份存储集群上的所有虚拟机。
- 管理虚拟磁盘文件的整合、扩展、转换、重命名、压缩文件系统镜像。
- 运行离线的虚拟机病毒扫描、统一补丁与数据分析。
- 对中毒和被破坏的离线虚拟机进行数据恢复或病毒清除。
NOTE:其中对虚拟磁盘文件的数据读写操作,除了可以通过直接访问 VMDK File 来获取虚拟机的全量数据之外。还能够应用 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 等子目录。
lib:包含 vixDiskLib.lib(Windows) 或者 libvixDiskLib.so(Linux) 等动态链接库(共享对象)文件,其中最重要莫过于 libvixDiskLib.so 库文件,该文件也相当于 VixDiskLib 虚拟磁盘库,VDDK 中绝大多数的虚拟磁盘操作函数都是由它提供。
include:包含一系列 C/C++ Lib 库所需的头文件,其中 vixDiskLib.h 头文件,其作为 VixDiskLib 虚拟磁盘库的声明,是引用 VixDiskLib 库函数的关键。
doc 目录:提供了 HTML 文档,以及 doc/samples/diskLib 目录下使用 C++ 实现的示例程序。
安装 VDDK
- Step 1:将 VDDK 解压目录放置到操作系统 Lib 库路径下
mv vmware-vix-disklib-distrib/ /usr/lib/vmware-vix-disklib/
- Step 2:根据操作系统环境的不同,部分 VDDK 提供的 .so 文件可能会与操作系统自身的 .so 文件造成冲突。所以需要将与操作系统原先已经存在的同名 .so 文件移动到 removed 目录,防止安装 VDDK 后会影响到操作系统的正常运行。注意,需要移动的 .so 文件清单根据个人环境而定。
cd /usr/lib/vmware-vix-disklib/lib64
mkdir removed
mv libcrypto.so.* libcurl.so.* libglib-* libgobject-* libgthread-* libssl.so.* removed/
- Step 3:将 VDDK Lib 库文件的路径写入系统环境路径并刷新
echo "/usr/lib/vmware-vix-disklib/lib64" > /etc/ld.so.conf.d/vmware-vix-disklib.conf
ldconfig