Storage as a service and OpenStack Cinder

17
Sajid Akhtar TME, Open source Cloud Solution Storage as a Service and OpenStack Cinder 1

Transcript of Storage as a service and OpenStack Cinder

Page 1: Storage as a service and OpenStack Cinder

Sajid AkhtarTME, Open source Cloud Solution

Storage as a Service and OpenStack Cinder

1

Page 2: Storage as a service and OpenStack Cinder

Storage as a Service • CAPEX to OPEX based business model.• Manage storage by well-defined set of remotely accessible APIs • Abstracts the actual storage implementation • This service offers specialized functions: DR, backup, document sharing,

etc.

Using Storage as a Service• Object • Block • File

2

Page 3: Storage as a service and OpenStack Cinder

Open source cloud computing platform• Public clouds• Private clouds

Solutions for all types of clouds•Simple to implement•Massively scalable•Feature rich

What Is OpenStack?Global collaboration • Developers• Cloud computing technologists

3

Page 4: Storage as a service and OpenStack Cinder

4

Quick OpenStack Overview An Open Source Cloud Computing Platform

• Provides for all types of clouds – Simple– Scalable– Feature rich

• Total cloud infrastructure solution– Combination of interrelated projects

• Open source software around 3 years old• OpenStack Foundation established 2012• Over 700+ organizations contributing to development• Established and growing number of production deployments

Page 5: Storage as a service and OpenStack Cinder

OpenStack Services diagram

5

Page 6: Storage as a service and OpenStack Cinder

Type of storage available on OpenStack

Ephemeral(On-instance) : -Used for running Operating System and scratch space-Persists until VM is terminated-Access associated with a VM-Implemented as a filesystem underlying OpenStack Compute-Administrator configures size setting, based on flavors-Example: 10GB first disk, 30GB/core second diskFor desktop user PC's internal disk drives are ephemeral; persistent storage can be considered similar to an external USB drive.

6

Page 7: Storage as a service and OpenStack Cinder

OpenStack Object Storage (Swift)What Is It?

• Object Storage is ideal for cost effective, scale-out storage. It provides a fully distributed, API-accessible storage platform that can be integrated directly into applications or used for backup, archiving and data retention.

• Highly available & distributed object / blob store(known as a binary large object, collection of binary data stored as a single entity in a database management system. Blobs are typically images, audio or other multimedia objects)– Ring architecture

• In production today– Rackspace’s Cloud Files, Internap, Wikimedia Foundation

• Architectural overview:– http://swift.openstack.org/overview_architecture.html

7

Page 8: Storage as a service and OpenStack Cinder

Swift (Contd.)

• OpenStack Object Storage can function on its own. The Object Storage (swift) product can be used independently of the Compute (nova) product.

• Not used like a traditional hard drive.The access to it is API-based (and the API uses http). It allows you to store or retrieve files (but not mount directories like a fileserver).

• Used for storing virtual machine images and data• Persists until deleted• Available from anywhere• Easily scalable for future growth

Glance: The OpenStack Image Service is used to manage the virtual machine images in an OpenStack cluster, not store them. Instead, it provides an abstraction to different methods for storage - a bridge to the storage, not the storage itself.

8

Page 9: Storage as a service and OpenStack Cinder

OpenStack Block Storage (Cinder)What Is It?

• Block Storage allows block devices to be exposed and connected to compute instances for expanded storage, better performance and integration with enterprise storage platforms.

• OpenStack provides persistent block level storage devices for use with OpenStack compute instances. Can be exposed to applications as well.

• The block storage system manages the creation, attaching and detaching of the block devices to servers. Block storage volumes are fully integrated into OpenStack Compute and the Dashboard allowing for cloud users to manage their own storage needs.

9

Page 10: Storage as a service and OpenStack Cinder

Cinder (Contd.)

• Cinder separates out the persistent block storage functionality that was previously part of Openstack Compute into it's own service. The OpenStack Block Storage API allows for manipulation of volumes, volume types (similar to compute flavors) and volume snapshots.

• This is block storage (or volumes) and currently there are blueprints for filesystems like NFS or CIFS share

• Used for adding additional persistent storage to a virtual machine (VM)• Persists until deleted• Access associated with a VM• Mounted via OpenStack Block-Storage controlled protocol (for example,

iSCSI)• Sizings based on need• Example: 1TB "extra hard drive"

10

Page 11: Storage as a service and OpenStack Cinder

11

Block Storage Capabilities

• The block storage system manages the creation, attaching and detaching of the block devices to servers. Block storage volumes are fully integrated into OpenStack Compute and the Dashboard allowing for cloud users to manage their own storage needs.

• Block storage is appropriate for performance sensitive scenarios such as database storage, expandable file systems, or providing a server with access to raw block level storage.

• Snapshot management provides powerful functionality for backing up data stored on block storage volumes. Snapshots can be restored or used to create a new block storage volume.

Page 12: Storage as a service and OpenStack Cinder

Cinder call flow

Database Queue

12

Cinder VolCinder Vol

Cinder Vol

Cinder API

C - scheduler

iSCSI NFS

Page 13: Storage as a service and OpenStack Cinder

Cinder (Contd.)

• cinder-api accepts API requests and routes them to cinder-volume for action. • cinder-volume acts upon the requests by reading or writing to the Cinder

database to maintain state, interacting with other processes (like cinder-scheduler) through a message queue and directly upon block storage providing hardware or software. It can interact with a variety of storage providers through a driver architecture. Currently, there are drivers for IBM, SolidFire, NetApp, Nexenta, Zadara, linux iSCSI and other storage providers.

• Much like nova-scheduler, the cinder-scheduler daemon picks the optimal block storage provider node to create the volume on.

• Cinder deployments will also make use of a messaging queue to route information between the cinder processes as well as a database to store volume state.

13

Page 14: Storage as a service and OpenStack Cinder

Minimum Driver Features

• In order to be accepted for a given milestone release, Cinder driver must implement the following features

• Grizzly Release: – Volume Create/Delete – Volume Attach/Detach – Snapshot Create/Delete – Create Volume from Snapshot – Get Volume Stats (driver_version/ free_capacity_gb

/reserved_percentage /storage_protocol /total_capacity_gb /vendor_name /volume_backend_name )

14

Page 15: Storage as a service and OpenStack Cinder

Quick references for Cinder

• Source code: https://github.com/openstack/cinder

• Bug tracker: https://bugs.launchpad.net/cinder

• Blueprints: https://blueprints.launchpad.net/cinder

• Developer doc: http://docs.openstack.org/developer/cinder/

• API complete reference: http://api.openstack.org/api-ref.html

15

Page 16: Storage as a service and OpenStack Cinder

16

How to start contributing ?

• Become a member and create profile : https://www.openstack.org/join

• Sign User license

• Create launchpad account and review the projects.• Openstack Wiki : http://wiki.openstack.org/

• Join IRC channel and register to OpenStack mailing list.

Page 17: Storage as a service and OpenStack Cinder

17