- OpenStack Swift, also known as OpenStack Object Storage, is an open source object storage system that is licensed under the Apache 2.0 license and runs on standard server hardware.
- OpenStack Swift is best suited to backup and archive unstructured data, such as documents, images, audio and video files, email and virtual machine images.
- Objects and files are written to multiple drives, and the Swift software ensures the data is replicated across a server cluster. By default, Swift places three copies of every object in as unique-as-possible locations -- first by region, then by zone, server and drive.
- If a server or hard drive fails, OpenStack Object Storage replicates its content from active nodes to new locations in the cluster.
- The system, which is accessed through a REST HTTP application programming interface (API), can scale horizontally to store petabytes of data through the addition of nodes, which typically equate to servers. OpenStack Swift software is based on Cloud Files technology developed by Rackspace Hosting Inc.
- Rackspace and NASA initiated the project and co-founded the community that develops and maintains OpenStack software, which includes compute, storage and networking components for building cloud computing services.
Swift Components:
=================
1.Proxy Server
Tie together the Swift architecture
Request routing
Exposes the public API
2.Ring
Maps names to entities (accounts, containers, objects) on disk.
Stores data based on zones, devices, partitions, and replicas
Weights can be used to balance the distribution of partitions
Used by the Proxy Server for many background processes
3.Object Server
Blob storage server
metadata kept in xattrs
data in binary format
Object location based on name & timestamp hash
Swift & Large Object Storage:
==============================
Default 5GB limit on the size of an uploaded object
Segmentation makes download size of a single object is virtually unlimited
Segments large object are uploaded and a special manifest file is created when downloaded, all segments are concatenated as a single object.
Greater upload speed
Possible parallel uploads of segments.
Swift Components:
=================
Replication
Keep the system consistent, handle failures
Updaters
Process failed or queued updates
Auditors
Verify integrity of objects, containers, and accounts
Container Server:
Handles listing of objects, stores as SQLite DB
Account Server:
Handles listing of containers, stores as SQLite DB
Limitation:
===========
Search is limited to queries based on the object's name and to a single bucket. No metadata or content-based search capabilities are provided.