EMC for Cinder and Swift - education.dellemc.com · 2015 EMC Proven Professional Knowledge Sharing...

27
Azhagarasu A Systems Engineer Analyst EMC Corporation [email protected] EMC FOR CINDER AND SWIFT

Transcript of EMC for Cinder and Swift - education.dellemc.com · 2015 EMC Proven Professional Knowledge Sharing...

Page 1: EMC for Cinder and Swift - education.dellemc.com · 2015 EMC Proven Professional Knowledge Sharing 4 Introduction to Cloud Computing and OpenStack NIST Definition of Cloud Computing

Azhagarasu ASystems Engineer AnalystEMC [email protected]

EMC FOR CINDER AND SWIFT

Page 2: EMC for Cinder and Swift - education.dellemc.com · 2015 EMC Proven Professional Knowledge Sharing 4 Introduction to Cloud Computing and OpenStack NIST Definition of Cloud Computing

2015 EMC Proven Professional Knowledge Sharing 2

Table of Contents

Preface ...................................................................................................................................... 3

Introduction to Cloud Computing and OpenStack ....................................................................... 4

NIST Definition of Cloud Computing ....................................................................................... 4

Essential characteristics of Cloud ........................................................................................... 4

Service Models ....................................................................................................................... 5

Deployment Models ................................................................................................................ 5

What is OpenStack and where does it fit? .............................................................................. 6

Building blocks of OpenStack ................................................................................................. 6

OpenStack architecture .............................................................................................................10

Controller Nodes ...................................................................................................................10

Compute Nodes ....................................................................................................................10

Network Nodes ......................................................................................................................11

Block and Object storage nodes ............................................................................................11

Variations in architecture .......................................................................................................11

OpenStack Distros.................................................................................................................12

Available OpenStack Distributions .........................................................................................12

Block Storage ...........................................................................................................................13

What one can run on Cinder? ................................................................................................13

Limitation of Cinder in commodity hardware ..........................................................................14

What Cinder can do ...............................................................................................................14

How Cinder works .................................................................................................................15

EMC’s role in Cinder ..............................................................................................................16

What EMC can do for Cinder and Swift .................................................................................16

My method in brief .................................................................................................................21

Conclusion ................................................................................................................................23

Glossary....................................................................................................................................24

Appendix ...................................................................................................................................25

Disclaimer: The views, processes or methodologies published in this article are those of the

author. They do not necessarily reflect EMC Corporation’s views, processes or methodologies.

Page 3: EMC for Cinder and Swift - education.dellemc.com · 2015 EMC Proven Professional Knowledge Sharing 4 Introduction to Cloud Computing and OpenStack NIST Definition of Cloud Computing

2015 EMC Proven Professional Knowledge Sharing 3

Preface

OpenStack has become one of the most preferred cloud platforms. In October 2014, OpenStack

summit attracted close to 5000 attendees. Many notable IT organizations shared how and for

what purpose they are running an OpenStack-powered private and hybrid cloud. OpenStack is

exciting because it offers great choice to build a cloud computing environment. Various

distributions and appliances are available today.

This article is split into 3 parts.

1. The first part is helpful for a beginner to understand fundamental structure of cloud

computing and OpenStack.

2. The second part elaborates on OpenStack and its services.

3. The third is all about block storage. Block storage (Cinder) in OpenStack is explained in

detail. Further in this chapter I also discuss some survey results and market information.

At the end, I explain my idea/solution in brief.

Page 4: EMC for Cinder and Swift - education.dellemc.com · 2015 EMC Proven Professional Knowledge Sharing 4 Introduction to Cloud Computing and OpenStack NIST Definition of Cloud Computing

2015 EMC Proven Professional Knowledge Sharing 4

Introduction to Cloud Computing and OpenStack

NIST Definition of Cloud Computing

Cloud computing is a model for enabling ubiquitous, convenient, on-demand network access to

a shared pool of configurable computing resources (e.g. networks, servers, storage,

applications, and services) that can be rapidly provisioned and released with minimal

management effort or service provider interaction. This cloud model is composed of five

essential characteristics, three service models, and four deployment models1

Any cloud environment should exhibit essential characteristics because that is the key

distinguishing factor from a traditional IT environment where most of the tasks are done

manually. Let’s spend few minutes to understand the essential characteristics of cloud, service

models, and deployment models.

Essential characteristics of Cloud

