The Virtual Disk Development Kit (VDDK) is a set of C/C++ libraries, sample code, utilities, and documentation provided by VMware to assist developers in creating and accessing virtual disk storage. VDDK is often used alongside the vSphere API for developing backup and recovery software, as well as similar applications.
Key features of VDDK include:
- Reading data from virtual disk files.
- Writing data to virtual disk files.
- Backing up individual or all volumes of a virtual machine.
- Connecting a backup agent to vSphere to back up all virtual machines on a storage cluster.
- Managing operations on virtual disk files such as consolidation, expansion, conversion, renaming, and compressing file system images.
- Performing offline virus scans, unified patch management, and data analysis on virtual machines.
- Data recovery or virus removal for offline virtual machines that have been infected or damaged.
Note: In addition to reading full data from VMDK files, VDDK can also utilize Change Block Tracking (CBT) to access incremental data from snapshot files over a specified time interval.
To obtain VDDK, you can download the package, for example, VMware-vix-disklib-6.0.3-4888596.x86_64.tar.gz
, from the official VMware website.
After extracting the package, you will find a directory named vmware-vix-disklib-distrib
which contains several subdirectories including bin64
, doc
, include
, lib32
, and lib64
. The essential components are:
lib
: Contains dynamic link library files, withlibvixDiskLib.so
being the primary one for Linux. This library provides most of the functions for virtual disk operations.include
: Houses the header files needed for C/C++ libraries, particularlyvixDiskLib.h
, which is crucial for referencing VixDiskLib functions.doc
: Provides HTML documentation and C++ sample programs located in thedoc/samples/diskLib
directory.
Installation Steps for VDDK:
- Move the extracted VDDK directory to a standard library path:
mv vmware-vix-disklib-distrib/ /usr/lib/vmware-vix-disklib/
- To avoid conflicts with existing system libraries, move potentially conflicting
.so
files to a newly createdremoved
directory. The specific files to move may vary based on your environment.
cd /usr/lib/vmware-vix-disklib/lib64
mkdir removed
mv libcrypto.so.* libcurl.so.* libglib-* libgobject-* libgthread-* libssl.so.* removed/
- Update the system’s configuration to recognize the new library path and refresh the library cache:
echo "/usr/lib/vmware-vix-disklib/lib64" | sudo tee -a /etc/ld.so.conf.d/vmware-vix-disklib.conf
sudo ldconfig
These steps ensure that VDDK is properly installed on your system and can be utilized without disrupting other applications.