VMware VMDK driver
Use the VMware VMDK driver to enable management of the
OpenStack Block Storage volumes on vCenter-managed data
stores. Volumes are backed by VMDK files on data stores using
any VMware-compatible storage technology such as NFS, iSCSI,
FiberChannel, and vSAN.
Functional context
The VMware VMDK driver connects to vCenter, through
which it can dynamically access all the datastores visible
from the ESX hosts in the managed cluster.
When you create a volume, the VMDK driver creates a VMDK
file on demand. The creation of this VMDK file is
completed only when the volume is subsequently attached to
an instance, because the set of datastores visible to the
instance determines where to place the volume.
The running vSphere VM is then automatically
reconfigured to attach the VMDK file as an extra disk.
Once attached, you can log in to the running vSphere VM to
rescan and discover this extra disk.
Configuration
The recommended volume driver for OpenStack Block Storage is
the VMware vCenter VMDK driver. When you configure the
driver, you must match it with the appropriate OpenStack
Compute driver from VMware and both drivers must point to
the same server.
For example, in the nova.conf file,
use this option to define the Compute driver:
compute_driver=vmwareapi.VMwareVCDriver
In the cinder.conf file, use this
option to define the volume driver:
volume_driver=cinder.volume.drivers.vmware.vmdk.VMwareVcVmdkDriver
The following table lists various options that the
drivers support for the OpenStack Block Storage
configuration (cinder.conf):
VMDK disk type
The VMware VMDK drivers support the creation of VMDK
disk files of type thin, thick,
or eagerZeroedThick. Use the
vmware:vmdk_type
extra spec key with the
appropriate value to specify the VMDK disk file type.
The following table captures the mapping between the extra
spec entry and the VMDK disk file type:
Extra spec entry to VMDK disk file type
mapping
Disk file type |
Extra spec key |
Extra spec value |
thin |
vmware:vmdk_type |
thin |
thick |
vmware:vmdk_type |
thick |
eagerZeroedThick |
vmware:vmdk_type |
eagerZeroedThick |
If no vmdk_type
extra spec entry is
specified, the default disk file type is
thin.
The example below shows how to create a
thick
VMDK volume using the appropriate
vmdk_type
:
$ cinder type-create thick_volume
$ cinder type-key thick_volume set vmware:vmdk_type=thick
$ cinder create --volume-type thick_volume --display-name volume1 1
Clone type
With the VMware VMDK drivers, you can create a volume
from another source volume or from a snapshot point. The
VMware vCenter VMDK driver supports clone types
full and
linked/fast. The clone type is
specified using the vmware:clone_type
extra
spec key with the appropriate value. The following table
captures the mapping for clone types:
Extra spec entry to clone type mapping
Clone type |
Extra spec key |
Extra spec value |
full |
vmware:clone_type |
full |
linked/fast |
vmware:clone_type |
linked |
If not specified, the default clone type is
full.
The following is an example of linked cloning from
another source volume:
$ cinder type-create fast_clone
$ cinder type-key fast_clone set vmware:clone_type=linked
$ cinder create --volume-type fast_clone --source-volid 25743b9d-3605-462b-b9eb-71459fe2bb35 --display-name volume1 1
Note: The VMware ESX VMDK driver ignores the extra spec
entry and always creates a full
clone.
Supported operations
The following operations are supported by the VMware
vCenter and ESX VMDK drivers:
Create volume
Create volume from another source volume.
(Supported only if source volume is not attached
to an instance.)
Create volume from snapshot
Create volume from glance image
Attach volume (When a volume is attached to an
instance, a reconfigure operation is performed on
the instance to add the volume's VMDK to it. The
user must manually rescan and mount the device
from within the guest operating system.)
Detach volume
Create snapshot (Allowed only if volume is not
attached to an instance.)
Delete snapshot (Allowed only if volume is not
attached to an instance.)
Upload as image to glance (Allowed only if
volume is not attached to an instance.)
Although the VMware ESX VMDK driver supports these
operations, it has not been extensively tested.
Data store selection
When creating a volume, the driver chooses a data store
which is connected to maximum number of hosts. This is
meant to reduce the number of volume migrations while
attaching the volume to instances. The volume needs to be
migrated if the instance's ESX host cannot access the
data store containing the volume. In case of ties, the
data store with lowest space utilization is selected, where
space utilization is defined by the metric
(1 - freespace/totalspace).