a2d662d600
The XML root element of Docbook XML files should match the following format: <ELEMENT 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="THE_XML_ID_OF_THE_ELEMENT"> Change-Id: I1e0804e2c5021bd78b77483f3156c5b069453555
118 lines
5.7 KiB
XML
118 lines
5.7 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>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>
|