---
title: Charmhub | Deploy Swift Storage using Charmhub - The Open Operator Collection
description: Deploy the latest version of Swift Storage on any cloud.
url: https://charmhub.io/swift-storage/configurations
---

# Swift Storage

[OpenStack Charmers](https://charmhub.io/publisher/openstack-charmers "View all packages from OpenStack Charmers")

* [OpenStack Charmers](https://charmhub.io/publisher/openstack-charmers "View all packages from OpenStack Charmers")
* [Cloud](https://charmhub.io/?filter=cloud)
* [Storage](https://charmhub.io/?filter=storage)

Platform:

24.04

23.10

23.04

22.10

22.04

20.04

18.04

14.04

12.04

yoga/stable 518

```
juju deploy swift-storage --channel yoga/stable
```

[Learn to deploy on juju >](https://juju.is/docs/juju/manage-applications)

* [account-max-connections](https://charmhub.io/swift-storage/configurations#account-max-connections)
* [account-server-port](https://charmhub.io/swift-storage/configurations#account-server-port)
* [account-server-port-rep](https://charmhub.io/swift-storage/configurations#account-server-port-rep)
* [action-managed-upgrade](https://charmhub.io/swift-storage/configurations#action-managed-upgrade)
* [allow-ufw-ip6-softfail](https://charmhub.io/swift-storage/configurations#allow-ufw-ip6-softfail)
* [block-device](https://charmhub.io/swift-storage/configurations#block-device)
* [container-max-connections](https://charmhub.io/swift-storage/configurations#container-max-connections)
* [container-server-port](https://charmhub.io/swift-storage/configurations#container-server-port)
* [container-server-port-rep](https://charmhub.io/swift-storage/configurations#container-server-port-rep)
* [enable-firewall](https://charmhub.io/swift-storage/configurations#enable-firewall)
* [encrypt](https://charmhub.io/swift-storage/configurations#encrypt)
* [ephemeral-unmount](https://charmhub.io/swift-storage/configurations#ephemeral-unmount)
* [file-allocation-reserve](https://charmhub.io/swift-storage/configurations#file-allocation-reserve)
* [harden](https://charmhub.io/swift-storage/configurations#harden)
* [nagios-check-params](https://charmhub.io/swift-storage/configurations#nagios-check-params)
* [nagios-replication-check-params](https://charmhub.io/swift-storage/configurations#nagios-replication-check-params)
* [nagios\_context](https://charmhub.io/swift-storage/configurations#nagios_context)
* [nagios\_servicegroups](https://charmhub.io/swift-storage/configurations#nagios_servicegroups)
* [node-timeout](https://charmhub.io/swift-storage/configurations#node-timeout)
* [object-handoffs-first](https://charmhub.io/swift-storage/configurations#object-handoffs-first)
* [object-lockup-timeout](https://charmhub.io/swift-storage/configurations#object-lockup-timeout)
* [object-max-connections](https://charmhub.io/swift-storage/configurations#object-max-connections)
* [object-replicator-concurrency](https://charmhub.io/swift-storage/configurations#object-replicator-concurrency)
* [object-rsync-timeout](https://charmhub.io/swift-storage/configurations#object-rsync-timeout)
* [object-server-port](https://charmhub.io/swift-storage/configurations#object-server-port)
* [object-server-port-rep](https://charmhub.io/swift-storage/configurations#object-server-port-rep)
* [object-server-threads-per-disk](https://charmhub.io/swift-storage/configurations#object-server-threads-per-disk)
* [openstack-origin](https://charmhub.io/swift-storage/configurations#openstack-origin)
* [overwrite](https://charmhub.io/swift-storage/configurations#overwrite)
* [prefer-ipv6](https://charmhub.io/swift-storage/configurations#prefer-ipv6)
* [statsd-host](https://charmhub.io/swift-storage/configurations#statsd-host)
* [statsd-port](https://charmhub.io/swift-storage/configurations#statsd-port)
* [statsd-sample-rate](https://charmhub.io/swift-storage/configurations#statsd-sample-rate)
* [storage-region](https://charmhub.io/swift-storage/configurations#storage-region)
* [sysctl](https://charmhub.io/swift-storage/configurations#sysctl)
* [worker-multiplier](https://charmhub.io/swift-storage/configurations#worker-multiplier)
* [xfs-inode-size](https://charmhub.io/swift-storage/configurations#xfs-inode-size)
* [zone](https://charmhub.io/swift-storage/configurations#zone)

[Learn about configurations >](https://juju.is/docs/juju/configuration#heading--application-configuration)

* account-max-connections | int

  Default: 2

  Number of connections allowed to the account rsync stanza.
* account-server-port | int

  Default: 6002

  Listening port of the swift-account-server.
* account-server-port-rep | int

  Default: 6012

  Listening port of the swift-account-replicator server.
* action-managed-upgrade | boolean

  If True enables openstack upgrades for this charm via juju actions.
  You will still need to set openstack-origin to the new repository but
  instead of an upgrade running automatically across all units, it will
  wait for you to execute the openstack-upgrade action for this charm on
  each unit. If False it will revert to existing behavior of upgrading
  all units on config change.
* allow-ufw-ip6-softfail | boolean

  When this option is set to True the charm will disable the IPv6
  support in ufw in case ip6tables couldn't be activated, situations
  where this could happen is in a LXC container running on top of a
  host that doesn't have loaded the ip6\_tables.

  If this option is False (the default) and ip6\_tables module couldn't
  be loaded, the charm will fail to install.
* block-device | string

  Default: sdb

  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).
* container-max-connections | int

  Default: 2

  Number of connections allowed to the container rsync stanza.
* container-server-port | int

  Default: 6001

  Listening port of the swift-container-server.
* container-server-port-rep | int

  Default: 6011

  Listening port of the swift-container-replicator server.
* enable-firewall | boolean

  Default: True

  By default the swift-storage charm will use the UFW firewall to
  protect storage daemons. This option allows the administrator to
  disable this feature.
* encrypt | boolean

  Encrypt block devices used by swift using dm-crypt, making use of
  vault for encryption key management; requires a relation to vault.
* ephemeral-unmount | string

  Cloud instances provide ephermeral storage which is normally mounted
  on /mnt.
  .
  Setting this option to the path of the ephemeral mountpoint will force
  an unmount of the corresponding device so that it can be used as a swift
  storage device. This is useful for testing purposes (cloud deployment
  is not a typical use case).
* file-allocation-reserve | int

  Set the reserve space for the swift filesystem mounts.
  If a disk has less than this amount of space (in bytes) free, writes
  will be handed off to another disk in the ring.
* harden | string

  Apply system hardening. Supports a space-delimited list of modules
  to run. Supported modules currently include os, ssh, apache and mysql.
* nagios-check-params | string

  Default: -m -r 60 180 10 20

  String appended to nagios check
* nagios-replication-check-params | string

  Default: replicated 15 2 1

  Space delimited parameters for check\_swift\_replicator\_logs.sh.
  search\_pattern
  interval\_in\_minutes
  minimum\_hits\_before\_warning
  minimum\_hits\_before\_critical
  Default of "replicated 15 2 1" leads to warning alert when there
  have not been at least 2 lines matching "replicated" in the last 15
  minutes, and critical if there have been no matching lines in the
  last 15 minutes.
  Set to blank string "" to disable the check.
* nagios\_context | string

  Default: juju

  Used by the nrpe-external-master subordinate charm.
  A string that will be prepended to instance name to set the host name
  in nagios. So for instance the hostname would be something like:
  juju-myservice-0
  If you're running multiple environments with the same services in them
  this allows you to differentiate between them.
* nagios\_servicegroups | string

  A comma-separated list of nagios servicegroups.
  If left empty, the nagios\_context will be used as the servicegroup
* node-timeout | int

  Timeout value used when copying account/container/object data between nodes.
* object-handoffs-first | boolean

  If set to True, partitions that are not supposed to be on the node will
  be replicated first. The default setting should not be changed, except
  for extreme situations.
* object-lockup-timeout | int

  Default: 1800

  Attempt to kill all workers if nothing replicates for this amount of seconds
  Note: this will always be set to no less than 2\*object-rsync-timeout.
* object-max-connections | int

  Default: 2

  Number of connections allowed to the object rsync stanza.
* object-replicator-concurrency | int

  Default: 1

  Number of replication workers to spawn.
* object-rsync-timeout | int

  Default: 900

  Max duration of a partition rsync (in seconds).
* object-server-port | int

  Default: 6000

  Listening port of the swift-object-server.
* object-server-port-rep | int

  Default: 6010

  Listening port of the swift-object-replicator server.
* object-server-threads-per-disk | int

  Default: 4

  Size of the per-disk thread pool used for performing disk I/O. 0 means
  to not use a per-disk thread pool. It is recommended to keep this value
  small, as large values can result in high read latencies due to large
  queue depths. A good starting point is 4 threads per disk.
* openstack-origin | string

  Default: yoga

  Repository from which to install. May be one of the following:
  distro (default), ppa:somecustom/ppa, a deb url sources entry,
  or a supported Ubuntu Cloud Archive release pocket.

  Supported Ubuntu Cloud Archive sources include:

  cloud:<series>-<openstack-release>
  cloud:<series>-<openstack-release>/updates
  cloud:<series>-<openstack-release>/staging
  cloud:<series>-<openstack-release>/proposed

  NOTE: updating this setting to a source that is known to provide
  a later version of OpenStack will trigger a software upgrade unless
  the action-managed-upgrade configuration option is in play.
* overwrite | string

  Default: false

  If true, charm will attempt to unmount and overwrite existing and in-use
  block-devices (WARNING).
* prefer-ipv6 | boolean

  If True enables IPv6 support. The charm will expect network interfaces
  to be configured with an IPv6 address. If set to False (default) IPv4
  is expected.

  NOTE: these charms do not currently support IPv6 privacy extension. In
  order for this charm to function correctly, the privacy extension must be
  disabled and a non-temporary address must be configured/available on
  your network interface.
* statsd-host | string

  Enable statsd metrics to be sent to the specified host.
  If this value is empty, statsd logging will be disabled.
* statsd-port | int

  Default: 3125

  Destination port on the provided statsd host to send samples to.
  Only takes effect if statsd-host is set.
* statsd-sample-rate | float

  Default: 1.0

  Sample rate determines what percentage of the metric points a
  client should send to the server.
  Only takes effect if statsd-host is set.
* storage-region | int

  Default: 1

  Swift storage region to request membership. Relevant only when the
  swift-proxy charm has been configured with the Swift Global
  Cluster feature.
* sysctl | string

  YAML formatted associative array of sysctl values, e.g.:
  '{ kernel.pid\_max : 4194303 }'
* worker-multiplier | float

  Default: 1.0

  The CPU multiplier to use when configuring worker processes for the
  account, container and object server processes.
* xfs-inode-size | int

  Default: 512

  XFS inode size to use for block devices.
* zone | int

  Default: 1

  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.
