VMware VMDK cinder driver

Registered by Kartik Bommepally on 2013-07-17

The goal of this blueprint is to implement VMDK driver for cinder. The driver will allow management of cinder volume on any VMware vCenter Server or ESX managed datastore. In this project, we are essentially mapping the Cinder Volume construct to VMDK file(s) that form the persistent block storage for virtual machines within the VMware stack. Today, there is no cinder driver implementation for the VMware stack and the nova driver allows only attaching/detaching discovered iSCSI targets as RDM. This driver will allow life cycle management for a cinder volume that is backed by a VMDK file(s) within a VMware datastore. This project also positions Cinder to take advantage of features provided by VMFS and upcoming technologies such as vSAN, vVol and others.

Because of the design of vCenter, each VMDK needs to be a "child" object of one or more VM's. In this implementation, we use a "shadow" VM to back the Cinder Volume. This ensures that VMware specific features such as snapshots, fast cloning, vMotion, etc. will continue to work without breaking any of the Cinder Volume constructs or abstractions. This virtual machine backing a volume will never be powered on and is only an abstraction for performing operations such as snapshots or cloning of the cinder volume. By using virtual machine as a representation for cinder volume we can perform any operation on a cinder volume that can be done on the corresponding virtual machine using the public SDK.

Blueprint information

Status:
Complete
Approver:
John Griffith
Priority:
Medium
Drafter:
Kartik Bommepally
Direction:
Approved
Assignee:
Kartik Bommepally
Definition:
Approved
Series goal:
Accepted for havana
Implementation:
Implemented
Milestone target:
milestone icon 2013.2
Started by
John Griffith on 2013-07-29
Completed by
Thierry Carrez on 2013-09-05

Related branches

Sprints

Whiteboard

Checked in with Kartik and things are pretty much set here, just awaiting review from legal team at VMware.

Gerrit topic: https://review.openstack.org/#q,topic:bp/vmware-vmdk-cinder-driver,n,z

Addressed by: https://review.openstack.org/41600
    Implements get_volume_stats for VMDK driver

Addressed by: https://review.openstack.org/43465
    VMDK copy_image_to_volume and copy_volume_to_image

(?)

Work Items

Work items:
get_volume_stats with server connection: INPROGRESS
create_volume and delete_volume: INPROGRESS
initialize_connection and terminate_connection: INPROGRESS
create_snapshot and delete_snapshot: INPROGRESS
create_volume_from_snapshot and create_cloned_volume: INPROGRESS
copy_image_to_volume and copy_volume_to_image: INPROGRESS

This blueprint contains Public information 
Everyone can see this information.