Performing Advanced
Manipulation of Delta Disks
For advanced manipulation of delta disks,
you can use
VirtualDeviceConfigSpec
methods
such as
VirtualDeviceConfigSpec.create
and
VirtualDeviceConfigSpec.add
.
Together
add
and
create
allow you to create a blank delta disk on top
of an existing disk. For the
VirtualDeviceConfigSpec
you specify
add
to prepare the VM for a
new delta disk, then
create
to initiate the file
operation for the delta disk whose
parent
property is an existing
disk. These methods create a new delta disk whose parent is the pre-existing
disk.
One use case is adding a delta disk on top of an
existing virtual disk in a virtual machine without creating a snapshot.
Adding a
Delta Disk Backing illustrates how to add the delta disk for the first
virtual disk in the virtual machine.
Adding a Delta Disk Backing
disk = None for any of my VMs in dev if (VirtualDisk.isinstance == dev): disk = dev # Remove the disk removeDev = new VirtualDeviceConfigSpec() removeDev.operation = "remove" removeDev.device = disk # Create a new delta disk which has the # original disk as its parent disk addDev = new VirtualDeviceConfigSpec() addDev.operation = "add" addDev.fileOperation = "create" addDev.device = copy.copy(disk) addDev.device.backing = copy.copy(disk.backing) addDev.device.backing.fileName = "[" + disk.backing.datastore.name + "]" addDev.device.backing.parent = disk.backing spec = new VirtualMachineConfigSpec() spec.deviceChange = [removeDev, addDev]
For working code with a
similar use case, see the JAXWS sample program
VMDeltaDisk.java
in
the SDK under
vsphere-ws/java
.