You are on page 1of 19

Openstack Swift

An Introduction

What is Swift?
Object Store
Analogous to S3
Blob store
Does not care about type of data
Apache Licensed (Python)
Production Quality

Features
Distributed
Scalable to several Peta-Bytes
Eventually consistent (CAP)
Highly Available (by design)
Robust
REST-in peace :)

Features (contd..)
S3 API support
Can work on commodity HW
Quotas and access control
Various Storage Systems
Keystone Authentication

But...
You can't:
mount it
have file hierarchies (?)
store live databases
format to a file system
do anything the API does not let you do !
Store objects sized > 5GiB (WIP)

Components
Proxy
Account Server
Container Server
Object Server
Rings
Auditors & Expirers
...

Proxy Server
Gatekeeper
Authentication
Handles req from other servers
Single point of failure?

Object Server
Stores the objects
Size restricted to less than 5 GiB
Storage, retrieval and deletion
Updates & Replication
Integrity audits
Extended attributes

Container Server
Keeps track of objects
Namespace partitioning
Lists objects
SQLite DBs
Globally unique names not necessary

Account Server
Keeps track of containers
Lists containers and points to them

The Rings
Consistent hash ring / table
Partitions & Replicas
Weights
Object, Container, Account servers have their
own rings

http://docs.basho.com/riak/latest/references/appendices/concepts/

Swift Rings by @juldanjou

Thanks to Julien Danjou

Auditors & Updators


Detects bit-rots / filesystem corruption
Quarantines
Updators check for list sanity
Counters & metadata

Replicators
Ensures enough replicas
Ensures correct placement of replicas
Replication mechanism - Rsync

Expirers
Deletion of an object
Tombstones .ts
swift-account-reaper

Monitoring & Stats


swift-recon
swift-informant
Graphite / Ganglia
StatsD

Questions ?
swift.openstack.org

You might also like