The essential characteristics are:

On-demand self-service – A user can provision resources for his/her needs such as more

compute power, additional network bandwidth, more storage, etc.

Broad network access – Cloud resources of a user should be accessible over the network

through standard mechanisms that may allow use of heterogeneous equipment such as laptops,

mobile, tablets, etc.

Resource Pooling – The user will not have control of where his/her compute resources reside

at a physical scale. Instead, in a cloud model, the underlying physical resources are pooled.

When a user creates an instance the resource is automatically taken from pool. Likewise, when

a user destroys an instance the resources used by it will be released back to the pool.

Rapid Elasticity – This means on demand resource allocation which can scale out and also

inward.

Measured service – In a cloud environment, all resource usage can be metered. This enables

the user to pay or even pre-pay for what is used.

1 NIST definition of Cloud Computing

Page 5: EMC for Cinder and Swift - education.dellemc.com · 2015 EMC Proven Professional Knowledge Sharing 4 Introduction to Cloud Computing and OpenStack NIST Definition of Cloud Computing

2015 EMC Proven Professional Knowledge Sharing 5

Service Models

Service models, generally well-known to most everyone, are:

Software as a Service (SaaS) – User can use the application which is preconfigured with little

or no configuration change. User may have ability to configure the application according to

need, but cannot modify/control underlying components such as database, operating system,

etc.

Platform as a Service (PaaS) – In this service model, user has the ability to deploy self-written

application or licensed application on to cloud. User may control the environment which powers

the application such as databases, but user does not have control over operating system,

network, storage etc.

Infrastructure as a Service (IaaS) – User has access to fundamental computing resources. By

making use of resources a user can create fully functional Instance. A user can provision

required storage, network bandwidth, processing power, etc. This allows users to run the

operating system and tools of their choice.

Deployment Models

Cloud deployment models are Private, Community, Public, Hybrid, and Public.

Private Cloud2 – The cloud infrastructure is provisioned for exclusive use by a single

organization comprising multiple consumers (e.g. business units). It may be owned, managed,

and operated by the organization, a third party, or some combination of them, and it may exist

on or off premises.

Community Cloud2 – The cloud infrastructure is provisioned for exclusive use by a specific

community of consumers from organizations that have shared concerns (e.g. mission, security

requirements, policy, and compliance considerations). It may be owned, managed, and

operated by one or more of the organizations in the community, a third party, or some

combination of them, and it may exist on or off premises.

Public Cloud2 – The cloud infrastructure is provisioned for open use by the general public. It

may be owned, managed, and operated by a business, academic, or government organization,

or some combination of them. It exists on the premises of the cloud provider.

2 NIST definition of private, public, community, hybrid cloud

Page 6: EMC for Cinder and Swift - education.dellemc.com · 2015 EMC Proven Professional Knowledge Sharing 4 Introduction to Cloud Computing and OpenStack NIST Definition of Cloud Computing

2015 EMC Proven Professional Knowledge Sharing 6

Hybrid Cloud2 – The cloud infrastructure is a composition of two or more distinct cloud

infrastructures (private, community, or public) that remain unique entities, but are bound

together by standardized or proprietary technology that enables data and application portability

(e.g. cloud bursting for load balancing between clouds).

What is OpenStack and where does it fit?

Suitable for all types of service and deployment models, OpenStack is a set of tools and

services that can be used to build a cloud computing platform. Each year, OpenStack

foundation – which is the control body for OpenStack development – releases two major

versions of OpenStack.

The recent trend is “distribution”. Many enterprises are releasing customized versions of

OpenStack. Some distributions make implementation easy with the help of tools for automated

deployment. Also, there are a number of turnkey solutions available.

Figure: 1 Overview of OpenStack3

Building blocks of OpenStack

OpenStack makes uses of various services. Every service is developed as a project. These

services are used to build cloud; hence, I call it OpenStack building blocks. Each of these

services has an API so that it can be managed through a centralized dashboard and each

service communicates with each other using API calls. Following are the projects and its use.

3 Source: openstack.org

Page 7: EMC for Cinder and Swift - education.dellemc.com · 2015 EMC Proven Professional Knowledge Sharing 4 Introduction to Cloud Computing and OpenStack NIST Definition of Cloud Computing

2015 EMC Proven Professional Knowledge Sharing 7

Service Project name

Dashboard Horizon

Compute Nova

Networking Neutron

