In this chapter, we will cover the following recipes:
OpenStack Object Storage, also known as Swift, is the service that allows massively scalable and highly redundant storage on commodity hardware. This service is implemented by Rackspace as cloud files and is also analogous to Amazon's S3 storage service. It is managed in a similar way under OpenStack. With OpenStack Object Storage, we can store many objects of virtually unlimited size—restricted by the available hardware—and grow our environment as needed in order to accommodate our storage. The highly redundant nature of OpenStack Object Storage is ideal for archiving data (such as logs) as well as providing a storage system that OpenStack Compute can use for virtual machine instance templates.
In this chapter, we will set up a multi-node environment consisting of a single Swift proxy server and five Swift storage nodes with a single extra disk at /dev/sdb1
where the object storage will be written. The authentication and authorization will be handled by Keystone. The data stored in Swift will be replicated three times. This means that a file of size 1 GB will actually use 3 GB of space across our cluster. It will replicate this data by spreading them across the five nodes (any three of the five nodes will have the data stored), so any failure of a node vastly reduces the amount of time to recover. This guarantees that quorum is maintained regardless of which node failed. This is considered the minimum recommended architecture for any Swift installation.
Typical reference architecture is shown in the following diagram and shows the proxy servers sitting behind a Load Balancer:
For the multi-node Swift installation that accompanies this chapter, visit http://bit.ly/OpenStackCookbookSwift.