MIKE PEREZ senior developer for DreamHost •Maintain Cinder setup. •Maintain interactions between Nova and Cinder. •Working with 900 Ceph OSD setup comes out to around 4 petabytes. •Contribute fixes upstream.
WHAT • project exists since Folsom release, spun off Nova-volume • cinder manages block storage • not an object storage • not a file level storage • volumes attach to VM Instances • boot from volume • volumes have a lifecycle independent of VM instance http://www.flickr.com/photos/neilhinchley/294337822/
VOLUME TYPES •Admin can create tiers of storage. e.g. two LVM backends, one with SSD’s and the other with HDD’s. •Users can specify a tier they want when creating a volume.
ARCHITECTURAL OVERVIEW Cinder Client Cinder API SQL DB AMPQ AMPQ AMPQ Cinder Scheduler Cinder Volume Cinder Backup
CINDER API •Volume create/delete/list/show •Create from image, snapshot •Snapshot create/delete/list/show •Backups create/restore/list/delete/show •Volume attach/detach (cal ed by Nova) •Manage volume types •Manage quotas •Volume extend •Volume migrate •Transfer volumes from tenant to tenant
CINDER SCHEDULER •Chooses which back-end to place a new volume on •Configurable plugins for schedulers •Filter scheduler has filters and weighers •Filter scheduler Flow Example: •Starts with list of al back-ends •Filters according to capabilities •Drivers report capabilities and state (e.g., free space) •Default filters •Volume types •Sorts according to weights e.g., available free space •Returns best candidate
CINDER VOLUME •Drivers: Cal ed by Manager, contains back-end-specific code to communicate with various storage types (e.g., Linux LVM, storage control ers from various vendors, distributed file systems, etc.) •Admin can run multiple cinder-volume instances, each with its own configuration file describing settings and the storage back-end •One cinder-volume instance can manage multiple back-ends •Each back-end driver is general y configured to interact with one storage pool •“Multi-threading”
CINDER BACKUP •A backup is an archived copy of a Volume stored in a object store. •A backup is just the data that was written, unlike a snapshot which is the entire block. •Use Swift, Ceph, or IBM Tivoli Storage Manager
ATTACH THAT VOLUME • Nova cal s Cinder via its API, passing connection information. e.g., host name, iSCSI initiator name, FC WWNNs • Cinder API passes message to Cinder Volume. • Manager does initial error checking and cal s volume driver. • Volume driver does any necessary preparation to al ow the connection. e.g., give the nova host permissions to access the volume. • Volume driver returns connection information, which is passed to Nova. e.g., iSCSI iqn and portal, FC WWNN. • Nova creates the connection to the storage using the returned information. • Nova passes the volume device/file to the hypervisor.
HIGH Legend Persistent Volume Data LEVEL Persistent Volume Control Nova Cinder VM Instance Linux Volume /dev/vda Manager KVM ISCSI Target Initiator /dev/hda
DRIVER REQUIREMENTS • Volume Create/Delete • Volume Attach/Detach • Snapshot Create/Delete • Create Volume from Snapshot • Get Volume Stats • Copy Image to Volume • Copy Volume to Image • Clone Volume • Extend Volume