Make the object storage section less Ubuntu centric

The Swift section of the install guide tends to assume that the user
uses Ubuntu. This change provide more information for other
distributions.

backport: havana
Closes-Bug: #1274473
Closes-Bug: #1274405
Change-Id: I1c1fbea43d29724067185e3ab261cd20b2e0ed72
This commit is contained in:
Gauvain Pocentek 2014-01-31 19:00:17 +01:00
parent 0c1e957fa9
commit 5427452057
7 changed files with 100 additions and 148 deletions

View File

@ -40,7 +40,9 @@
periodic processes include auditors, updaters, and
reapers.</para>
</listitem>
</itemizedlist>
<listitem>
<para>Configurable WSGI middleware that handles authentication.
Usually the Identity Service.</para>
</listitem>
</itemizedlist>
</section>

View File

@ -8,69 +8,57 @@
for the account, container, or object and routes the requests
correctly. The proxy server also handles API requests. You
enable account management by configuring it in the
<filename>proxy-server.conf</filename> file.</para>
<filename>/etc/swift/proxy-server.conf</filename> file.</para>
<note>
<para>The Object Storage processes run under a separate user
and group, set by configuration options, and referred to as <phrase
os="ubuntu;debian;rhel;centos;fedora"
and group, set by configuration options, and referred to as
<literal> <phrase os="ubuntu;debian;rhel;centos;fedora"
>swift:swift</phrase><phrase os="opensuse;sles"
>openstack-swift:openstack-swift</phrase>. The default
user is <phrase os="ubuntu;debian;rhel;centos;fedora"
>swift, which may not exist on your
system.</phrase><phrase os="opensuse;sles"
>openstack-swift.</phrase></para>
>openstack-swift:openstack-swift</phrase></literal>. The default
user is <literal><phrase os="ubuntu;debian;rhel;centos;fedora"
>swift</phrase><phrase os="opensuse;sles"
>openstack-swift</phrase></literal>.</para>
</note>
<procedure>
<step>
<para>Install swift-proxy service:</para>
<screen os="ubuntu"><prompt>#</prompt> <userinput>apt-get install swift-proxy memcached python-keystoneclient python-swiftclient python-webob</userinput></screen>
<screen os="rhel;centos;fedora"><prompt>#</prompt> <userinput>yum install openstack-swift-proxy memcached openstack-utils python-swiftclient python-keystone-auth-token</userinput></screen>
<screen os="opensuse;sles"><prompt>#</prompt> <userinput>zypper install openstack-swift-proxy memcached openstack-utils python-swiftclient python-keystoneclient</userinput></screen>
<screen os="rhel;centos;fedora"><prompt>#</prompt> <userinput>yum install openstack-swift-proxy memcached python-swiftclient python-keystone-auth-token</userinput></screen>
<screen os="opensuse;sles"><prompt>#</prompt> <userinput>zypper install openstack-swift-proxy memcached python-swiftclient python-keystoneclient python-xml</userinput></screen>
</step>
<step>
<para>Create self-signed cert for SSL:</para>
<screen><prompt>#</prompt> <userinput>cd /etc/swift</userinput>
<prompt>#</prompt> <userinput>openssl req -new -x509 -nodes -out cert.crt -keyout cert.key</userinput></screen>
</step>
<step>
<para>Modify memcached to listen on the default interfaces
<step os="ubuntu;debian">
<para>Modify memcached to listen on the default interface
on a local, non-public network. Edit this line in
the <filename>/etc/memcached.conf</filename> file:</para>
<literallayout class="monospaced">-l 127.0.0.1</literallayout>
<programlisting>-l 127.0.0.1</programlisting>
<para>Change it to:</para>
<literallayout class="monospaced">-l &lt;PROXY_LOCAL_NET_IP&gt;</literallayout>
<programlisting>-l <replaceable>PROXY_LOCAL_NET_IP</replaceable></programlisting>
</step>
<step>
<para>Restart the memcached server:</para>
<step os="rhel;centos;fedora;opensuse;sles">
<para>Modify memcached to listen on the default interface
on a local, non-public network. Edit
the <filename>/etc/sysconfig/memcached</filename> file:</para>
<programlisting os="rhel;centos;fedora">OPTIONS="-l <replaceable>PROXY_LOCAL_NET_IP</replaceable>"</programlisting>
<programlisting os="opensuse;sles">MEMCACHED_PARAMS="-l <replaceable>PROXY_LOCAL_NET_IP</replaceable>"</programlisting>
</step>
<step os="ubuntu;debian">
<para>Restart the memcached service:</para>
<screen><prompt>#</prompt> <userinput>service memcached restart</userinput></screen>
</step>
<step os="rhel;centos;fedora">
<para>RHEL/CentOS/Fedora only: To set up Object Storage to
authenticate tokens, set the Identity Service Admin
token in the swift proxy file with the
<command>openstack-config</command> command.</para>
<screen><prompt>#</prompt> <userinput>openstack-config --set /etc/swift/proxy-server.conf \
filter:authtoken admin_token $ADMIN_TOKEN</userinput>
<prompt>#</prompt> sudo <userinput>openstack-config --set /etc/swift/proxy-server.conf \
filter:authtoken auth_token $ADMIN_TOKEN</userinput></screen>
</step>
<step os="ubuntu">
<para>Ubuntu only: Because the distribution packages do
not include a copy of the keystoneauth middleware,
ensure that the proxy server includes
them:</para>
<screen><prompt>$</prompt> <userinput>git clone https://github.com/openstack/swift.git</userinput>
<prompt>$</prompt> <userinput>cd swift</userinput>
<prompt>$</prompt> <userinput>python setup.py install</userinput>
<prompt>$</prompt> <userinput>swift-init proxy start</userinput></screen>
<step os="rhel;centos;fedora;opensuse;sles">
<para>Start the memcached service and configure it to start when
the system boots:</para>
<screen><prompt>#</prompt> <userinput>service memcached start</userinput>
<prompt>#</prompt> <userinput>chkconfig memcached on</userinput></screen>
</step>
<step>
<para>Create
<para><phrase os="ubuntu;debian">Create</phrase>
<phrase os="rhel;centos;fedora;opensuse;sles">Edit</phrase>
<filename>/etc/swift/proxy-server.conf</filename>:</para>
<programlisting language="ini">[DEFAULT]
bind_port = 8080
<phrase os="rhel;centos;fedora;ubuntu;debian">user = swift</phrase>
<phrase os="opensuse;sles">user = openstack-swift</phrase>
<phrase os="rhel;centos;fedora;ubuntu;debian">user = swift</phrase><phrase
os="opensuse;sles">user = openstack-swift</phrase>
[pipeline:main]
pipeline = healthcheck cache authtoken keystoneauth proxy-server
@ -99,13 +87,10 @@ auth_protocol = http
auth_host = <replaceable>controller</replaceable>
auth_port = 35357
# the same admin_token as provided in keystone.conf
admin_token = ADMIN_TOKEN
# the service tenant and swift userid and password created in Keystone
# the service tenant and swift username and password created in Keystone
admin_tenant_name = service
admin_user = swift
admin_password = SWIFT_PASS
admin_password = <replaceable>SWIFT_PASS</replaceable>
[filter:cache]
use = egg:swift#memcache
@ -120,20 +105,11 @@ use = egg:swift#healthcheck
<para>If you run multiple memcache servers, put the
multiple IP:port listings in the [filter:cache]
section of the
<filename>proxy-server.conf</filename> file:</para>
<filename>/etc/swift/proxy-server.conf</filename> file:</para>
<literallayout class="monospaced">10.1.2.3:11211,10.1.2.4:11211</literallayout>
<para>Only the proxy server uses memcache.</para>
</note>
</step>
<step>
<para>Create the <parameter class="option"
>signing_dir</parameter> and set its permissions
accordingly.</para>
<screen os="ubuntu;debian;rhel;centos;fedora"><prompt>#</prompt> <userinput>mkdir -p /home/swift/keystone-signing</userinput>
<prompt>#</prompt> <userinput>chown -R swift:swift /home/swift/keystone-signing</userinput></screen>
<screen os="opensuse;sles"><prompt>#</prompt> <userinput>mkdir -p /home/swift/keystone-signing</userinput>
<prompt>#</prompt> <userinput>chown -R openstack-swift:openstack-swift /home/swift/keystone-signing</userinput></screen>
</step>
<step>
<para>Create the account, container, and object rings. The
builder command creates a builder file
@ -153,21 +129,21 @@ use = egg:swift#healthcheck
<step>
<para>For every storage device on each node add entries to
each ring:</para>
<screen><prompt>#</prompt> <userinput>swift-ring-builder account.builder add z&lt;ZONE&gt;-&lt;STORAGE_LOCAL_NET_IP&gt;:6002[R&lt;STORAGE_REPLICATION_NET_IP&gt;:6005]/&lt;DEVICE&gt; 100</userinput>
<prompt>#</prompt> <userinput>swift-ring-builder container.builder add z&lt;ZONE&gt;-&lt;STORAGE_LOCAL_NET_IP_1&gt;:6001[R&lt;STORAGE_REPLICATION_NET_IP&gt;:6004]/&lt;DEVICE&gt; 100</userinput>
<prompt>#</prompt> <userinput>swift-ring-builder object.builder add z&lt;ZONE&gt;-&lt;STORAGE_LOCAL_NET_IP_1&gt;:6000[R&lt;STORAGE_REPLICATION_NET_IP&gt;:6003]/&lt;DEVICE&gt; 100</userinput></screen>
<screen><prompt>#</prompt> <userinput>swift-ring-builder account.builder add z<replaceable>ZONE</replaceable>-<replaceable>STORAGE_LOCAL_NET_IP</replaceable>:6002[R<replaceable>STORAGE_REPLICATION_NET_IP</replaceable>:6005]/<replaceable>DEVICE</replaceable> 100</userinput>
<prompt>#</prompt> <userinput>swift-ring-builder container.builder add z<replaceable>ZONE</replaceable>-<replaceable>STORAGE_LOCAL_NET_IP_1</replaceable>:6001[R<replaceable>STORAGE_REPLICATION_NET_IP</replaceable>:6004]/<replaceable>DEVICE</replaceable> 100</userinput>
<prompt>#</prompt> <userinput>swift-ring-builder object.builder add z<replaceable>ZONE</replaceable>-<replaceable>STORAGE_LOCAL_NET_IP_1</replaceable>:6000[R<replaceable>STORAGE_REPLICATION_NET_IP</replaceable>:6003]/<replaceable>DEVICE</replaceable> 100</userinput></screen>
<note>
<para>You must omit the optional <parameter>STORAGE_REPLICATION_NET_IP</parameter> parameter if you
do not want to use dedicated network for
replication.</para>
</note>
<para>For example, if a storage node
has a partition in Zone 1 on IP 10.0.0.1, the storage
node has address 10.0.1.1 from replication network.
The mount point of this partition is /srv/node/sdb1,
and the path in <filename>rsyncd.conf</filename> is
/srv/node/, the DEVICE would be sdb1 and the commands
are:</para>
has a partition in Zone 1 on IP 10.0.0.1, the storage node has
address 10.0.1.1 from replication network. The mount point of
this partition is <filename>/srv/node/sdb1</filename>, and the
path in <filename>/etc/rsyncd.conf</filename> is
<filename>/srv/node/</filename>, the DEVICE would be sdb1 and
the commands are:</para>
<screen><prompt>#</prompt> <userinput>swift-ring-builder account.builder add z1-10.0.0.1:6002R10.0.1.1:6005/sdb1 100</userinput>
<prompt>#</prompt> <userinput>swift-ring-builder container.builder add z1-10.0.0.1:6001R10.0.1.1:6005/sdb1 100</userinput>
<prompt>#</prompt> <userinput>swift-ring-builder object.builder add z1-10.0.0.1:6000R10.0.1.1:6005/sdb1 100</userinput></screen>
@ -196,16 +172,22 @@ use = egg:swift#healthcheck
<para>Copy the <filename>account.ring.gz</filename>,
<filename>container.ring.gz</filename>, and
<filename>object.ring.gz</filename> files to each
of the Proxy and Storage nodes in /etc/swift.</para>
of the Proxy and Storage nodes in <filename>/etc/swift</filename>.</para>
</step>
<step>
<para>Make sure the swift user owns all configuration files:</para>
<screen os="ubuntu;debian;rhel;centos;fedora"><prompt>#</prompt> <userinput>chown -R swift:swift /etc/swift</userinput></screen>
<screen os="opensuse;sles"><prompt>#</prompt> <userinput>chown -R openstack-swift:openstack-swift /etc/swift</userinput></screen>
</step>
<step>
<para>Start Proxy services:</para>
<screen><prompt>#</prompt> <userinput>service proxy-server start</userinput></screen>
<step os="ubuntu;debian">
<para>Restart the Proxy service:</para>
<screen><prompt>#</prompt> <userinput>service proxy-server restart</userinput></screen>
</step>
<step os="rhel;centos;fedora;sles;opensuse">
<para>Start the Proxy service and configure it to start when the
system boots:</para>
<screen><prompt>#</prompt> <userinput>service openstack-swift-proxy start</userinput>
<prompt>#</prompt> <userinput>chkconfig openstack-swift-proxy on</userinput></screen>
</step>
</procedure>
</section>