Object Storage Swift

Block Storage Cinder

Identity Service Keystone

Image Service Glance

Telemetry Ceilometer

Orchestration Heat

Database

Service

Trove

Table 1: OpenStack services and its Project name

Dashboard

The dashboard service provides users and cloud administrators with a centralized view of cloud

environment. Using dashboard, a tenant (User) can self-provision resources, create/destroy

Instances, modify networking for instances, etc. The Cloud administrator also interacts with

dashboard and has more control over the entire cloud environment.

Compute

Compute services manage the Instances lifecycle meaning, compute services takes care of

Instances from the time it is created until it is destroyed. Compute services does not function

alone; it needs a Hypervisor to run instances. Therefore, Instance-related tasks such as CPU

and Memory allocation is taken care of by the Hypervisor in its own way. Compute services just

Page 8: EMC for Cinder and Swift - education.dellemc.com · 2015 EMC Proven Professional Knowledge Sharing 4 Introduction to Cloud Computing and OpenStack NIST Definition of Cloud Computing

2015 EMC Proven Professional Knowledge Sharing 8

manages these instances and monitors them. When an instance creation command is received,

it is passed on to Hypervisor to execute the task.

Networking

As the name implies, networking service provides network connectivity for OpenStack services.

It allows users to define network connectivity for instances that they own via dashboard. It also

allows other network plugins such as VMware NSX, and Open vSwitch for better functionality.

Networking is the most complex part of any cloud environment.

Object Storage

Object storage is provided by this service. Objects are stored and retrieved via REST API

(HTTP-based). Because of this API access, it can be directly accessed by an application.

Block Storage

This service creates block storage devices that can be directly provisioned to an instance. This

block volume can be used for database or any high speed data access needs.

Note: Details about Block Storage will be discussed In the upcoming chapter.

Identity Service

Different services of OpenStack make use of Identity service to communicate with each other.

Identity service is an authentication and authorization service.

Image Service

The function of Image service is to store and retrieve virtual machine disk images. Snapshot of

an instance can be taken and it can be used as a template for new instances. Virtual machine

disk image is a file in which the operating system is installed. Popular formats are VMDK, VDI,

VHD, OVF, and qcow2.

Telemetry

This service monitors OpenStack cloud for usage information for metering and performance

information for statistical purpose. However, this service is not an out of the box billing solution.

Orchestration

This service provides template-based orchestration for a cloud application, executing

appropriate API calls to create/modify OpenStack resources.

Page 9: EMC for Cinder and Swift - education.dellemc.com · 2015 EMC Proven Professional Knowledge Sharing 4 Introduction to Cloud Computing and OpenStack NIST Definition of Cloud Computing

2015 EMC Proven Professional Knowledge Sharing 9

Database Service

Trove is Database as a Service for OpenStack. This allows users to create multiple Database

instances in OpenStack cloud without much administration tasks complexity. Trove has a

RESTful API (trove-api) that supports JSON and XML for provisioning and management of

Trove instances. A fully functional OpenStack cloud may have all or few of these services

communicating with each other. Figure 2 depicts how each service interacts with each other.

For example, consider an Instance (VM). For a VM to function it requires a number of services

like Image (Glance), Compute (Nova), Block storage volume (Cinder), Object storage (Swift),

Networking (Neutron), etc. Also note that identity service (Keystone) does not Interact with VM

because Identity service provides authentication and authorization for OpenStack services.

Figure 2: High level Illustration of OpenStack services4

4 Conceptual architecture image from openstack.org

Page 10: EMC for Cinder and Swift - education.dellemc.com · 2015 EMC Proven Professional Knowledge Sharing 4 Introduction to Cloud Computing and OpenStack NIST Definition of Cloud Computing

2015 EMC Proven Professional Knowledge Sharing 10

OpenStack architecture

In OpenStack cloud, the physical machines are represented as Controller nodes, Compute

nodes, Network nodes, Block storage nodes, and Object storage nodes. There can be one or

many physical machines (clustered). Each type of node cluster has its own set of services

running on them. Figure 3 is a simplistic view of OpenStack infrastructure; the arrow represents

its scale-out nature.

Figure 3: Types of Nodes

Controller Nodes

Controller nodes runs core services such as Dashboard, Image, identity service and also

supporting services like SQL Database service, Message queue, Network time protocol,

Compute management service, Networking ML2 Plugin, etc.

