open stack solidfire-mavenspire-meetup

34
Office:443.433.0106 Email:[email protected] OpenStack Block Storage OpenStack Storage and Cinder Interactive Discussion!!! Gene Dubensky, SE, [email protected] Ed Balduf, Cloud Architect – OpenStack, [email protected]

Upload: gene-dubensky

Post on 17-Aug-2015

155 views

Category:

Technology


0 download

TRANSCRIPT

Office:443.433.0106 Email:[email protected]

OpenStack Block Storage

OpenStack Storage and Cinder Interactive Discussion!!!

Gene Dubensky, SE, [email protected]

Ed Balduf, Cloud Architect – OpenStack, [email protected]

Office:443.433.0106 Email:[email protected]

Who are these guys?

PRESENTER: Gene Dubensky, Systems Engineer in MD/DC/VA, at SolidFire Inc. which is based in Boulder, CO.

Formerly Cisco and Sun.

CONTENT CREATOR: Ed Balduf, Cloud Solutions Architect – OpenStack at SolidFire Inc.

Formerly Fusion-io/SanDisk and NetApp. Developed OpenStack drivers for Fusion-io arrays. Now responsible for OpenStack Solutions at SolidFire.

Office:443.433.0106 Email:[email protected]

Quick Poll: ●  How many of you contribute to OpenStack?

●  How many of you are end-users of OpenStack?

●  How many of you are OpenStack Operators?

●  How many of you work for Vendor Organizations that contribute to OpenStack?

●  How many are “all of the above”?

●  How many just heard there was free Beer and Food?

Office:443.433.0106 Email:[email protected]

What do you mean when you say Storage?

Office:443.433.0106 Email:[email protected]

●  Ephemeral

●  Non-Persistent ●  Life Cycle coincides with an Instance ●  Usually local FS/QCOW file

●  Object

●  Manages data as.. well, an Object ●  Think photos, mp4’s etc ●  Typically “cheap and deep” ●  Commonly SWIFT

●  Shared FS

●  We all know and love NFS ●  Soon to be Manila

Number of different types of Storage in OpenStack, each serving a different use case

●  Block

●  Foundation for the other types

●  Think raw disk

●  Typically higher performance

●  Cinder

Office:443.433.0106 Email:[email protected]

Most common question, difference between Object and Block?

Cinder / Block Storage Swift / Object Storage

Objectives ●  Storage for running VM disk

volumes on a host ●  Ideal for performance sensitive apps ●  Enables Amazon EBS-like service

●  Ideal for cost effective, scale-out storage ●  Fully distributed, API-accessible ●  Well suited for backup, archiving, data retention ●  Enables Dropbox-like service

Use Cases

●  Production Applications ●  Traditional IT Systems ●  Database Driven Apps ●  Messaging / Collaboration ●  Dev / Test Systems

●  VM Templates ●  ISO Images ●  Disk Volume Snapshots ●  Backup / Archive ●  Image / Video Repository

Workloads ●  High Change Content ●  Smaller, Random R/W ●  Higher / “Bursty” IO

●  Typically More Static Content ●  Larger, Sequential R/W ●  Lower IOPS

Office:443.433.0106 Email:[email protected]

Let’s talk Cinder!

Office:443.433.0106 Email:[email protected]

Cinder Mission Statement To implement services and libraries to provide on demand, self-service

access to Block Storage resources. Provide Software Defined Block Storage via abstraction and automation on top of various traditional backend block storage devices.

Huh? So it’s simply allowing you to dynamically create/attach/detach disks to your

Nova Instances. Those are the basics, much more advanced capabilities will depend on the version of OpenStack/Cinder and storage vendors’ exposed advanced features.

Office:443.433.0106 Email:[email protected]

Office:443.433.0106 Email:[email protected]

Office:443.433.0106 Email:[email protected]

How it works ●  Plugin architecture, use your own vendors

backend(s) or use the default

●  Backend devices invisible to end-user ●  Consistent API regardless of backend ●  Filter Scheduler let’s you get fancy ●  expose differentiating features via custom

volume-types and extra-specs

Office:443.433.0106 Email:[email protected]

Cinder Default/Reference Implementation Includes

●  Base implementation using LVM ●  Just add disks ●  Great for POC and getting started ●  Sometimes good enough ●  Might be lacking for your performance, H/A and Scaling needs (it all depends) ●  Can Scale by adding Nodes ●  Cinder-Volume Node utilizes it’s local disks (allocate by creating an LVM VG) ●  Cinder Volumes are LVM Logical Volumes, with an iSCSI target created for each