View File

@ -23,7 +23,7 @@
<screen os="rhel;centos;fedora"><prompt>#</prompt> <userinput>yum install openstack-swift-account openstack-swift-container \
openstack-swift-object xfsprogs xinetd</userinput></screen>
<screen os="opensuse;sles"><prompt>#</prompt> <userinput>zypper install openstack-swift-account openstack-swift-container \
openstack-swift-object xfsprogs xinetd</userinput></screen></para>
openstack-swift-object python-xml xfsprogs xinetd</userinput></screen></para>
</step>
<step>
<para>For each device on the node that you want to use for
@ -35,26 +35,24 @@
touched in this step. The other 10 or 11 disks should
be partitioned with a single partition, then formatted
in XFS.</para>
<screen os="ubuntu;debian;rhel;centos;fedora"><prompt>#</prompt> <userinput>fdisk /dev/sdb</userinput>
<screen><prompt>#</prompt> <userinput>fdisk /dev/sdb</userinput>
<prompt>#</prompt> <userinput>mkfs.xfs /dev/sdb1</userinput>
<prompt>#</prompt> <userinput>echo "/dev/sdb1 /srv/node/sdb1 xfs noatime,nodiratime,nobarrier,logbufs=8 0 0" &gt;&gt; /etc/fstab</userinput>
<prompt>#</prompt> <userinput>mkdir -p /srv/node/sdb1</userinput>
<prompt>#</prompt> <userinput>mount /srv/node/sdb1</userinput>
<prompt>#</prompt> <userinput>chown -R swift:swift /srv/node</userinput></screen>
<screen os="opensuse;sles"><prompt>#</prompt> <userinput>fdisk /dev/sdb</userinput>
<prompt>#</prompt> <userinput>mkfs.xfs /dev/sdb1</userinput>
<prompt>#</prompt> <userinput>echo "/dev/sdb1 /srv/node/sdb1 xfs noatime,nodiratime,nobarrier,logbufs=8 0 0" &gt;&gt; /etc/fstab</userinput>
<prompt>#</prompt> <userinput>mkdir -p /srv/node/sdb1</userinput>
<prompt>#</prompt> <userinput>mount /srv/node/sdb1</userinput>
<prompt>#</prompt> <userinput>chown -R openstack-swift:openstack-swift /srv/node</userinput></screen>
<phrase os="ubuntu;debian;rhel;centos;fedora"><prompt>#</prompt> <userinput>chown -R swift:swift /srv/node</userinput></phrase>
<phrase os="opensuse;sles"><prompt>#</prompt> <userinput>chown -R openstack-swift:openstack-swift /srv/node</userinput></phrase></screen>
</step>
<step>
<para>Create <filename>/etc/rsyncd.conf</filename>:</para>
<para os="ubuntu;debian;rhel;centos;fedora">Create
<filename>/etc/rsyncd.conf</filename>:</para>
<para os="sles;opensuse">Replace the content of
<filename>/etc/rsyncd.conf</filename> with:</para>
<programlisting language="ini" os="ubuntu;debian;rhel;centos;fedora">uid = swift
gid = swift
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
address = &lt;STORAGE_LOCAL_NET_IP&gt;
address = <replaceable>STORAGE_LOCAL_NET_IP</replaceable>
[account]
max connections = 2
@ -77,7 +75,7 @@ lock file = /var/lock/object.lock</programlisting>
gid = openstack-swift
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
address = &lt;STORAGE_LOCAL_NET_IP&gt;
address = <replaceable>STORAGE_LOCAL_NET_IP</replaceable>
[account]
max connections = 2
@ -103,7 +101,7 @@ lock file = /var/lock/object.lock</programlisting>
<literal>STORAGE_REPLICATION_NET_IP</literal>
instead of
<literal>STORAGE_LOCAL_NET_IP</literal>:</para>
<programlisting language="ini">address = &lt;STORAGE_REPLICATION_NET_IP&gt;</programlisting>
<programlisting language="ini">address = <replaceable>STORAGE_REPLICATION_NET_IP</replaceable></programlisting>
</step>
<step os="ubuntu;debian">
<para>Edit the following line in
@ -119,9 +117,14 @@ lock file = /var/lock/object.lock</programlisting>
<para os="ubuntu;debian">Start the <systemitem
class="service">rsync</systemitem> service:</para>
<screen os="ubuntu;debian"><prompt>#</prompt> <userinput>service rsync start</userinput></screen>
<para os="rhel;centos;fedora;sles;opensuse">Start the <systemitem
<para os="rhel;centos;fedora">Start the <systemitem
class="service">xinetd</systemitem> service:</para>
<screen os="rhel;centos;fedora;sles;opensuse"><prompt>#</prompt> <userinput>service xinetd start</userinput></screen>
<screen os="rhel;centos;fedora"><prompt>#</prompt> <userinput>service xinetd start</userinput></screen>
<para os="sles;opensuse">Start the <systemitem
class="service">xinetd</systemitem> service and configure it to
start when the system boots:</para>
<screen os="sles;opensuse"><prompt>#</prompt> <userinput>service xinetd start</userinput>
<prompt>#</prompt> <userinput>chkconfig xinetd on</userinput></screen>
<note>
<para>The rsync service requires no authentication, so
run it on a local, private network.</para>
@ -129,7 +132,7 @@ lock file = /var/lock/object.lock</programlisting>
</step>
<step>
<para>Create the swift recon cache directory and set its
permissions.</para>
permissions:</para>
<screen os="ubuntu;debian;rhel;centos;fedora"><prompt>#</prompt> <userinput>mkdir -p /var/swift/recon</userinput>
<prompt>#</prompt> <userinput>chown -R swift:swift /var/swift/recon</userinput></screen>
<screen os="opensuse;sles"><prompt>#</prompt> <userinput>mkdir -p /var/swift/recon</userinput>

