swift storage #1

  • By tribaal
  • Latest version (#1)
  • trusty
  • Stable
  • Edge


Contains swift-object, swift-container and swift-account servers.


This charm provides the swift-storage component of the OpenStack Swift object
storage system. It can be deployed as part of its own standalone storage
cluster or it can be integrated with the other OpenStack components, assuming
those are also managed by Juju. For Swift to function, you'll also need to
deploy an additional swift-proxy using the cs:precise/swift-proxy charm.

For more information about Swift and its architecture, visit the official
project website at http://swift.openstack.org.

This charm was developed to support deploying multiple version of Swift on
Ubuntu Precise 12.04, as they relate to the release series of OpenStack. That
is, OpenStack Essex corresponds to Swift 1.4.8 while OpenStack Folsom shipped
1.7.4. This charm can be used to deploy either (and future) versions of Swift
onto an Ubuntu Precise 12.04, making use of the Ubuntu Cloud Archive when


This charm is quite simple. Its basic function is to get a storage device
setup for swift usage, and run the container, object and account services.
The deployment workflow for swift using this charm is covered in the README
for the swift-proxy charm at cs:precise/swift-proxy. The following are
deployment options to take into consideration when deploying swift-storage.

Zone assignment

If the swift-proxy charm is configured for manual zone assignment (recommended),
the 'zone' option should be set for each swift-storage service being deployed.
See the swift-proxy README for more information about zone assignment.


Swift storage nodes require access to local storage and filesystem. The charm
takes a 'block-device' config setting that can be used to specify which storage
device(s) to use. Options include:

  • 1 or more local block devices (eg, sdb or /dev/sdb). It's important that this
    device be the same on all machine units assigned to this service. Multiple
    block devices should be listed as a space-separated list of device nodes.
  • a path to a local file on the filesystem with the size appended after a pipe,
    eg "/etc/swift/storagedev1.img|5G". This will be created if it does not
    exist and be mapped to a loopback device. Good for development and testing.
  • "guess" can be used to tell the charm to do its best to find a local devices
    to use. EXPERIMENTAL

Multiple devices can be specified. In all cases, the resulting block device(s)
will each be formatted as XFS file system and mounted at /srv/node/$devname.

Installation repository

The 'openstack-origin' setting allows Swift to be installed from installation
repositories and can be used to setup access to the Ubuntu Cloud Archive
to support installing Swift versions more recent than what is shipped with
Ubuntu 12.04 (1.4.8). For more information, see config.yaml.


(string) Repository from which to install. May be one of the following: distro (default), ppa:somecustom/ppa, a deb url sources entry, or a supported Cloud Archive release pocket. . Supported Cloud Archive sources include: cloud:precise-folsom, cloud:precise-folsom/updates, cloud:precise-folsom/staging, cloud:precise-folsom/proposed. . Note that updating this setting to a source that is known to provide a later version of OpenStack will trigger a software upgrade.
(int) Listening port of the swift-account-server.
(int) Swift storage zone to request membership. Relevant only when the swift-proxy charm has been configured for manual zone assignment (the default). This should be changed for every service unit.
(int) Listening port of the swift-container-server.
(int) Listening port of the swift-object-server.
(string) Device to be used to back Swift storage. May be any valid block device or a path and size to a local file (/path/to/file.img|$sizeG), which will be created and used as a loopback device (for testing only). Multiple devices may be specified as a space-separated list of devices. If set to "guess", the charm will attempt to format and mount all extra block devices (this is currently experimental and potentially dangerous).
(string) If true, charm will attempt to unmount and overwrite existing and in-use block-devices (WARNING).