deploying openstack object storage (swift)

9

Click here to load reader

Upload: juan-jose-martinez

Post on 14-May-2015

3.311 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: Deploying OpenStack Object Storage (Swift)

Deploying OpenStack Object StorageDeploying OpenStack Object Storage

10-11 September 2011University Club, Oxford

Juan J. Martínez <[email protected]>http://www.usebox.net/jjm/

Page 2: Deploying OpenStack Object Storage (Swift)

What is OpenStack?

Open Source software for “building clouds”

Storage

IaaS

ImageService

PaaS?

● OpenStack Object Storage (Swift)

● OpenStack Compute (Nova)

● OpenStack Image Service (Glance)

● Incubating projects:

Keystone, Dashboard, Crowbar, ...

Page 3: Deploying OpenStack Object Storage (Swift)

What is Swift?

Open Source software for creating redundant, scalable object storage using clusters of standardized servers to store petabytes of accessible data.

Object Storage

● Not a real file system● RESTful HTTP API● Blob and metadata (name, content type, date-time, size, MD5)● Support for pseudo-hierarchical directories

Real File System

● open, read, write, seek, close● chdir, mkdir, rmdir● remove, rename● chmod, chown, access● etc

Page 4: Deploying OpenStack Object Storage (Swift)

Swift Architecture

Accounts Containers Objects

Zone

Zone

ZoneThe Ring: location of an entity in the cluster

● Three rings (were intended for the Elves)● Weights can be used to balance the distribution● Three different logical levels

Listing

Listing

Drives

Partitions

3 ReplicasIn DIFFERENT

Zones

3 Different entities:

Page 5: Deploying OpenStack Object Storage (Swift)

Swift Services

● proxy server● account server● container server● object server● replicators (rsync based)● updaters (container, object)● auditors● reappers (account, container)

Proxy Server

Storage Node

Storage Node

Storage Node

Storage Node

Page 6: Deploying OpenStack Object Storage (Swift)

Swift Authentication (pluggable)

Proxy Server

Storage Node

Storage Node

Storage Node

Storage Node

Public Auth

Private Auth

DMZ

Client

User/Password

Token

Request (Token)

Token?

Different solutions:

● devauth (obsolete)● swauth (external project) ● tempauth (testing)● keystone (the future!)

Page 7: Deploying OpenStack Object Storage (Swift)

Swift Interfaces

Proxy Server

Storage Node

Storage Node

Storage Node

Storage Node

Public Auth

Private Auth

DMZ

Client

OpenStack API(Rackspace Cloud Files)

FTP/SFTP

FTP/SFTP

CDN

HTTP

Other clients:

S3 Proxy

https://github.com/chmouel/ftp-cloudfs

https://github.com/Memset/sftpcloudfs

Page 8: Deploying OpenStack Object Storage (Swift)

Swift Operations

● Managing the rings (adding/removing devices, zones, search for

devices, rebalance the ring)

● Upgrading services (one zone at a time)

● Handling driver failure (unmount; optionally remove it from the ring,

mount a new EMPTY drive)

● Zone failure (temporal: nothing!)

● Detecting failing disks (device audit)

● Object auditor (manually after a system crash)

What could possibly go wrong?

Page 9: Deploying OpenStack Object Storage (Swift)

Any questions?Any questions?Thanks for your attention!Thanks for your attention!

10-11 September 2011University Club, Oxford

Juan J. Martínez <[email protected]>http://www.usebox.net/jjm/

http://openstack.org/