Compute Nodes

Compute nodes runs Compute service. Another important component of compute node is the

Hypervisor. KVM is the default hypervisor support for OpenStack but there are a number of

other hypervisors such as ESXi, XenServer, Hyper-V, Docker, etc. Importantly, compute node

also runs networking modular layer 2 (ML2) plugin. This is for virtual network support for

Instances.

Page 11: EMC for Cinder and Swift - education.dellemc.com · 2015 EMC Proven Professional Knowledge Sharing 4 Introduction to Cloud Computing and OpenStack NIST Definition of Cloud Computing

2015 EMC Proven Professional Knowledge Sharing 11

Please note that what we discuss here applies to KVM as hypervisor. Implementation method

varies for a few other hypervisors, i.e. ESXi. If OpenStack is implemented on top of ESXi

infrastructure we normally interact directly with vCenter.

The compute service (Nova) running in compute nodes interacts with KVM and acts as a control

element. KVM takes jobs from Nova service for instance creation/deletion/modification.

Network Nodes

Networking node runs tenant networking services which provides functionalities such as

switching, routing, network address translation (NAT), and Dynamic Host Configuaration

Protocol (DHCP). OpenStack networking is called “Neutron”.

When compared with its predecessor – Nova networking – Neutron release supports three tier

architecture and provides functionalities such as load balancing, VPN, and firewall. These

services are provided to tenant and can be individually charged. It also enhances security.

Unlike Nova networking, Neutron allows usage of plugins. Open vSwitch, VMware NSX plugin,

and many other plugins can be used with Neutron. Internet connectivity for tenant virtual

machines is provided by network nodes.

Block and Object storage nodes

These nodes provide block and object storage. They are standard x86 servers with a bunch of

drives from which storage space for instances are carved out. The storage space from these

nodes is used for various other purposes such as backup, block volumes, etc.

Variations in architecture

When implementing OpenStack cloud, one does not necessarily need to follow the discussed

architecture. It is possible to run storage-related services on controller and compute nodes.

However, it is not the recommended way. Various vendors have released their own distribution

of OpenStack which is production ready. There are also appliances available to kick start cloud

as fast as you can.

A common myth is that KVM is a type -2 hypervisor. One may argue that you are installing KVM on an operating system hence it is a type-2 hypervisor. It may be confusing because KVM is packaged as an application of Linux. It is installed as an application. But when a virtual machine is created using KVM, KVM lets the guest OS to interact directly to bare metal unlike type-2 hypervisors such as VMware Workstation, Player and Oracle Virtual box.

Page 12: EMC for Cinder and Swift - education.dellemc.com · 2015 EMC Proven Professional Knowledge Sharing 4 Introduction to Cloud Computing and OpenStack NIST Definition of Cloud Computing

2015 EMC Proven Professional Knowledge Sharing 12

OpenStack Distros

OpenStack distribution is not a modified version of OpenStack. A distribution is the same open

source code packaged with additional features and a distribution released by a vendor may not

have any proprietary code/components.

A product/appliance may come with proprietary features and may have unique deployment

model. Usually, vendors provide support. Following are recognized Distros,

Available OpenStack Distributions

1. Oracle OpenStack for Oracle Solaris

2. Oracle OpenStack for Oracle Linux

3. Service Provider Cloud (eNovance)

4. SwiftStack Object Storage Platform

5. Metacloud OpenStack

6. Nebula One Cloud Controller

7. Ubuntu OpenStack

8. Red Hat Enterprise Linux OpenStack Platform (RHEL-OP)

9. Rackspace Private Cloud Software

10. Open Cloud System (OCS – Cloudscaling)

11. Mirantis OpenStack

12. HP Helion OpenStack Community Edition

13. Easystack v1.0

14. VMware Integrated OpenStack

15. SUSE Cloud

16. IBM Cloud Manager with OpenStack

17. Piston OpenStack

18. Electrastack (Onyxccs)

Page 13: EMC for Cinder and Swift - education.dellemc.com · 2015 EMC Proven Professional Knowledge Sharing 4 Introduction to Cloud Computing and OpenStack NIST Definition of Cloud Computing

2015 EMC Proven Professional Knowledge Sharing 13

Block Storage

Cinder is a block storage project in OpenStack. Until Folsom release, this was called NOVA

Volume. But in Folsom release, it is separated as a project because of the importance of block

