Jump to: navigation, search


Configuring OpenStack Object Store (Swift)

Swift uses paste.deploy to manage server configurations, which is a Python-based system for finding and configuring WSGI applications and servers.

Default configuration options are set in the [DEFAULT] section, and any options specified there can be overridden in any of the other sections.

These are the files that are included in the source code repository. Some have been added with the Austin release for stats logging and a swift.conf that maintains the hash.

  • etc/rsyncd.conf-sample
  • etc/drive-audit.conf-sample
  • etc/stats.conf-sample
  • etc/log-processing.conf-sample
  • etc/swift.conf-sample
  • etc/auth-server.conf-sample
  • etc/object-server.conf-sample
  • etc/container-server.conf-sample
  • etc/account-server.conf-sample
  • etc/proxy-server.conf-sample

Here are the basic steps. Configuration options are documented in the Swift developer documentation.

  1. Create /etc/swift/auth-server.conf.
  2. Create /etc/swift/proxy-server.conf.
  3. Create /etc/swift/account-server/1.conf, 2.conf, 3.conf, 4.conf, and so on until each account server has a conf file.
  4. Create /etc/swift/container-server/1.conf, 2.conf, 3.conf, 4.conf, and so on for each container server.

For these configuration files, set devices= to a directory where a set of mount points can be found. The system is set up to allow many drives per server. For instance, at Rackspace we often have systems with devices=/srv/node. If you do ls /srv/node you'd see:

sda  sdc  sde  sdg  sdi  sdk  sdm  sdo  sdq  sds  sdu  sdw
sdb  sdd  sdf  sdh  sdj  sdl  sdn  sdp  sdr  sdt  sdv  sdx

Each one of those being a separate mount point and therefore device.

One possible convention is to create an /srv/node directory and mount sdb1 at /srv/node/sdb1 and set devices=/srv/node.