1.4.7. Object Storage Service
The Object Storage service provides object storage in virtual containers, which allows users to store and retrieve files. The service's distributed architecture supports horizontal scaling; redundancy as failure-proofing is provided through software-based data replication.
Because it supports asynchronous eventual consistency replication, it is well suited to multiple data-center deployment. Object Storage uses the concept of:
- Storage replicas, used to maintain the state of objects in the case of outage. A minimum of three replicas is recommended.
- Storage zones, used to host replicas. Zones ensure that each replica of a given object can be stored separately. A zone might represent an individual disk drive or array, a server, all the servers in a rack, or even an entire data center.
- Storage regions, essentially a group of zones sharing a location. Regions can be, for example, groups of servers or server farms, usually located in the same geographical area. Regions have a separate API endpoint per Object Storage service installation, which allows for a discrete separation of services.
Table 1.9. Object Storage Service components
| Component | Description |
|---|---|
|
openstack-swift-proxy
|
Exposes the public API, and is responsible for handling requests and routing them accordingly. Objects are streamed through the proxy server to the user (not spooled). Objects can also be served out via HTTP.
|
|
openstack-swift-object
|
Stores, retrieves, and deletes objects.
|
|
openstack-swift-account
|
Responsible for listings of containers, using the account database.
|
|
openstack-swift-container
|
Handles listings of objects (what objects are in a specific container), using the container database.
|
|
Ring files
|
Contain details of all the storage devices, and are used to deduce where a particular piece of data is stored (maps the names of stored entities to their physical location). One file is created for each object, account, and container server.
|
|
Account database
| |
|
Container database
| |
|
ext4 (recommended) or XFS file system
|
Used for object storage.
|
|
Housekeeping processes
|
Replication and auditors.
|