Developing for VMware Platform Products
In a VMware based datacenter, commercial backup software is likely to access virtual disks remotely, perhaps from a backup proxy. The backup proxy can be a virtual machine with backup-restore software installed and knowledge of a tape autochanger or equivalent. At a given point in time, the 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 ESX/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 ESX/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 ESX/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 ESX/ESXi hosts.
Developers need both VDDK and VADP to write data protection software. VADP is presented in Designing vSphere Backup Solutions.
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 VMware platform products such as Workstation, ESX/ESXi 3.5, and VirtualCenter 2.5 (now vCenter Server). VMware Fusion was never supported. VDDK is no longer tested with Workstation, but Workstation makes a good development platform.
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.