Install Object Storage Though you can install OpenStack Object Storage for development or testing purposes on one server, a multiple-server installation enables the high availability and redundancy you want in a production distributed object storage system. To perform a single-node installation for development purposes from source code, use the Swift All In One instructions (Ubuntu) or DevStack (multiple distros). See http://swift.openstack.org/development_saio.html for manual instructions or http://devstack.org for all-in-one including authentication with the Identity Service (keystone) v2.0 API.
Before you begin Have a copy of the operating system installation media available if you are installing on a new server. These steps assume you have set up repositories for packages for your operating system as shown in . This document demonstrates how to install a cluster by using the following types of nodes: One proxy node which runs the swift-proxy-server processes. The proxy server proxies requests to the appropriate storage nodes. Five storage nodes that run the swift-account-server, swift-container-server, and swift-object-server processes which control storage of the account databases, the container databases, as well as the actual stored objects. Fewer storage nodes can be used initially, but a minimum of five is recommended for a production cluster.
General installation steps Create a swift user that the Object Storage Service can use to authenticate with the Identity Service. Choose a password and specify an email address for the swift user. Use the service tenant and give the user the admin role: $ keystone user-create --name swift --pass SWIFT_PASS \ --email swift@example.com $ keystone user-role-add --user swift --tenant service --role admin Create a service entry for the Object Storage Service: $ keystone service-create --name swift --type object-store \ --description "OpenStack Object Storage" +-------------+----------------------------------+ | Property | Value | +-------------+----------------------------------+ | description | OpenStack Object Storage | | id | eede9296683e4b5ebfa13f5166375ef6 | | name | swift | | type | object-store | +-------------+----------------------------------+ The service ID is randomly generated and is different from the one shown here. Specify an API endpoint for the Object Storage Service by using the returned service ID. When you specify an endpoint, you provide URLs for the public API, internal API, and admin API. In this guide, the controller host name is used: $ keystone endpoint-create \ --service-id $(keystone service-list | awk '/ object-store / {print $2}') \ --publicurl 'http://controller:8080/v1/AUTH_%(tenant_id)s' \ --internalurl 'http://controller:8080/v1/AUTH_%(tenant_id)s' \ --adminurl http://controller:8080 +-------------+---------------------------------------------------+ | Property | Value | +-------------+---------------------------------------------------+ | adminurl | http://controller:8080/ | | id | 9e3ce428f82b40d38922f242c095982e | | internalurl | http://controller:8080/v1/AUTH_%(tenant_id)s | | publicurl | http://controller:8080/v1/AUTH_%(tenant_id)s | | region | regionOne | | service_id | eede9296683e4b5ebfa13f5166375ef6 | +-------------+---------------------------------------------------+ Create the configuration directory on all nodes: # mkdir -p /etc/swift Create /etc/swift/swift.conf on all nodes: The prefix and suffix value in /etc/swift/swift.conf should be set to some random string of text to be used as a salt when hashing to determine mappings in the ring. This file must be the same on every node in the cluster! Next, set up your storage nodes and proxy node. This example uses the Identity Service for the common authentication piece.