View File

@ -53,25 +53,13 @@
<section xml:id="general-installation-steps-swift">
<title>General installation steps</title>
<procedure>
<step>
<para>Install core Swift files and openSSH.</para>
<screen os="ubuntu"><prompt>#</prompt> <userinput>apt-get install swift openssh-server rsync memcached python-netifaces \
python-xattr python-memcache</userinput></screen>
<screen os="rhel;centos;fedora"><prompt>#</prompt> <userinput>yum install openstack-swift openstack-swift-proxy \
openstack-swift-account openstack-swift-container \
openstack-swift-object memcached</userinput></screen>
<screen os="opensuse;sles"><prompt>#</prompt> <userinput>zypper install openstack-swift openstack-swift-proxy \
openstack-swift-account openstack-swift-container \
openstack-swift-object memcached</userinput></screen>
</step>
<step os="rhel;centos;fedora;opensuse;sles;ubuntu">
<para>Create a <literal>swift</literal> user that the Object
Storage
Service can use to authenticate with the Identity Service.
Storage Service can use to authenticate with the Identity Service.
Choose a password and specify an email address for the
<literal>swift</literal> user. Use the
<literal>service</literal> tenant and give the user the
<literal>admin</literal> role.</para>
<literal>admin</literal> role:</para>
<screen><prompt>#</prompt> <userinput>keystone user-create --name=swift --pass=<replaceable>SWIFT_PASS</replaceable> \
--email=<replaceable>swift@example.com</replaceable></userinput>
<prompt>#</prompt> <userinput>keystone user-role-add --user=swift --tenant=service --role=admin</userinput></screen>
@ -88,15 +76,15 @@
| name | swift |
| type | object-store |
+-------------+----------------------------------+</computeroutput></screen>
<para>The service ID is randomly generated and is different from
the one shown here.</para>
<note><para>The service ID is randomly generated and is different from
the one shown here.</para></note>
</step>
<step>
<para>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 <literal>controller</literal> host name is
used.</para>
used:</para>
<screen><prompt>#</prompt> <userinput>keystone endpoint-create \
--service-id=$(keystone service-list | awk '/ object-store / {print $2}') \
--publicurl='http://<replaceable>controller</replaceable>:8080/v1/AUTH_%(tenant_id)s' \
@ -114,12 +102,9 @@
+-------------+---------------------------------------------------+</computeroutput></screen>
</step>
<step>
<para>Create and populate configuration directories on
<para>Create the configuration directory on
all nodes:</para>
<screen os="ubuntu;debian;rhel;centos;fedora"><prompt>#</prompt> <userinput>mkdir -p /etc/swift</userinput>
<prompt>#</prompt> <userinput>chown -R swift:swift /etc/swift/</userinput></screen>
<screen os="opensuse;sles"><prompt>#</prompt> <userinput>mkdir -p /etc/swift</userinput>
<prompt>#</prompt> <userinput>chown -R openstack-swift:openstack-swift /etc/swift/</userinput></screen>
<screen><prompt>#</prompt> <userinput>mkdir -p /etc/swift</userinput></screen>
</step>
<step>
<para>Create
@ -133,7 +118,7 @@
<filename>/etc/swift/swift.conf</filename> 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 should be the same on every node in the
This file must be the same on every node in the
cluster!</para>
</note>
<para>Next, set up your storage nodes and proxy node. This

