5759cac6d9
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
135 lines
6.6 KiB
XML
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" >> /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>
|