storage. We know Cinder provide persistent block storage volumes for instances. Behind the

scenes, Cinder acts as control plane and abstracts traditional block storage devices/resources

in to a virtual pool. Cinder supports heterogeneous array meaning it can be of any vendor

solution. Cinder talks to storage array using API hence the storage array should allow API

access. Cinder is elastic – you can add/remove nodes on the go. Block volumes are ideal for

performance hungry applications. It is also possible to run instances from persistent block

volume. (Boot Disk)

What one can run on Cinder?

Production applications

Traditional IT systems

Database

…and much more

One does not necessarily have to use vendor provided storage arrays to avail block storage

functionality in OpenStack. Freely available solutions such as LVM, Ceph, GlusterFS, NFS,

ZFS, and Sheepdog on commodity hardware (Standard x86 servers) can be used. Using Cinder

on commodity hardware brings limitations. Cinder on commodity hardware works on the method

of share nothing architecture. This means, if a storage node fails the data on the failed node is

unavailable until the failed node comes back online. However, this limitation is not much of a

concern when your cloud is hosting “cloud aware” applications. Juno release has included

volume replication in Cinder making it possible to have zones and replication.

OpenStack does not offer file level storage to end users. File level storage is available in Ceph, Gluster and NFS to store instances in shared file system to support live migration.

Page 14: EMC for Cinder and Swift - education.dellemc.com · 2015 EMC Proven Professional Knowledge Sharing 4 Introduction to Cloud Computing and OpenStack NIST Definition of Cloud Computing

2015 EMC Proven Professional Knowledge Sharing 14

Limitation of Cinder in commodity hardware

The following functionalities which are normally found in vendor provided storage arrays are not

available on commodity hardware.

Quality of Service

Redundancy

Auto Tiering

Deduplication and compression

Cinder allows 3rd party drivers to overcome these commodity hardware limitations. A storage

vendor can create drivers for their products which allow integration with Cinder. Therefore, a

customer can make use of an existing storage array provided that Cinder driver is available.

What Cinder can do

Create, delete, extend volumes

Back-up volumes to Object store

Can clone a volume

Can take snapshots

Snapshot can be mounted.

Usage quotas can be set for tenants

Copy image to volume (Boot disk)

Ownership of a volume can be transferred to a different tenant

Page 15: EMC for Cinder and Swift - education.dellemc.com · 2015 EMC Proven Professional Knowledge Sharing 4 Introduction to Cloud Computing and OpenStack NIST Definition of Cloud Computing

2015 EMC Proven Professional Knowledge Sharing 15

Figure 4: Cinder Architecture

How Cinder works

Step 1: Cinder API receives HTTP requests from clients such as Horizon dashboard for

creation of volume. Received HTTP requests are converted into commands and sent to

message queue (AMQP). AuthManager running in Cinder API validates HTTPS requests.

AuthManager is usually tied to LDAP or DB.

Step 2: Cinder API then forwards it to Cinder scheduler. Cinder scheduler determines which

device to forward this command depending on the type of request. For instance, tenant A may

request SSD, tenant B may request SAS drives. Cinder scheduler plays an important role in

forwarding it to the correct device.

Page 16: EMC for Cinder and Swift - education.dellemc.com · 2015 EMC Proven Professional Knowledge Sharing 4 Introduction to Cloud Computing and OpenStack NIST Definition of Cloud Computing

2015 EMC Proven Professional Knowledge Sharing 16

Step 3: Cinder volume receives the command from Cinder scheduler and executes the task by

passing it to storage driver which is installed. Cinder Volume is the service which manages

block devices.

The important thing to note here is the communication channel. All the administrative

commands are passed on to storage arrays via its management interface. Data ports are used

only for I/O and not for management activity.

EMC’s role in Cinder

EMC has released drivers for several EMC products. Driver of some products (VMAX®, VNX®,

and XtremIO®) are merged in OpenStack release. For others, a github repository5 is available to

download drivers directly.

What EMC can do for Cinder and Swift

If an EMC customer plans to implement OpenStack, drivers released by EMC may come in

handy for them to easily plug their existing EMC array on to cloud. What about someone doing a

greenfield deployment? While evaluating storage needs for cloud in a greenfield deployment a

potential customer has many choices available. This article does not promote open source

solutions such as Ceph, Gluster FS, etc. Instead, it’s more of a proposal to explore new

