openstack-manuals/doc/install-guide/object-storage/section_object-storage-install-config-storage-nodes.xml
Hidekazu Nakamura 5759cac6d9 Add to configure bind_ip on the storage nodes
The bind_ip under [DEFAULT] section of account-server.conf,
container-server.conf,object-server.conf files under /etc/swift of the
storage nodes need to be changed to the STORAGE_LOCAL_NET_IP.

Change-Id: Icfb92294466d5f38ae5abc80e2e6165802aec58f
Closes-Bug: #1364268
2014-09-14 02:08:52 +00:00

135 lines
6.6 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<section xmlns="http://docbook.org/ns/docbook"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink"
version="5.0"
xml:id="installing-and-configuring-storage-nodes">
<title>Install and configure storage nodes</title>
<note>
<para>Object Storage works on any file system that supports
Extended Attributes (XATTRS). XFS shows the best overall
performance for the swift use case after considerable
testing and benchmarking at Rackspace. It is also the only
file system that has been thoroughly tested. See the <link
xlink:href="http://docs.openstack.org/trunk/config-reference/content/"
><citetitle>OpenStack Configuration
Reference</citetitle></link> for additional
recommendations.</para>
</note>
<procedure>
<step>
<para>Install storage node packages:</para>
<para>
<screen os="ubuntu;debian"><prompt>#</prompt> <userinput>apt-get install swift swift-account swift-container swift-object xfsprogs</userinput></screen>
<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 python-xml xfsprogs xinetd</userinput></screen></para>
</step>
<step>
<para>For each device on the node that you want to use for
storage, set up the XFS volume
(<literal>/dev/sdb</literal> is used as an
example). Use a single partition per drive. For
example, in a server with 12 disks you may use one or
two disks for the operating system which should not be
touched in this step. The other 10 or 11 disks should
be partitioned with a single partition, then formatted
in XFS.</para>
<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>
</step>
<step>
<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">uid = swift
gid = swift
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
address = <replaceable>STORAGE_LOCAL_NET_IP</replaceable>
[account]
max connections = 2
path = /srv/node/
read only = false
lock file = /var/lock/account.lock
[container]
max connections = 2
path = /srv/node/
read only = false
lock file = /var/lock/container.lock
[object]
max connections = 2
path = /srv/node/
read only = false
lock file = /var/lock/object.lock</programlisting>
</step>
<step>
<para>(Optional) If you want to separate rsync and
replication traffic to replication network, set
<literal>STORAGE_REPLICATION_NET_IP</literal>
instead of
<literal>STORAGE_LOCAL_NET_IP</literal>:</para>
<programlisting language="ini">address = <replaceable>STORAGE_REPLICATION_NET_IP</replaceable></programlisting>
</step>
<step os="ubuntu;debian">
<para>Edit the following line in
<filename>/etc/default/rsync</filename>:</para>
<programlisting language="ini">RSYNC_ENABLE=true</programlisting>
</step>
<step os="rhel;centos;fedora;sles;opensuse">
<para>Edit the following line in
<filename>/etc/xinetd.d/rsync</filename>:</para>
<programlisting language="ini">disable = no</programlisting>
</step>
<step>
<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">Start the <systemitem
class="service">xinetd</systemitem> service:</para>
<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>
</note>
</step>
<step>
<para>Set the <option>bind_ip</option> configuration option to
<replaceable>STORAGE_LOCAL_NET_IP</replaceable>.</para>
<para>Edit the <filename>account-server.conf</filename>,
<filename>acontainer-server.conf</filename> and
<filename>object-server.conf</filename> files in the
<filename>/etc/swift</filename> directory. In each file,
update the <literal>[DEFAULT]</literal> section as follows:
<programlisting language="ini">[DEFAULT]
bind_ip = <replaceable>STORAGE_LOCAL_NET_IP</replaceable>
...</programlisting>
</para>
</step>
<step>
<para>Make sure the swift user owns all configuration files:</para>
<screen><prompt>#</prompt> <userinput>chown -R swift:swift /etc/swift</userinput></screen>
</step>
<step>
<para>Create the swift recon cache directory and set its
permissions:</para>
<screen><prompt>#</prompt> <userinput>mkdir -p /var/swift/recon</userinput>
<prompt>#</prompt> <userinput>chown -R swift:swift /var/swift/recon</userinput></screen>
</step>
</procedure>
</section>