➔  Typical max size recommendations per VG/Cinder-Volume backend ~ 5 TB ➔  No Redundancy (yet)

Office:443.433.0106 Email:[email protected]

Look at a deployment

Office:443.433.0106 Email:[email protected]

Sometimes LVM Isn’t Enough

* datera * fujitsu_eternus * fusionio * hitachi-hbsd * hauwei * nimble * prophetstor * pure * zfssa * New as of Juno Release

coraid emc-vmax emc-xtremio eqlx glusterfc hds ibm-gpfs ibm-xiv lvm netapp nexenta nfs

Ceph RBD HP-3Par HP-LeftHand scality sheepdog smbfs SolidFire vmware-vmdk window-hyperv zadara

Plugin Architecture gives you choices (maybe too many) and you can mix them together:

Office:443.433.0106 Email:[email protected]

Only Slightly Different

Office:443.433.0106 Email:[email protected]

Office:443.433.0106 Email:[email protected]

Adding Cinder conf file entries #Append  to  /etc/cinder.conf  enabled_backends=lvm,solidfire  [lvm]  volume_group=cinder_volumes  volume_driver=cinder.volume.drivers.lvm.LVMISCSIDriver  volume_backend_name=LVM_iSCSI  [solidfire]  volume_driver=cinder.volume.drivers.solidfire.SolidFire  san_ip=192.168.138.180  san_login=admin  san_password=solidfire  volume_backend_name=SolidFire  

Then restart Cinder service

Office:443.433.0106 Email:[email protected]

With Juno release of OpenStack!!!

●  November 2014 is the fifth release of Cinder!!!! ●  Major emphasis on testing and compatibility ●  Running Third Party Continuous Integration’s (CI’s) on Vendors gear in their own labs

against each Cinder commit ●  Manage/Unmanage (or Import/Export) of Volumes widely available

★  Introduced support for Pools for those devices that still have that concept ★  Introduced support for Replication ★  Introduced support for Consistency Groups ★  Continued improvements to Cinder-Backup making way towards incrementals

Office:443.433.0106 Email:[email protected]

New Cinder capabilities in Kilo

★  6th release of Cinder ★  It’s all about QUALITY ★  Running 3rd party Continuous Integration’s (CI’s) on Vendor gear ★  De-emphasizing new features (i.e. finish the ones we have and make them rock solid) ★  Redundancy for base LVM implementation (didn’t make it) ★  Private Volume types ★  iSCSI helper choices for LVM ★  iSCSI Multi-attach – still needs support in Nova. ★  Incremental Backups ★  Rolling Upgrades!!

Office:443.433.0106 Email:[email protected]

Plans for Liberty version of Cinder

Some Highlights: ★  Multi-pathing ★  Image caching (SolidFire’s implementation in Kilo to be generalized in Liberty) ★  Backup Improvements (faster & more flexible) ★  Improvements for Replication

Office:443.433.0106 Email:[email protected]

Thoughts for those building OpenStack Clouds

Office:443.433.0106 Email:[email protected]

Making choices can be the HARDEST part!

●  Each has their own merits ●  Some excel at specific use cases

●  Maybe you already own the gear ●  TCO, TCO, TCO

Ask yourself:

➔  Does it scale? How muchstorage functionality exposed via Cinder? ➔  Is the architecture a good fit?

➔  Is it tested, will it really work in OpenStack? ➔  Support?

➔  What about performance and noisy neighbors?

➔  Third party CI testing? ➔  Active in the OpenStack Community?

➔  DIY, Services, both/neither (SolidFire AI, Fuel, JuJu, Nebula….)

Office:443.433.0106 Email:[email protected]

A few words regarding SolidFire...

Office:443.433.0106 Email:[email protected]

SolidFire’s Scale-Out Block Storage System Designed from the start for OpenStack and other cloud platforms

●  Multi-Tenant & Multi-Workload architecture ●  With ability to guarantee storage performance to each tenant/

workload/volume.

●  Designed for “Cloud-Scale” Deployments ●  Linear non-disruptive platform growth or shrinkage

●  Including complete software/hardware upgrades

●  Automation top priority in API design ●  Built to deploy in an OpenStack environment ●  Extreme fault tolerance with automatic self-healing

