Download - Intro to Openstack Cinder and Icehouse Bound

Transcript
Page 1: Intro to Openstack Cinder and Icehouse Bound

KIDSON

THE

BLOCK

NEW

THEpresented by mike perez

Page 2: Intro to Openstack Cinder and Icehouse Bound

MIKEPEREZ

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.

Page 3: Intro to Openstack Cinder and Icehouse Bound

http://www.flickr.com/photos/nooccar/5844185400

cinder core developer

MIKEPEREZ

•Wrote the start of Cinder V2 API

•Cinder API documentation

•Cinder API references

•Compatibility hammer

•More code reviews than I know what to do with

Page 4: Intro to Openstack Cinder and Icehouse Bound

WHAT

http://www.flickr.com/photos/neilhinchley/294337822/

• 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

Page 5: Intro to Openstack Cinder and Icehouse Bound

VOLUMETYPES

•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.

Page 6: Intro to Openstack Cinder and Icehouse Bound

ARCHITECTURALOVERVIEW

Cinder Client

Cinder API

Cinder Volume Cinder BackupCinder Scheduler

SQL DB

AMPQAMPQ

AMPQ

Page 7: Intro to Openstack Cinder and Icehouse Bound

CINDERAPI•Volume create/delete/list/show •Create from image, snapshot

•Snapshot create/delete/list/show •Backups create/restore/list/delete/show •Volume attach/detach (called by Nova) •Manage volume types •Manage quotas •Volume extend •Volume migrate •Transfer volumes from tenant to tenant

Page 8: Intro to Openstack Cinder and Icehouse Bound

CINDERSCHEDULER•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 all 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

Page 9: Intro to Openstack Cinder and Icehouse Bound

CINDERVOLUME•Drivers: Called by Manager, contains back-end-specific code to communicate with various storage types (e.g., Linux LVM, storage controllers 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 generally configured to interact with one storage pool •“Multi-threading”

Page 10: Intro to Openstack Cinder and Icehouse Bound

CINDERBACKUP

•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

Page 11: Intro to Openstack Cinder and Icehouse Bound

ATTACHTHAT• Nova calls 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 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 WWNN.

• Nova creates the connection to the storage using the returned information.

• Nova passes the volume device/file to the hypervisor.

VOLUME

Page 12: Intro to Openstack Cinder and Icehouse Bound

HIGHLEVEL

Nova CinderVM Instance

Linux Volume Manager

KVM

ISCSI Initiator

LegendPersistent Volume DataPersistent Volume Control

/dev/hda

/dev/vda

Target

Page 13: Intro to Openstack Cinder and Icehouse Bound

THEGRID

Page 14: Intro to Openstack Cinder and Icehouse Bound

DRIVERREQUIREMENTS• 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

Page 15: Intro to Openstack Cinder and Icehouse Bound

CURRENTDRIVERS

•Coraid (AoE)

•EMC VMAX/VNX (iSCSI)

•GlusterFS (GlusterFS)

•HP 3PAR (iSCSI/FC)

•HP LeftHand (iSCSI)

•Huawei T-series/Dorado (iSCSI)

•IBM Storwize family/SVC (iSCSI/FC)

•IBM XIV (iSCSI), 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)

•Dell EqualLogic

•VMware VMDK

•IBM General Parallel File System (GPFS)

Page 16: Intro to Openstack Cinder and Icehouse Bound

ICEHOUSEBOUNDGeneral Features

•FC SAN Zone / Access Control management

•State machine

•Volume retype

•Volume Replication

•Multiprocess API

•Disaster recovery

New Drivers:

•Federator Storage

•ProphetStor

•Generic ZFS ISCSI

•HP Lefthand array iSCSI

•HP MSA 2040

Page 17: Intro to Openstack Cinder and Icehouse Bound

THANKYOU!•Get started with Cinder: •https://wiki.openstack.org/wiki/Cinder

•Source Code: •http://github.com/openstack/cinder

•REST API Docs: •http://docs.openstack.org/api/openstack-block-storage/2.0

•Thanks Avishay Traeger from IBM for letting me copy things out of his slides.

Web: http://thing.ee Github: thingee

Twitter: @thingee IRC: thingee

Email: [email protected]