Saturday 2 June 2012

Openstack swift

Openstack:
     OpenStack is a collection of open source software projects that enterprises/service providers can use to setup and run their cloud compute and storage infrastructure.
Rackspace and NASA are the key initial contributors to the stack. Rackspace contributed their "Cloud Files" platform (code) to power the Object Storage part of the OpenStack,
while NASA contributed their "Nebula" platform (code) to power the Compute part. OpenStack consortium has managed to have more than 150 members including Canonical,
Dell, Citrix etc.


There are 5 main service families under OpenStack

• Nova - Compute Service

• Swift - Storage Service

• Glance - Imaging Service

• Keystone - Identity Service

• Horizon - UI Service

Swift:

Swift is a highly available, distributed, eventually consistent object/blob store. Organizations can use Swift to store lots of data efficiently, safely, and cheaply.

Swift provides a distributed, eventually consistent virtual object store for OpenStack. It is
analogous to Amazon Web Services - Simple Storage Service (S3). Swift is capable of storing
billions of objects distributed across nodes. Swift has built-in redundancy and failover
management and is capable of archiving and media streaming. It is extremely scalable in
terms of both size (several petabytes) and capacity (number of objects).


Functions and Features
• Storage of large number of objects
• Storage of large sized objects
• Data Redundancy
• Archival capabilities - Work with large datasets
• Data container for virtual machines and cloud apps
• Media Streaming capabilities
• Secure storage of objects
• Backup and archival
• Extreme scalability


Components of Swift
• Swift Account
• Swift Container
• Swift Object
• Swift Proxy
• The RING


Swift Proxy Server
The consumers interact with the Swift setup through the proxy server using the Swift API.
The proxy server acts as a gatekeeper and recieves requests from the world. It looks up the
location of the appropriate entities and routes the requests to them.
The proxy server also handles failures of entities by rerouting requests to failover entities
(handoff entities)


Swift Object Server
The Object server is a blob store. It's responsibility is to handle storage, retrieval and
deletion of objects stored in the local storage. Objects are typically binary files stored in the
filesystem with metadata contained as extended file attributes (xattr).
Note: xattr is supported in several filesystems such as ext3, ext4, XFS, Btrfs, JFS and ReiserFS
in Linux. But it is known to work best under XFS, JFS, ReiserFS, Reiser4, and ZFS. XFS is
considered to be the best option.


Swift Container server
The container server lists the objects in a container. The lists are stored as SQLite files. The
container server also tracks the statistics like the number of objects contained and the
storage size occupied by a container.


Swift Account Server
The account server lists containers the same way a container server lists objects.


The Ring
The ring contains information about the physical location of the objects stored inside Swift.
It is a virtual representation of mapping of names of entities to their real physical location.
It is analogous to an indexing service that various processes use to lookup and locate
the real physical location of entities within the cluster. Entities like Accounts, Containers,
Objects have their own seperate rings.








********************************************************************************************************


Openstack object store (swift) in detail:


Getting Started with OpenStack

    OpenStack is a collection of open source technology that provides massively scalable open
source cloud computing software. Currently OpenStack develops two related projects:
      
      1. OpenStack Compute, which offers computing power through virtual machine and network
management, and
    
     2. OpenStack Object Storage which is software for redundant, scalable
object storage capacity.

Closely related to the OpenStack Compute project is the Image
Service project, named Glance. OpenStack can be used by corporations, service providers,
VARS, SMBs, researchers, and global data centers looking to deploy large-scale cloud
deployments for private or public clouds.

What is OpenStack?
    OpenStack offers open source software to build public and private clouds. OpenStack
is a community and a project as well as open source software to help organizations run
clouds for virtual computing or storage. OpenStack contains a collection of open source
projects that are community-maintained including OpenStack Compute (code-named
Nova), OpenStack Object Storage (code-named Swift), and OpenStack Image Service (code-
named Glance). OpenStack provides an operating platform, or toolkit, for orchestrating
clouds.
OpenStack is more easily defined once the concepts of cloud computing become apparent,
but we are on a mission: to provide scalable, elastic cloud computing for both public and
private clouds, large and small. At the heart of our mission is a pair of basic requirements:
clouds must be simple to implement and massively scalable.


Components of OpenStack

There are currently three main components of OpenStack:
1) Compute
2) Object Storage, and
3) Image Service.


OpenStack Compute is a cloud fabric controller, used to start up virtual instances for either
a user or a group. It's also used to configure networking for each instance or project that
contains multiple instances for a particular project.


OpenStack Object Storage is a system to store objects in a massively scalable large capacity
system with built-in redundancy and failover. Object Storage has a variety of applications,
such as backing up or archiving data, serving graphics or videos (streaming data to a user’s
browser), storing secondary or tertiary static data, developing new applications with data
storage integration, storing data when predicting storage capacity is difficult, and creating
the elasticity and flexibility of cloud-based storage for your web applications.



Introduction to OpenStack Object Storage

OpenStack Object Storage is a scalable object storage system - it is not a file system in the
traditional sense. You will not be able to mount this system like traditional SAN or NAS
volumes. Since OpenStack Object Storage is a different way of thinking when it comes to
storage, take a few moments to review the key concepts listed below.

1 comment:

  1. It was a great article on cloud storage. Thanks for providing very useful information on OpenStack local storage.

    ReplyDelete