openstack-manuals/doc/install-guide/object-storage/section_object-storage-install-config-storage-nodes.xml
Gauvain Pocentek 5427452057 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
2014-02-02 10:41:08 +01:00

143 lines
6.7 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<section xml:id="installing-and-configuring-storage-nodes"
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">
<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/havana/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"><prompt>#</prompt> <userinput>apt-get install 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>
<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 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 = <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>
<programlisting language="ini" os="opensuse;sles">uid = openstack-swift
gid = openstack-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 = false</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>Create the swift recon cache directory and set its
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>
<prompt>#</prompt> <userinput>chown -R openstack-swift:openstack-swift /var/swift/recon</userinput></screen>
</step>
</procedure>
</section>