Cinder havana-131111230629-phpapp02
- 3. Cinder Overview
●
Project exists since Folsom release, spun off Nova-volume
●
Cinder manages block storage
●
Not object storage (Swift)
●
Not file-level storage (Manila)
●
Volumes attach to VM instances
●
Boot from volume
●
Volumes have a life-cycle independent of VM instances
- 6. Volume Types
●
Admins can create tiers of storage
●
Specify requirements from storage
●
Users can specify a tier when creating a
volume
- 7. Cinder Scheduler
●
Chooses back-end to place a new volume on
●
Configurable plugins for scheduler
●
Simple
●
Chance
●
Filter
●
Most common is the filter scheduler
●
Has plug-able filters & weights
- 8. Filter Scheduler: Example Flow
●
Drivers continuously report capabilities and state
●
Scheduler starts with list of all back-ends
●
Filters out unsuitable back-ends
●
Insufficient free space
●
Insufficient capabilities
●
Sorts according to weights (e.g., available space)
●
Returns best candidate
- 9. Cinder Volume
●
Manager contains generic code
●
e.g., High-level flow, DB & quota updates
●
Drivers contain back-end specific code
●
Linux LVM
●
Storage controllers from various vendors
●
Distributed file systems
●
Admin can run multiple cinder-volume instances
●
Each able to manage multiple back-ends
●
Each back-end is generally configured to interact with one storage pool
●
Multi-threading
- 10. Cinder Backup
●
Cinder can back up volumes
●
Backups should allow recovery from
●
Volume data corruption
●
Storage failure
●
Site failure (provided that backups are safe)
●
Plug-able driver architecture
●
OpenStack Swift
●
IBM Tivoli Storage Manager
●
Ceph
- 11. Linux Volume Manager
Example: High-Level Attach 1
Nova
VM instance
/dev/vda
KVM
iSCSI
initiator
Cinder
iSCSI
target
Legend
Persistent volume control
Persistent volume data
Note that iSCSI is just
an example – several
additional protocols
are supported
(e.g., FC, NFS)
- 12. Example: High-Level Attach 2
Nova
VM instance
/dev/vda
KVM
iSCSI
initiator
Cinder
Storage Controller
iSCSI
target
Legend
Persistent volume control
Persistent volume data
Note that iSCSI is just
an example – several
additional protocols
are supported
(e.g., FC, NFS)
- 13. Example Flow: Attach Volume
●
Nova calls Cinder via its API, passing connection information
●
e.g., host name, iSCSI initiator name, FC WWPNs
●
cinder-api passes message to cinder-volume
●
Manager does initial error checking and calls volume driver
●
Volume driver does any necessary preparation to allow 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 WWPN
●
Nova creates the connection to the storage using the returned information
●
Nova passes the volume device/file to the hypervisor
- 14. New Major Features in Havana
●
Disk encryption
●
Encryption is done by Nova using dm-crypt, Cinder is made aware of encryption keys
●
Volume Migration
●
Admin interface: cinder migrate <volume-id> <target>
●
Check if storage can migrate the volume
●
If not, create a new volume
– If original volume is detached, Cinder server attaches both and runs 'dd'
– If original volume is attached, Nova performs the copy (KVM-only in Havana)
●
Volume rate limiting
●
Allows rate limiting per volume
●
Can be enforced by Nova (KVM-only in Havana) or by storage
●
Extend Volume
●
Transfer volume ownership
●
Scheduler hints
- 15. Drivers in Havana
● Coraid (AoE)
● Dell Equalogic (iSCSI)
● EMC VMAX/VNX (iSCSI)
● GlusterFS (GlusterFS)
● HP 3PAR (iSCSI/FC)
● HP LeftHand (iSCSI)
● Hitachi HUS (iSCSI)
● Huawei HVS/T-series/Dorado (iSCSI/FC)
● IBM DS8000 (FC)
● IBM GPFS (GPFS)
● IBM Storwize family/SVC (iSCSI/FC)
● IBM XIV (iSCSI/FC)
● Local disk partitions
● LVM (iSCSI)
● NetApp (iSCSI/NFS)
● Nexenta (iSCSI)
● NFS (NFS)
● RBD (Ceph)
● Scality SOFS (scality)
● Sheepdog (sheepdog)
● Solaris (iSCSI)
● SolidFire (iSCSI)
● Windows Server 2012 (iSCSI)
● Zadara (iSCSI)
- 16. Features in the Works for Icehouse
● Read-only volumes
● Volume retype
● Volume replication
● ACLs for volumes
● Multi-attach
● API rate limits
● Volume import
- 17. Thank you!
● Getting started with Cinder:
https://wiki.openstack.org/wiki/Cinder
● Source code:
https://github.com/openstack/cinder
Contact: avishay@il.ibm.com
Thanks to Mike Perez for slide flow inspiration!