customer base with a low-cost storage software solution for Block and Object.

Before we discuss the possibilities, let’s look at some of the market research and survey data. In

Paris, many OpenStack users came up to the stage and shared their experience and

techniques. These case studies are available on OpenStack organization website6. Companies

like Cisco WebEX, PayPal, CERN, Go Daddy, Intel, Seagate, Avaya, Disney, Time Warner

Cable, and Sony Network Entertainment are some of the many organizations running on-

premise private cloud and Hybrid cloud. Data collected from a survey conducted during Juno

release conference held in Paris is very interesting. Figure 5 and 6 (next page) present two

general questions from the survey

5 EMC github repository - http://emccode.github.io/

6 OpenStack user stories - http://www.openstack.org/user-stories/

It is possible to integrate Cinder to a software defined storage environment such

as EMC ViPR.

Page 17: EMC for Cinder and Swift - education.dellemc.com · 2015 EMC Proven Professional Knowledge Sharing 4 Introduction to Cloud Computing and OpenStack NIST Definition of Cloud Computing

2015 EMC Proven Professional Knowledge Sharing 17

Figure 5: How do you prefer to run/deploy your OpenStack cloud?

Figure 6: Do you intend to re-purpose existing hardware for your OpenStack cloud or buy new hardware?

Key takeaways from survey include:

Almost half of the administrators/consultants/architects will opt for OpenStack

distributions over appliance and build it yourself – best of breed cloud is what they plan

to implement

When building cloud, most administrators/consultants/architects plan to use existing

hardware as well as buy new hardware

People prefer distribution because it is production ready, stable, and provides automated

deployment (depends on distribution) support etc.

In my opinion, most of the enterprise or new customers will try to avoid vendor lock in and re-

purpose or purchase new x86 servers to make use of open source software solutions such as

Ceph, Gluster FS, etc. I say this because OpenStack survey insights website has this

22 21

1

2 Do it myself (from Trunk)

Distribution Vendor

Turnkey Appliance

Other

11

11

23

Re-purpose existing hardware

Buy new hardware

Both

Page 18: EMC for Cinder and Swift - education.dellemc.com · 2015 EMC Proven Professional Knowledge Sharing 4 Introduction to Cloud Computing and OpenStack NIST Definition of Cloud Computing

2015 EMC Proven Professional Knowledge Sharing 18

information. Open source solutions made it to the top with staggering numbers in key areas

such as Hypervisor, Block Storage drivers, Operating System, and Network drivers.

Figure 7: Hypervisors used in compute nodes7

7 CC BY-SA 2.0

Page 19: EMC for Cinder and Swift - education.dellemc.com · 2015 EMC Proven Professional Knowledge Sharing 4 Introduction to Cloud Computing and OpenStack NIST Definition of Cloud Computing

2015 EMC Proven Professional Knowledge Sharing 19

Figure 8: Operating System7

Figure 9: Network plugins7

Page 20: EMC for Cinder and Swift - education.dellemc.com · 2015 EMC Proven Professional Knowledge Sharing 4 Introduction to Cloud Computing and OpenStack NIST Definition of Cloud Computing

2015 EMC Proven Professional Knowledge Sharing 20

Figure 10: Block storage drivers7

Cinder with LVM (default choice of OpenStack cloud) and Ceph, will work without a problem for

all cloud-aware applications which has built in redundancy. Challenges arise when you want to

run traditional IT applications and look for continuous data replication. Having a lower recovery

time objective (RTO) is very challenging.

Apart from developing Cinder drivers for arrays, EMC may consider to develop a new low-cost

storage software solution focusing on Block and Object storage needs for cloud. It must be a

software defined storage solution for commodity hardware. (But it should not be a replacement

for Cinder which itself is a software defined storage solution.)

If a solution is possible, it would be very hard to merge it with OpenStack releases. Instead, this

can be a project outside of OpenStack community. By doing this we are not trying to create

another Cinder service and modifying what Cinder is intended to do. In the previous topic I

wrote about how Cinder works. Here is my idea explained in detail.

Page 21: EMC for Cinder and Swift - education.dellemc.com · 2015 EMC Proven Professional Knowledge Sharing 4 Introduction to Cloud Computing and OpenStack NIST Definition of Cloud Computing

2015 EMC Proven Professional Knowledge Sharing 21

My method in brief

A client such as horizon dashboard sends HTTP message to Cinder API. Cinder API then