Office:443.433.0106 Email:[email protected]

SolidFire & Cinder

●  Full SolidFire driver integration with latest OpenStack software release

●  Set and maintain true QoS levels on a per-volume basis ●  Create, snapshot, clone, extend and manage SolidFire

volumes using OpenStack clients and APIs ●  Run instances on a SolidFire volume ●  Web-based API exposing all cluster functionality ●  SolidFire integration with Cinder can be configured in

less than a minute all you need is network connectivity, everything else is in OpenStack packages.

Office:443.433.0106 Email:[email protected]

Related Resources

●  OpenStack Solution Page ●  OpenStack Solution Brief ●  SolidFire/Cinder Reference Architecture ●  OpenStack Configuration Guide ●  SolidFire/Rackspace Private Cloud

Implementation Guide ●  Video: Configuring OpenStack Block Storage w/

SolidFire

●  Blogs ●  OpenStack Summit Recap: Mindshare

Achieved, Market Share Must Follow ●  Separating from the Pack ●  Why OpenStack Matters

Office:443.433.0106 Email:[email protected]

Questions?

Office:443.433.0106 Email:[email protected]

Creating types and extra-specs (GUI)

Office:443.433.0106 Email:[email protected]

Creating types and extra-specs

griff@stack-­‐1:  cinder  type  create  super  +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐+  |                                    ID                                    |    Name  |  +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐+  |  c506230f-­‐eb08-­‐4d4e-­‐82e2-­‐7a88eb779bda  |  super  |  +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐+  griff@stack-­‐1:  cinder  type  create  super-­‐dooper  

+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+  

|                                    ID                                    |          Name          |  

+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+  

|  918cf343-­‐1f3d-­‐4508-­‐bb69-­‐cd0e668ae297  |  super-­‐dooper  |  

+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+  

griff@stack-­‐1:  cinder  type-­‐key  super  set  volume_backend_name=LVM_iSCSI  

griff@stack-­‐1:  cinder  type-­‐key  super-­‐dooper  set  volume_backend_name=SolidFire  \  qos:minIOPS=400  qos:maxIOPS=1000  qos:burstIOPS=2000  

Office:443.433.0106 Email:[email protected]

End users perspective (GUI)

Office:443.433.0106 Email:[email protected]

End users perspective griff@stack-­‐1:  cinder  type-­‐list  

+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+  

|                                    ID                                    |          Name          |  

+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+  

|  918cf343-­‐1f3d-­‐4508-­‐bb69-­‐cd0e668ae297  |  super-­‐dooper  |  

|  c506230f-­‐eb08-­‐4d4e-­‐82e2-­‐7a88eb779bda  |        super          |  

+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+  

 

griff@stack-­‐1:  cinder  create  -­‐-­‐volume-­‐type  super-­‐dooper  ……  

 

Office:443.433.0106 Email:[email protected]

Web UI’s are neat, but automation rules!  jdg@bdr76  ~  $  cinder  create  -­‐-­‐volume-­‐type  f76f2fbf-­‐f5cf-­‐474f-­‐9863-­‐31f170a29b74  100   or in code:

>>>  from  cinderclient.v2  import  client  >>>  cc  =  client.Client(USER,  PASS,  TENANT,  AUTH_URL,  service_type="volume")  >>>  cc.volumes.create(100,  volume_type=f76f2fbf-­‐f5cf-­‐474f-­‐9863-­‐31f170a29b74)  [...]  

Office:443.433.0106 Email:[email protected]

Or Heat Templates! resources:      server:          type:  OS::Nova::Server          properties:              name:  {  get_param:  "OS::stack_name"  }            …      storage_volume:          type:  OS::Cinder::Volume          properties:              name:  {  get_param:  "OS::stack_name"  }              size:  {  get_param:  vol_size  }              volume_type:  {  get_param:  vol_type  }        volume_attachment:          type:  OS::Cinder::VolumeAttachment          properties:              volume_id:  {  get_resource:  storage_volume  }              instance_uuid:  {  get_resource:  server  }

Office:443.433.0106 Email:[email protected]

How to get involved? ●  It’s Easy, Start Here

●  https://wiki.openstack.org/wiki/How_To_Contribute

●  Any questions? ●  Technical

●  [email protected] ●  [email protected]

●  Partnership ●  [email protected]

●  Sales ●  [email protected]