openstack storage overview
TRANSCRIPT
OpenStack Storage Overview
Feb 2015
Bharat Kumar Kobagana
OpenStack
Gnunify OpenStack Mini Conference 2015
OpenStack
Gnunify OpenStack Mini Conference 2015
Ephemeral Storage
● Disappear when a virtual machine is terminated
● Comes with OpenStack Compute Service (Nova)
Persistent Storage
● Always available, regardless of the status of virtual machine
● OpenStack support two types of persistent storage
● Object Storage
● Block Storage
● Shared Filesystem as Service
Introduction to OpenStack Storage
Gnunify OpenStack Mini Conference 2015
Introduction to OpenStack Storage Cont…
Gnunify OpenStack Mini Conference 2015
BLOCK FILE OBJECT
Low level I/O
Tracks & Sectors
No metadata
SCSI, SATA, ATA
SAN
Directories & Files
NFS, Local FS
Simplicity
NAS
Rigid Metadata
Containers / Buckets
Data, Metadata &
Identifier
HTTP
Abstracted
Cinder Manila Swift
?
What is Cinder
Swift Overview
Cinder Components
Cinder Architecture
Cinder Features
Backend Drivers
GlusterFS as a Backend
What’s next?
Agenda
Gnunify OpenStack Mini Conference 2015
Swift is a highly available, distributed, eventually consistent object store.
Object is {Data + Metadata + Identifier}
Alternative to Amazon S3
Decoupled / Independent from OpenStack
Unstructured data
Scales horizontally
But you can’t..
Mount it
Have file hierarchies
Swift
Gnunify OpenStack Mini Conference 2015
Hierarchy and Namespace
Account -> Containers -> Objectsc
Swift Cntd…
Gnunify OpenStack Mini Conference 2015
Internal data structures stored in “ring files” in /etc/swift
Maps objects to physical location on disk
Uses hashing to place objects just like GlusterFS :)
Eliminates need for central meta-data server
Needs to be recreated when cluster layout changes
Rings
Gnunify OpenStack Mini Conference 2015
Swift Cntd…
Gnunify OpenStack Mini Conference 2015
GET'X-Auth-Token: blah_blah'
http://example.com:8080/v1/AUTH_test/c1/a/b/c.jpg
Proxy server
Account
ContainerObject
Request
method Request
header
All operations are carried out by sending HTTP requests.
Each object’s access path consists of exactly three elements:
/account/container/object
Code name for OpenStack Block Storage / Volume Storage
Spun off from Nova
Cinder volumes (block devices) are attached to VMs
Volume lifecycle is independent of virtual machine instances
Backend devices opaque to users
Consistent API regardless of backend selection
Similar to Amazon EBS
Users interact with block storage by attaching volumes their VMs
Cinder provides APIs such as create / delete volume, backup / restore
volume, snapshot / clone volume and many more.
What is Cinder
Gnunify OpenStack Mini Conference 2015
cinder-api
● Accepts API requests
● Routes the requests to the cinder-volume for action
cinder-scheduler
● Selects one of the nodes to create volume
● Similar to nova-scheduler
cinder-volume
● Interacts directly with Block Storage
● Responds to read and write requests sent to the Block Storage
Cinder Components
Gnunify OpenStack Mini Conference 2015
Cinder Architecture
Gnunify OpenStack Mini Conference 2015
Web Dashboard
Cinder client
Nova client
api
AuthManager
REST
AMQP Scheduler
Volume
Volume
Volume
iSCSI
iSCSI
iSCSI
Cinder Architecture
Gnunify OpenStack Mini Conference 2015
Cinder Client
cinder-api
cinder-volume cinder-scheduler cinder-backup
Cinder DBAMQP
AMQP
Basic Features
● Attach volume to instance
● Create bootable volume / Create volume from image
● Upload volume to Glance
● Snapshot a volume
● Create volume from snapshot
Cinder Features
Gnunify OpenStack Mini Conference 2015
Cinder – Nova communication
Gnunify OpenStack Mini Conference 2015
Nova
VM Instance
KVM Storage Controller
iSCSItarget
/dev/vda
Cinder
iSCSIinitiator
iSCSI is just an example – several
other protocols are also supported
(e.g., FC, NFS)
Persistent Volume Control Persistent Volume Data
Volume Replication
Consistency Groups
Support for Volume Pools
Volume Multi Attach
Manage / Unmanage Volumes
Backup Volumes
Volume retype
What Next
Gnunify OpenStack Mini Conference 2015
Backend is a storage system which implements the APIs provided by
Cinder.
Backend typically exports a storage pool which is used by Cinder to
provision new storage (aka cinder volumes)
Some of those are:
● LVM (Logical Volume Manager)
● Ceph
● GlusterFS
By default Cinder uses LVM as its backend.
Backend is configured in Cinder via the cinder.conf file.
To get list of all backends:
https://wiki.openstack.org/wiki/CinderSupportMatrix
Backend Drivers
Gnunify OpenStack Mini Conference 2015
Available in upstream.
1 Cinder Volume = 1 file in Gluster volume
Support raw and qcow2 format Cinder volumes
GlusterFS backend Cinder volumes can be attached to Nova instance
in two ways:
● FUSE mount
● Libgfapi
Supports most of the Cinder APIs including multi-backend feature.
GlusterFS as a Cinder Backend
Gnunify OpenStack Mini Conference 2015
Storage Backend
GlusterFS as a Cinder Backend cont…
Gnunify OpenStack Mini Conference 2015
Cinder Client
cinder-api
cinder-volume cinder-scheduler cinder-backup
Cinder DBAMQP
AMQP
GlusterFS
Queries?
Gnunify OpenStack Mini Conference 2015
Thank You Very Much…!
Gnunify OpenStack Mini Conference 2015