View File

@ -36,7 +36,7 @@
<literallayout class="monospaced">10.1.2.3:11211,10.1.2.4:11211</literallayout>
<literallayout class="monospaced">[filter:cache]
use = egg:swift#memcache
memcache_servers = &lt;PROXY_LOCAL_NET_IP&gt;:11211</literallayout>
memcache_servers = <replaceable>PROXY_LOCAL_NET_IP</replaceable>:11211</literallayout>
</step>
<step>
<para>Copy ring information to all

View File

@ -86,7 +86,7 @@
<para><emphasis role="bold">Operating system</emphasis>: OpenStack
Object Storage currently runs on Ubuntu, RHEL, CentOS, Fedora,
openSUSE, or SLES.</para>
<para><emphasis role="bold">Networking</emphasis>: 1Gpbs or 10
<para><emphasis role="bold">Networking</emphasis>: 1 Gbps or 10
Gbps is suggested internally. For OpenStack Object Storage, an
external network should connect the outside world to the proxy
servers, and the storage network is intended to be isolated on

View File

@ -7,41 +7,21 @@
<title>Start services on the storage nodes</title>
<para>Now that the ring files are on each storage node, you can
start the services. On each storage node, run the following
commands:</para>
<screen os="ubuntu;debian"><prompt>#</prompt> <userinput>service swift-object start</userinput>
<prompt>#</prompt> <userinput>service swift-object-replicator start</userinput>
<prompt>#</prompt> <userinput>service swift-object-updater start</userinput>
<prompt>#</prompt> <userinput>service swift-object-auditor start</userinput>
<prompt>#</prompt> <userinput>service swift-container start</userinput>
<prompt>#</prompt> <userinput>service swift-container-replicator start</userinput>
<prompt>#</prompt> <userinput>service swift-container-updater start</userinput>
<prompt>#</prompt> <userinput>service swift-container-auditor start</userinput>
<prompt>#</prompt> <userinput>service swift-account start</userinput>
<prompt>#</prompt> <userinput>service swift-account-replicator start</userinput>
<prompt>#</prompt> <userinput>service swift-account-reaper start</userinput>
<prompt>#</prompt> <userinput>service swift-account-auditor start</userinput></screen>
<screen os="fedora;rhel;centos;opensuse;sles"><prompt>#</prompt> <userinput>service openstack-swift-object start</userinput>
<prompt>#</prompt> <userinput>service openstack-swift-object-replicator start</userinput>
<prompt>#</prompt> <userinput>service openstack-swift-object-updater start</userinput>
<prompt>#</prompt> <userinput>service openstack-swift-object-auditor start</userinput>
<prompt>#</prompt> <userinput>service openstack-swift-container start</userinput>
<prompt>#</prompt> <userinput>service openstack-swift-container-replicator start</userinput>
<prompt>#</prompt> <userinput>service openstack-swift-container-updater start</userinput>
<prompt>#</prompt> <userinput>service openstack-swift-container-auditor start</userinput>
<prompt>#</prompt> <userinput>service openstack-swift-account start</userinput>
<prompt>#</prompt> <userinput>service openstack-swift-account-replicator start</userinput>
<prompt>#</prompt> <userinput>service openstack-swift-account-reaper start</userinput>
<prompt>#</prompt> <userinput>service openstack-swift-account-auditor start</userinput></screen>
command:</para>
<screen os="ubuntu;debian"><prompt>#</prompt> <userinput>for service in \
swift-object swift-object-replicator swift-object-updater swift-object-auditor \
swift-container swift-container-replicator swift-container-updater swift-container-auditor \
swift-account swift-account-replicator swift-account-reaper swift-account-auditor; do \
service $service start; done</userinput></screen>
<screen os="fedora;rhel;centos;opensuse;sles"><prompt>#</prompt> <userinput>for service in \
openstack-swift-object openstack-swift-object-replicator openstack-swift-object-updater openstack-swift-object-auditor \
openstack-swift-container openstack-swift-container-replicator openstack-swift-container-updater openstack-swift-container-auditor \
openstack-swift-account openstack-swift-account-replicator openstack-swift-account-reaper openstack-swift-account-auditor; do \
service $service start; chkconfig $service on; done</userinput></screen>
<note>
<para>To start all swift services at once, run the command:</para>
<screen><prompt>#</prompt> <userinput>swift-init main start</userinput></screen>
<screen><prompt>#</prompt> <userinput>swift-init all start</userinput></screen>
<para>To know more about <literal>swift-init</literal> command, run:</para>
<screen><prompt>#</prompt> <userinput>man swift-init</userinput></screen>
</note>
<screen><prompt>#</prompt> <userinput>service rsyslog restart</userinput>
<prompt>#</prompt> <userinput>service memcached restart</userinput></screen>
<note os="fedora;rhel;centos">
<para>On Fedora, you might need to use <command>systemctl restart
<replaceable>service</replaceable></command>.</para>
</note>
</section>