The VMware® Virtual Disk Development Kit Programming Guide introduces the Virtual Disk Development Kit (VDDK) and the vSphere Storage APIs – Data Protection (VADP). For VDDK it describes how to develop software using a virtual disk library that provides a set of system-call style interfaces for managing virtual disks on ESXi hosts. For VADP it describes how to write backup and restore software that can be managed by vCenter Server® for vSphere.

To view this version or previous versions of this book and other public VMware API and SDK documentation, go to http://www.vmware.com/support/pubs/sdk_pubs.html.

Revision History

Revision History summarizes the significant changes in each version of this guide.

Table 1. Revision History
Revision Description
2022-05-16 Revised "Configure SCSI Controllers in Linux Proxy VM" topic. Alt tags for accessibility.
2021-08-23 For vSphere 7.0 Update 3. Configurable async I/O buffers for NFC.
2020-09-16 For vSphere 7.0 Update 1. Added best practices for NBD backup. Inclusive terminology (see below). Renamed allowed and disallowed lists for SAN transport.
2020-04-02 For vSphere 7.0. Dedicated network for NBD backups, CBT enhancements.
2019-08-20 For vSphere 6.7 Update 3. Note change of policy for phone home (CEIP) going forward.
2019-04-11 For vSphere 6.7 Update 2, minor corrections, Storage Spaces stop application quiescing.
2018-10-16 For vSphere 6.7 Update 1, enhancements to VixMntapi library on Linux, more OS support.
2018-04-17 For vSphere 6.7, async NBD, query allocated blocks, First Class Disk, vTPM, phone home.
2017-03-09 Added section to best practices about backing up and restoring encrypted virtual disks.
2017-01-11 Corrections regarding 2TB virtual disk limits, more about ESXi connections.
2016-11-15 Final version for VDDK 6.5. New support for encryption, NBDSSL compression, and VSS extensions.
2016-03-25 Removed statement that disks not associated with a virtual machine can be mounted.
2016-02-02 Fallback to NBDSSL, SCSI order for disk mount, no linked clone SAN restore, EUC non-support.
2015-07-13 Clarified connection port and RAID support, more allowed list details, added Linux freeze and thaw.
2015-05-05 Documented allowed and disallowed lists for device path selection, corrected install procedures.
2014-12-26 Final version for VDDK 6.0. Virtual volumes support. SSL certificate checking now mandatory.
2014-04-08 VDDK 5.5.1 supports GPT. Snapshot quiesce and memory are incompatible. Describe VMDK version 3.
2013-11-08 Fixed several errors involving roles and licensing, physical or virtual proxy, and log level.
2013-10-14 Corrections regarding 32-bit Windows and PackageCode. Removed Reparent and Combine APIs.
2013-09-22 Final version for the vSphere 5.5 release, with new chapter on vApp backup for vCloud Director.
2012-12-21 Bug fix version of the vSphere 5.1 manual: numeric change ID policy, mount restrictions.
2012-10-05 Final version of this manual for the vSphere 5.1 release.
2011-11-18 Bug fix version for 4Q 2011 refresh of the VMware vSphere Documentation Center.
2011-08-22 Final version for the VDDK 5.0 release, subsuming Designing Backup Solutions technical note.
2010-10-12 Bug fix revision for the VDDK 1.2.1 release
2010-08-05 Version for vSphere 4.1 and the VDDK 1.2 public release.
2009-05-29 Final version for the VDDK 1.1 public release.
2008-04-11 Updated version for release 1.0 of the Virtual Disk Development Kit.
2008-01-31 Initial version of the Virtual Disk Development Kit for partner release.

Inclusive Terminology

At VMware, we value inclusion. To foster this principle within our customer, partner, and internal community, we are replacing some of the terminology in our content. We have updated this guide to remove instances of non-inclusive terminology.

Intended Audience

This guide is intended for developers who are creating applications that manage virtual storage, especially backup and restore applications. It assumes knowledge of C and C++ programming. For VADP development, this guide assumes knowledge of Java.

Supported Platform Products

You can develop VDDK programs using either Linux or Windows, and test them using VMware Workstation or ESXi and vSphere. To develop and test VADP programs, you need a vCenter Server and ESXi hosts, preferably with shared cluster storage.

VMware Technical Publications

To access current and past versions of VMware SDK documentation and API references, visit the http://code.vmware.com website.

To access current and past versions of VMware user manuals, visit the http://docs.vmware.com website.