converts it to command. Here the idea is to intercept the command which Cinder API places in

message queue.

We know that Cinder volume is the service which acts as a control plane to the underlying

storage platform. We are not going to do anything at all with Cinder volumes and scheduler. In

this model, instead of Cinder scheduler deciding which Cinder volume it should forward to, the

command can be sent over to EMC storage nodes running EMC storage software. EMC node

can decide on which tier or where to put/get the data.

This will allow EMC to implement its proven techniques such as auto-tiering, deduplication,

compression, etc. separately outside of OpenStack. This may also allow EMC to leverage

proven disaster recovery solutions such as RecoverPoint and VPLEX to EMC OpenStack

storage nodes. I believe this approach will give EMC an edge over other storage solutions for

OpenStack, such as Ceph, SwiftStack etc.

If this is technically possible to achieve, it does not conflict with Cinder service in any way

because my goal is to come up with a solution which does not interact with Cinder volumes.

However, it should take the command directly from Cinder API. It is important to understand that

my idea or personal opinion does not challenge Cinder project. This is more like a product that

can talk to Cinder API.

This is not a tested solution. I am merely using this opportunity to express my idea. Also I am

not sure what technical difficulties/challenges it may bring. The Following figure is a

representation of the discussed idea.

Page 22: EMC for Cinder and Swift - education.dellemc.com · 2015 EMC Proven Professional Knowledge Sharing 4 Introduction to Cloud Computing and OpenStack NIST Definition of Cloud Computing

2015 EMC Proven Professional Knowledge Sharing 22

Figure 11: Proposed architecture

Page 23: EMC for Cinder and Swift - education.dellemc.com · 2015 EMC Proven Professional Knowledge Sharing 4 Introduction to Cloud Computing and OpenStack NIST Definition of Cloud Computing

2015 EMC Proven Professional Knowledge Sharing 23

Conclusion

I have used this article to express my idea on Cinder services so that it may bring value to EMC.

I find OpenStack to be a viable solution to build cheaper cloud environments where capital

expenses are less when compared to other cloud solutions. Data from surveys conducted at

OpenStack Summit also strongly indicates the importance of cloud computing solutions. In the

years to come most IT organizations will transform to cloud.

While OpenStack already offers a number of choices and flexibility in most services, in Cinder, a

customer has a choice to use OpenStack-provided block storage solutions such as LVM, Ceph

(for a much cheaper cost), or use a 3rd party storage array. Using 3rd party storage ensures high

availability of data. However, there is no solution available today which combines both. The goal

is to design a solution which costs less and offers high availability, like an enterprise class

storage array. This will be a key to exploring new customer base.

Page 24: EMC for Cinder and Swift - education.dellemc.com · 2015 EMC Proven Professional Knowledge Sharing 4 Introduction to Cloud Computing and OpenStack NIST Definition of Cloud Computing

2015 EMC Proven Professional Knowledge Sharing 24

Glossary

Pool – Aggregation of resources such as processor, RAM, etc.

Instance – A virtual machine which is running on bare metal with the help of hypervisor

Turnkey – Packaged product or service that is ready for immediate use.

API – Application Program Interface

Tenant – An organization or a user who is using cloud resources

KVM – Kernel-based Virtual Machine. (Hypervisor)

NAT – Network Address Translation is a processor of mapping one IP address space into

another

LVM – Logical Volume Manager that manages disk drives and mass storage devices

Ceph – Ceph is a free software solution which can provide block, object and file storage

GlusterFS – GlusterFS is an open source distributed file system and is highly scalable. Works

over Infiniband (RDMA) or TCP/IP interconnects.

NFS – Network File System

ZFS – A file system which offers high data integrity, high storage capacity and data

compression

Sheepdog – Object storage solution

Snapshot – Point in time copy

Clone – Exact copy of a volume

HTTP – Hypertext Transfer Protocol is a protocol to transfer Hypertext

AMQP – Advanced Message Queuing Protocol

Open vSwitch – Open Source multilayer virtual switch

Page 25: EMC for Cinder and Swift - education.dellemc.com · 2015 EMC Proven Professional Knowledge Sharing 4 Introduction to Cloud Computing and OpenStack NIST Definition of Cloud Computing

2015 EMC Proven Professional Knowledge Sharing 25

VMware NSX plugin – Network virtualization software provided by VMware

