Virtual Disk API Programming Guide - Documentation - VMware
Virtual Disk API Programming Guide - Documentation - VMware
Virtual Disk API Programming Guide - Documentation - VMware
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Clean Up After Disconnect<br />
<strong>Virtual</strong> <strong>Disk</strong> <strong>API</strong> Functions<br />
If virtual machine state was not cleaned up correctly after connection shut down, Vix<strong>Disk</strong>Lib_Cleanup()<br />
removes extra state for each virtual machine. Its three parameters specify connection, and pass back the<br />
number of virtual machines cleaned up, and the number remaining to be cleaned up.<br />
int numCleanedUp, numRemaining;<br />
VixError vixError = Vix<strong>Disk</strong>Lib_Cleanup(&cnxParams, &numCleanedUp, &numRemaining);<br />
Updating Applications for Advanced Transport<br />
To update your applications for advanced transport with managed disk, follow these steps:<br />
1 Find all instances of Vix<strong>Disk</strong>Lib_Connect() and change them to Vix<strong>Disk</strong>Lib_ConnectEx().<br />
The vix<strong>Disk</strong>Lib sample program was extended to use Vix<strong>Disk</strong>Lib_ConnectEx() with the -mod option.<br />
2 Likewise, change Vix<strong>Disk</strong>Lib_Init() to Vix<strong>Disk</strong>Lib_InitEx() and be sure to call it only once.<br />
3 Disable virtual machine relocation with the Vix<strong>Disk</strong>Lib_PrepareForAccess() call.<br />
4 Add parameters in the middle:<br />
a TRUE for high performance read‐only access, FALSE for read/write access.<br />
b Snapshot moRef, if applicable.<br />
c NULL to accept transport method defaults (recommended).<br />
5 Re‐enable virtual machine relocation with the Vix<strong>Disk</strong>Lib_EndAccess() call.<br />
6 Find Vix<strong>Disk</strong>Lib_Disconnect() near the end of program, and for safety add a Vix<strong>Disk</strong>Lib_Cleanup()<br />
call immediately afterwards.<br />
7 Compile with the new flexible‐transport‐enabled version of Vix<strong>Disk</strong>Lib.<br />
The advanced transport functions are useful for backing up or restoring data on virtual disks managed by<br />
<strong>VMware</strong> vSphere. Backup is based on the snapshot mechanism, which provides a data view at a certain point<br />
in time, and allows access to quiescent data on the parent disk while the child disk continues changing.<br />
Algorithm for vSphere Backup<br />
A typical backup application follows this algorithm:<br />
Preferably through vCenter Server, contact the ESX/ESXi host and discover the target virtual machine.<br />
Ask the ESX/ESXi host to take a snapshot of the target virtual machine.<br />
Using the vSphere <strong>API</strong> (PropertyCollector), capture configuration (<strong>Virtual</strong>MachineConfigInfo)<br />
and changed block information (with queryChanged<strong>Disk</strong>Areas). Save these for later.<br />
Using advanced transport functions and Vix<strong>Disk</strong>Lib, access the snapshot and save the data in it.<br />
If Changed Block Tracking is enabled, the snapshot contains only incremental backup data.<br />
Ask the ESX/ESXi host to delete the backup snapshot.<br />
A typical back‐in‐time disaster recovery or file‐based restore follows this algorithm:<br />
Preferably through <strong>VMware</strong> vCenter, contact the ESX/ESXi host containing the target virtual machine.<br />
Ask the ESX/ESXi host to halt and power off the target virtual machine.<br />
Using advanced transport functions, restore a snapshot from saved backup data.<br />
For disaster recovery to a previous point in time, have the virtual machine revert to the restored snapshot.<br />
For file‐based restore, mount the snapshot and restore requested files.<br />
Chapter 7, “Designing vSphere Backup Solutions,” on page 57 presents these algorithms in more detail and<br />
includes code samples.<br />
<strong>VMware</strong>, Inc. 39