Obsolete:Cinder/EMCVolumeDriver
- Launchpad Entry:
- Created: 12 December 2012
- Contributors: Xing Yang
Summary
We would like to introduce support for EMC storage in the Cinder-Volume service. This blueprint proposes a driver based on the existing ISCSIDriver, with the ability to create/delete and export/unexport volumes, etc.
The Cinder Driver executes the volume operations by communicating with the backend EMC storage. It uses a CIM client in python called PyWBEM to make CIM operations over HTTP. EMC CIM Object Manager (ECOM) is packaged with the SMI-S Provider. It is a CIM server that allows CIM clients to make CIM operations over HTTP, using SMI-S in the backend for EMC storage operations. SMI-S Provider supports the SNIA Storage Management Initiative (SMI), an ANSI standard for storage management. This initiative has developed a standard management interface that has culminated in a comprehensive specification (SMI-Specification or SMI-S). The SMI-S Provider is paired with the EMC CIM Object Manager Server to provide an SMI-compliant interface for VMAX/VMAXe and VNX storage systems.
Release Note
For the initial implementation we would like to provide the ability to create, delete, attach, and detach VMAX/VMAXe and VNX volumes to nova-compute VM's via iSCSI.
Rationale
User stories
User sets flags in /etc/cinder.conf, and starts/restarts cinder-volume service.
Example cinder.conf entries:
iscsi_target_prefix = iqn.2001-07.com.vnx iscsi_ip_address = 10.10.61.35 volume_driver = cinder.volume.emc.EMCISCSIDriver cinder_emc_config_file = /opt/stack/cinder/etc/cinder/cinder_emc_config.xml
EMC VMAX/VMAXe or VNX storage should now be available for use by OpenStack for additional block storage.
volume-create:
- In create_volume, one SMI-S method call is invoked to create a volume of the specified size.
Class: EMC_StorageConfigurationService Method: CreateOrModifyElementFromStoragePool Parameters: ElementName: Volume name generated by Openstack. InPool: Object path of the EMC_StoragePool where volume will be created from. It is either EMC_VirtualProvisioningPool (for VMAX/VMAXe) or EMC_UnifiedStoragePool (for VNX). Only thin pool is supported. ElementType: 5 Size: Size of the volume in bytes.
volume-delete:
- In delete_volume, one SMI-S method call is invoked to delete the specified volume.
Class: EMC_StorageConfigurationService Method: EMCReturnToStoragePool Parameters: TheElements: Object path of the EMC_StorageVolume that will be deleted.
This has been tested with the Folsom release using Horizon and Cinder CLI.
Assumptions
Notes
Design
Subclass implementation of the ISCSIDriver in cinder/volume/driver.py