Folsom – Earlier OpenStack release name

NOVA Volume – Block storage service that was used in older versions of OpenStack

Commodity hardware – A standard x86 hardware

Node – x86 server

Deduplication – Process of eliminating redundant copies of stored data

Compression – A mechanism in which size of data packet is reduced to a significant amount

and transmitted over WAN/LAN

Greenfield deployment – Building cloud environment from scratch.

On-premise private cloud – A IT organization using cloud technology for its internal purposes

such as intranet sites, applications etc.

Appendix

1. NIST definition of Cloud Computing - http://csrc.nist.gov/publications/nistpubs/800-

145/SP800-145.pdf

2. NIST definition of Private, public, community, hybrid cloud -

http://csrc.nist.gov/publications/nistpubs/800-145/SP800-145.pdf

3. This picture is from openstack.org - http://www.openstack.org/software/

4. Conceptual architecture image from openstack.org -

http://docs.openstack.org/juno/install-guide/install/apt/content/ch_overview.html

5. EMC github repository - http://emccode.github.io/

6. OpenStack user stories - http://www.openstack.org/user-stories/

7. Image is licensed under CC BY-SA 2.0 -

http://superuser.openstack.org/articles/openstack-user-survey-insights-november-2014

8. OpenStack user survey insights (images are licensed under CC BY-SA) -

http://superuser.openstack.org/articles/openstack-user-survey-insights-november-2014

9. OpenStack Summit Paris 2014 summary - https://inside.emc.com/docs/DOC-126022

10. OpenStack: Distribution or Service - http://www.zdnet.com/article/openstack-distribution-

or-service/

Page 26: EMC for Cinder and Swift - education.dellemc.com · 2015 EMC Proven Professional Knowledge Sharing 4 Introduction to Cloud Computing and OpenStack NIST Definition of Cloud Computing

2015 EMC Proven Professional Knowledge Sharing 26

11. OpenStack Distributions - http://www.openstack.org/marketplace/distros/

12. KVM Myths -

https://www.ibm.com/developerworks/community/blogs/ibmvirtualization/entry/kvm_myth

s_uncovering_the_truth_about_the_open_source_hypervisor?lang=en

13. Future if OpenStack - http://cloudscaling.com/blog/openstack/the-future-of-openstack-is-

now-2015/

14. The way forward - http://ttx.re/the-way-forward.html

15. The problems with SDS under Cinder -

https://griffithscorner.wordpress.com/2014/05/16/the-problem-with-sds-under-cinder/

16. The Problem with SDS under Cinder Part 2 -

https://griffithscorner.wordpress.com/2014/06/17/the-problem-with-sds-under-cinder-

part-2/

17. “What is SDS?” battle card/decoder -

http://virtualgeek.typepad.com/virtual_geek/2014/06/what-is-sds-battle-carddecoder.html

18. OpenStack Cinder and Software Defined Storage -

http://theruddyduck.typepad.com/theruddyduck/2014/05/openstack-cinder-and-software-

defined-storage-sds.html

19. The problem SDS under OpenStack Cinder Solves -

http://cloudarchitectmusings.com/2014/06/17/the-problem-sds-under-openstack-cinder-

solves/

20. Under the covers of OpenStack Cinder volume -

https://inside.emc.com/community/active/everything_openstack/blog/2014/11/11/under-

the-covers-of-openstack-cinder-volume

21. Cinder System Architecture -

http://docs.openstack.org/developer/cinder/devref/architecture.html

22. EMC doubles down on OpenStack - http://pulseblog.emc.com/2014/11/04/emc-doubles-

openstack/

Page 27: EMC for Cinder and Swift - education.dellemc.com · 2015 EMC Proven Professional Knowledge Sharing 4 Introduction to Cloud Computing and OpenStack NIST Definition of Cloud Computing

2015 EMC Proven Professional Knowledge Sharing 27

EMC believes the information in this publication is accurate as of its publication date. The

information is subject to change without notice.

THE INFORMATION IN THIS PUBLICATION IS PROVIDED “AS IS.” EMC CORPORATION

MAKES NO RESPRESENTATIONS OR WARRANTIES OF ANY KIND WITH RESPECT TO

THE INFORMATION IN THIS PUBLICATION, AND SPECIFICALLY DISCLAIMS IMPLIED

WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

Use, copying, and distribution of any EMC software described in this publication requires an

applicable software license.