SlideShare a Scribd company logo
OpenStack Cinder
Deep Dive
Havana Release
Presented by: Avishay Traeger
Avishay Traeger
IBM Research - Haifa
Cinder Core Team
.
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
Architectural Overview
cinder-api
cinder-scheduler
cinder-volume
driver
cinder-backup
SQL DB
cinder client
AMQP
AMQP
AMQP
REST
AMQP
Storage
Cinder API
●
Volume create/delete/list/show
●
Create from image, snapshot, volume
●
Snapshot create/delete/list/show
●
Backup create/restore/delete/list/show
●
Volume attach/detach (called by Nova)
●
Volume types
●
Quotas
Volume Types
●
Admins can create tiers of storage
●
Specify requirements from storage
●
Users can specify a tier when creating a
volume
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
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
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
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
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)
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)
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
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
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)
Features in the Works for Icehouse
● Read-only volumes
● Volume retype
● Volume replication
● ACLs for volumes
● Multi-attach
● API rate limits
● Volume import
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!

More Related Content

Cinder havana-131111230629-phpapp02

  • 1. OpenStack Cinder Deep Dive Havana Release Presented by: Avishay Traeger
  • 2. Avishay Traeger IBM Research - Haifa Cinder Core Team .
  • 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
  • 5. Cinder API ● Volume create/delete/list/show ● Create from image, snapshot, volume ● Snapshot create/delete/list/show ● Backup create/restore/delete/list/show ● Volume attach/detach (called by Nova) ● Volume types ● Quotas
  • 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!