Storage as a Service and
OpenStack
Sajid Akhtar
TME – OpenSource Cloud
Solution
@mail2fashion




                           1
Cloud storage subscription growth statistics are huge




                                                        2
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
 Ephemeral




                                                                    3
What Is OpenStack?
Global collaboration
 Developers
 Cloud computing technologists



                          Open source cloud computing platform
                          - Public clouds
                          - Private clouds

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




                                                                 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




                                                             5
OpenStack Services diagram




                             6
7
8
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 disk
For desktop user PC's internal disk drives are ephemeral;
persistent storage can be considered similar to an external
USB drive.




                                                              9
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
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.
 This persistent block level storage devices 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.
Contd..
 This is block storage (or volumes) and currently there are
  blueprints for filesystems like NFS or CIFS share
 Persists until deleted
 Mounted via OpenStack Block-Storage controlled protocol (for
  example, iSCSI, LVM)
 Sizings based on need
 Example: 1TB "extra hard drive"
OpenStack Cinder

Database    Cinder API
                          Queue



            C-scheduler




  Cinder
   Vol                       Cinder Vol
              Cinder
               Vol
  iSCSI                                   NFS


                                                13
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.
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 )
OpenStack Cinder




                   16
Filesystem as a service – basic idea

 NAS shares to share data across VM
  instances
 – Brings the benefits of shared storage to
   OpenStack
 Simple and widely accepted protocols
 – NFS and CIFS




                                              17
Filesystem as a service
            Storage Controller


              S1       S2




      VM1                        VM2




              Hypervisor




                                       18
Why filesystems?

 NAS – built to share storage
 – CIFS/NFS
 – In-built locking, sharing and permissions
 – Metadata stored with data
 Cheap!
 Legacy applications
 Applications in scalable compute




                                               19
Use case

 Simple: sharing data across VMs
 – Can use as isolated disk too!
 Migration
 – VM crashes doesn’t affect stored data
 Scalable compute with shared storage
 – Parallel compilation of large C/C++ projects
 – Rendering pipelines for animation studios and
   electronic chip design workloads




                                                   20
OpenStack

 Massively scalable, open source cloud
  operating systems
 –   Compute (Nova)
 –   Object Storage (Swift)
 –   Block Storage + File Storage? (Cinder)
 –   Imaging service (Glance)
 –   Dashboard (Horizon)
 –   Network (Quantum)
 –   File Storage (New project) ?



                                              21
Current implementation

 Separate service inside Cinder
 Shares API
 –   Share create/delete
 –   Share Snapshot create/delete
 –   Allow/Deny access
 –   Publish capabilities to scheduler




                                         22
Filesystem inside Cinder

Database    Cinder API++
                                  Queue



             C-scheduler




  Cinder                              Cinder
   Vol                                Share
               Cinder
               Share
  iSCSI                                        NFS
                           CIFS
                                                     23
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
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.




                                                                          25
We are everywhere !!!!




                         26
Questions?




             27

Storage as a service OpenStack

  • 1.
    Storage as aService and OpenStack Sajid Akhtar TME – OpenSource Cloud Solution @mail2fashion 1
  • 2.
    Cloud storage subscriptiongrowth statistics are huge 2
  • 3.
    Storage as aService  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  Ephemeral 3
  • 4.
    What Is OpenStack? Globalcollaboration  Developers  Cloud computing technologists Open source cloud computing platform - Public clouds - Private clouds Solutions for all types of clouds Simple to implement Massively scalable Feature rich 4
  • 5.
    Quick OpenStack Overview AnOpen 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 5
  • 6.
  • 7.
  • 8.
  • 9.
    Type of storageavailable 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 disk For desktop user PC's internal disk drives are ephemeral; persistent storage can be considered similar to an external USB drive. 9
  • 10.
    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
  • 11.
    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.  This persistent block level storage devices 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.
  • 12.
    Contd..  This isblock storage (or volumes) and currently there are blueprints for filesystems like NFS or CIFS share  Persists until deleted  Mounted via OpenStack Block-Storage controlled protocol (for example, iSCSI, LVM)  Sizings based on need  Example: 1TB "extra hard drive"
  • 13.
    OpenStack Cinder Database Cinder API Queue C-scheduler Cinder Vol Cinder Vol Cinder Vol iSCSI NFS 13
  • 14.
    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.
  • 15.
    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 )
  • 16.
  • 17.
    Filesystem as aservice – basic idea  NAS shares to share data across VM instances – Brings the benefits of shared storage to OpenStack  Simple and widely accepted protocols – NFS and CIFS 17
  • 18.
    Filesystem as aservice Storage Controller S1 S2 VM1 VM2 Hypervisor 18
  • 19.
    Why filesystems?  NAS– built to share storage – CIFS/NFS – In-built locking, sharing and permissions – Metadata stored with data  Cheap!  Legacy applications  Applications in scalable compute 19
  • 20.
    Use case  Simple:sharing data across VMs – Can use as isolated disk too!  Migration – VM crashes doesn’t affect stored data  Scalable compute with shared storage – Parallel compilation of large C/C++ projects – Rendering pipelines for animation studios and electronic chip design workloads 20
  • 21.
    OpenStack  Massively scalable,open source cloud operating systems – Compute (Nova) – Object Storage (Swift) – Block Storage + File Storage? (Cinder) – Imaging service (Glance) – Dashboard (Horizon) – Network (Quantum) – File Storage (New project) ? 21
  • 22.
    Current implementation  Separateservice inside Cinder  Shares API – Share create/delete – Share Snapshot create/delete – Allow/Deny access – Publish capabilities to scheduler 22
  • 23.
    Filesystem inside Cinder Database Cinder API++ Queue C-scheduler Cinder Cinder Vol Share Cinder Share iSCSI NFS CIFS 23
  • 24.
    Quick references forCinder  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
  • 25.
    How to startcontributing ? • 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. 25
  • 26.
  • 27.

Editor's Notes