Developing for VMware Platform Products
In a VMware based data center, commercial backup software is likely to access virtual disks remotely, perhaps from a backup proxy. The proxy can be a virtual machine or a physical machine with backup-restore software installed and access to alternate storage such as a tape autochanger or equivalent.
At a given point in time, during the backup window, backup software:
1
2
3
4
In the above procedure, the virtual disk library is used in the second step only. The other steps use a portion of the vSphere API (called VADP) to snapshot and save configuration of virtual machines. The virtual disk in a cluster is “managed” by vSphere.
Managed Disk and Hosted Disk
Analogous to a hard disk drive, virtual disk files represent the storage volumes of a virtual machine. Each is named with .vmdk suffix. On a system running VMware Workstation, file systems of each guest OS are kept in VMDK files hosted on the system’s physical disk. VMDK files can be accessed directly on the host.
With the virtual machine file system (VMFS) on ESXi hosts, VMDK files again represent storage volumes of virtual machines. They are on VMFS, which often resides on shared storage in a cluster. The vCenter Server manages the cluster storage so it can migrate (vMotion) virtual machines from one ESXi host to another without moving VMDK files. VMFS storage is therefore called managed disk.
VMFS disk can reside on a storage area network (SAN) attached to ESXi hosts by Fibre Channel, iSCSI, or SAS connectors. It can also reside on network attached storage (NAS), or on directly attached disk.
Managed Disk and Hosted Disk depicts the arrangement of managed disk (in this case VMDK on a SAN-hosted VMFS file system) and hosted disk (VMDK files on physical disk).
Managed Disk and Hosted Disk
 
 
 
 
 
 
The VDDK supports both managed disk and hosted disk, although some functions are not supported for managed disk, and other facilities are not supported for hosted disk. Exceptions are noted in documentation.
Advanced Transports
With managed disk, VDDK applications can make use of advanced transports to perform many I/O operations directly on the SAN, rather than over the LAN. This improves performance and saves network bandwidth.
VDDK and VADP Compared
The Virtual Disk Development Kit (VDDK) includes a set of C library routines for manipulating virtual disk (VixDiskLib) and for mounting virtual disk partitions (VixMntapi). The VDDK focuses on efficient access and transfer of data on virtual disk storage.
The vSphere Storage APIs for Data Protection (VADP) is a marketing term for a subset of the vSphere API that enables backup and restore applications. The snapshot-based VADP framework allows efficient, off-host, centralized backup of virtual machine storage. After taking a snapshot to quiesce virtual disk, software can then back up storage using VDDK library routines.
The vSphere API is an XML-based Web service that provides the interfaces for vCenter Server management of virtual machines running on ESXi hosts.
Developers need both VDDK and VADP to write data protection software. VADP is presented in Backing Up Virtual Disks in vSphere.
Platform Product Compatibility
To support a new release of vSphere, in most cases you should update and recompile your software with a corresponding new release of VDDK. This is because VDDK is continually updated to support new features in vSphere. As of 5.0, the version number of VDDK matches the version number of vSphere.
Since its inception in 2008, VDDK has been backward compatible with virtual platform products such as VMware Workstation, ESXi, and vCenter Server. VMware Fusion was never supported.
Redistributing VDDK Components
After you use the VDDK to develop software applications that run on VMware platform products, you might need to repackage library components that are compiled into your software.
To qualify for VDDK redistribution, you must be in the VMware TAP program at Select level or above, and sign a redistribution agreement. Contact your VMware alliance manager to request the VDDK redistribution agreement. VMware would like to know how you use the VDDK, in what products you plan to redistribute it, your company name, and your contact information.