openstack-manuals/doc/install-guide/object-storage/section_object-storage-install.xml
Matthew Kassawara ea823a4f4a Update basic environment content for Juno
I updated basic environment content in the installation guide
for Juno as follows:

1) Restructured and clarified OpenStack package procedures.
2) Removed RHEL/CentOS 6.5 special cases and workarounds.
3) Changed RHEL/CentOS to use systemd.
4) Improved SLES/openSUSE sysv/systemd steps.
5) Clarified firewall/security content.
6) Indicated that rebooting is necessary to activate network
   changes on Ubuntu and Debian.
7) Removed Python MySQL library from non-controller nodes
   because the services running on them no longer directly
   interact with the database. I'm looking at you,
   nova-network.
8) Other minor fixes.

Change-Id: If95e6b42e596f55c6a66f2d9ab456b335d3098ca
Implements: blueprint installation-guide-improvements
Closes-Bug: #1373821
2014-10-03 08:58:03 -05:00

128 lines
7.1 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-openstack-object-storage">
<title>Install Object Storage</title>
<para>Though you can install OpenStack Object Storage for development or
testing purposes on one server, a multiple-server installation enables
the high availability and redundancy you want in a production
distributed object storage system.</para>
<para>To perform a single-node installation for development purposes from
source code, use the Swift All In One instructions (Ubuntu) or DevStack
(multiple distros). See <link
xlink:href="http://swift.openstack.org/development_saio.html"
>http://swift.openstack.org/development_saio.html</link> for manual
instructions or <link xlink:href="http://devstack.org"
>http://devstack.org</link> for all-in-one including authentication
with the Identity Service (keystone) v2.0 API.</para>
<section xml:id="before-you-begin-swift-install">
<title>Before you begin</title>
<para>Have a copy of the operating system installation media available
if you are installing on a new server.</para>
<para>These steps assume you have set up repositories for packages for
your operating system as shown in
<link linkend="basics-packages"/>.</para>
<para>This document demonstrates how to install a cluster by using the
following types of nodes:</para>
<itemizedlist>
<listitem>
<para>One proxy node which runs the
<systemitem class="service">swift-proxy-server</systemitem>
processes. The proxy server proxies requests to the
appropriate storage nodes.</para>
</listitem>
<listitem>
<para>
Five storage nodes that run the <systemitem
class="service">swift-account-server</systemitem>,
<systemitem
class="service">swift-container-server</systemitem>,
and <systemitem
class="service">swift-object-server</systemitem>
processes which control storage of the account
databases, the container databases, as well as the
actual stored objects.</para>
</listitem>
</itemizedlist>
<note>
<para>Fewer storage nodes can be used initially, but a minimum of
five is recommended for a production cluster.</para>
</note>
</section>
<section xml:id="general-installation-steps-swift">
<title>General installation steps</title>
<procedure>
<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. 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>
<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>
</step>
<step>
<para>Create a service entry for the Object Storage
Service:</para>
<screen><prompt>$</prompt> <userinput>keystone service-create --name swift --type object-store \
--description "OpenStack Object Storage"</userinput>
<computeroutput>+-------------+----------------------------------+
| Property | Value |
+-------------+----------------------------------+
| description | OpenStack Object Storage |
| id | eede9296683e4b5ebfa13f5166375ef6 |
| name | swift |
| type | object-store |
+-------------+----------------------------------+</computeroutput></screen>
<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>
<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' \
--internalurl 'http://<replaceable>controller</replaceable>:8080/v1/AUTH_%(tenant_id)s' \
--adminurl http://<replaceable>controller</replaceable>:8080</userinput>
<computeroutput>+-------------+---------------------------------------------------+
| Property | Value |
+-------------+---------------------------------------------------+
| adminurl | http://controller:8080/ |
| id | 9e3ce428f82b40d38922f242c095982e |
| internalurl | http://controller:8080/v1/AUTH_%(tenant_id)s |
| publicurl | http://controller:8080/v1/AUTH_%(tenant_id)s |
| region | regionOne |
| service_id | eede9296683e4b5ebfa13f5166375ef6 |
+-------------+---------------------------------------------------+</computeroutput></screen>
</step>
<step>
<para>Create the configuration directory on all nodes:</para>
<screen><prompt>#</prompt> <userinput>mkdir -p /etc/swift</userinput></screen>
</step>
<step>
<para>Create <filename>/etc/swift/swift.conf</filename> on all
nodes:</para>
<programlisting language="ini"><xi:include parse="text" href="../samples/swift.conf.txt"/></programlisting>
</step>
</procedure>
<note>
<para>The prefix and suffix value in <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 must
be the same on every node in the cluster!</para>
</note>
<para>Next, set up your storage nodes and proxy node. This example uses
the Identity Service for the common authentication piece.</para>
</section>
</section>