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
This commit is contained in:
parent
0c1e957fa9
commit
5427452057
@ -40,7 +40,9 @@
|
|||||||
periodic processes include auditors, updaters, and
|
periodic processes include auditors, updaters, and
|
||||||
reapers.</para>
|
reapers.</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</itemizedlist>
|
<listitem>
|
||||||
<para>Configurable WSGI middleware that handles authentication.
|
<para>Configurable WSGI middleware that handles authentication.
|
||||||
Usually the Identity Service.</para>
|
Usually the Identity Service.</para>
|
||||||
|
</listitem>
|
||||||
|
</itemizedlist>
|
||||||
</section>
|
</section>
|
||||||
|
@ -8,69 +8,57 @@
|
|||||||
for the account, container, or object and routes the requests
|
for the account, container, or object and routes the requests
|
||||||
correctly. The proxy server also handles API requests. You
|
correctly. The proxy server also handles API requests. You
|
||||||
enable account management by configuring it in the
|
enable account management by configuring it in the
|
||||||
<filename>proxy-server.conf</filename> file.</para>
|
<filename>/etc/swift/proxy-server.conf</filename> file.</para>
|
||||||
<note>
|
<note>
|
||||||
<para>The Object Storage processes run under a separate user
|
<para>The Object Storage processes run under a separate user
|
||||||
and group, set by configuration options, and referred to as <phrase
|
and group, set by configuration options, and referred to as
|
||||||
os="ubuntu;debian;rhel;centos;fedora"
|
<literal> <phrase os="ubuntu;debian;rhel;centos;fedora"
|
||||||
>swift:swift</phrase><phrase os="opensuse;sles"
|
>swift:swift</phrase><phrase os="opensuse;sles"
|
||||||
>openstack-swift:openstack-swift</phrase>. The default
|
>openstack-swift:openstack-swift</phrase></literal>. The default
|
||||||
user is <phrase os="ubuntu;debian;rhel;centos;fedora"
|
user is <literal><phrase os="ubuntu;debian;rhel;centos;fedora"
|
||||||
>swift, which may not exist on your
|
>swift</phrase><phrase os="opensuse;sles"
|
||||||
system.</phrase><phrase os="opensuse;sles"
|
>openstack-swift</phrase></literal>.</para>
|
||||||
>openstack-swift.</phrase></para>
|
|
||||||
</note>
|
</note>
|
||||||
<procedure>
|
<procedure>
|
||||||
<step>
|
<step>
|
||||||
<para>Install swift-proxy service:</para>
|
<para>Install swift-proxy service:</para>
|
||||||
<screen os="ubuntu"><prompt>#</prompt> <userinput>apt-get install swift-proxy memcached python-keystoneclient python-swiftclient python-webob</userinput></screen>
|
<screen os="ubuntu"><prompt>#</prompt> <userinput>apt-get install swift-proxy memcached python-keystoneclient python-swiftclient python-webob</userinput></screen>
|
||||||
<screen os="rhel;centos;fedora"><prompt>#</prompt> <userinput>yum install openstack-swift-proxy memcached openstack-utils python-swiftclient python-keystone-auth-token</userinput></screen>
|
<screen os="rhel;centos;fedora"><prompt>#</prompt> <userinput>yum install openstack-swift-proxy memcached python-swiftclient python-keystone-auth-token</userinput></screen>
|
||||||
<screen os="opensuse;sles"><prompt>#</prompt> <userinput>zypper install openstack-swift-proxy memcached openstack-utils python-swiftclient python-keystoneclient</userinput></screen>
|
<screen os="opensuse;sles"><prompt>#</prompt> <userinput>zypper install openstack-swift-proxy memcached python-swiftclient python-keystoneclient python-xml</userinput></screen>
|
||||||
</step>
|
</step>
|
||||||
<step>
|
<step os="ubuntu;debian">
|
||||||
<para>Create self-signed cert for SSL:</para>
|
<para>Modify memcached to listen on the default interface
|
||||||
<screen><prompt>#</prompt> <userinput>cd /etc/swift</userinput>
|
|
||||||
<prompt>#</prompt> <userinput>openssl req -new -x509 -nodes -out cert.crt -keyout cert.key</userinput></screen>
|
|
||||||
</step>
|
|
||||||
<step>
|
|
||||||
<para>Modify memcached to listen on the default interfaces
|
|
||||||
on a local, non-public network. Edit this line in
|
on a local, non-public network. Edit this line in
|
||||||
the <filename>/etc/memcached.conf</filename> file:</para>
|
the <filename>/etc/memcached.conf</filename> file:</para>
|
||||||
<literallayout class="monospaced">-l 127.0.0.1</literallayout>
|
<programlisting>-l 127.0.0.1</programlisting>
|
||||||
<para>Change it to:</para>
|
<para>Change it to:</para>
|
||||||
<literallayout class="monospaced">-l <PROXY_LOCAL_NET_IP></literallayout>
|
<programlisting>-l <replaceable>PROXY_LOCAL_NET_IP</replaceable></programlisting>
|
||||||
</step>
|
</step>
|
||||||
<step>
|
<step os="rhel;centos;fedora;opensuse;sles">
|
||||||
<para>Restart the memcached server:</para>
|
<para>Modify memcached to listen on the default interface
|
||||||
|
on a local, non-public network. Edit
|
||||||
|
the <filename>/etc/sysconfig/memcached</filename> file:</para>
|
||||||
|
<programlisting os="rhel;centos;fedora">OPTIONS="-l <replaceable>PROXY_LOCAL_NET_IP</replaceable>"</programlisting>
|
||||||
|
<programlisting os="opensuse;sles">MEMCACHED_PARAMS="-l <replaceable>PROXY_LOCAL_NET_IP</replaceable>"</programlisting>
|
||||||
|
</step>
|
||||||
|
<step os="ubuntu;debian">
|
||||||
|
<para>Restart the memcached service:</para>
|
||||||
<screen><prompt>#</prompt> <userinput>service memcached restart</userinput></screen>
|
<screen><prompt>#</prompt> <userinput>service memcached restart</userinput></screen>
|
||||||
</step>
|
</step>
|
||||||
<step os="rhel;centos;fedora">
|
<step os="rhel;centos;fedora;opensuse;sles">
|
||||||
<para>RHEL/CentOS/Fedora only: To set up Object Storage to
|
<para>Start the memcached service and configure it to start when
|
||||||
authenticate tokens, set the Identity Service Admin
|
the system boots:</para>
|
||||||
token in the swift proxy file with the
|
<screen><prompt>#</prompt> <userinput>service memcached start</userinput>
|
||||||
<command>openstack-config</command> command.</para>
|
<prompt>#</prompt> <userinput>chkconfig memcached on</userinput></screen>
|
||||||
<screen><prompt>#</prompt> <userinput>openstack-config --set /etc/swift/proxy-server.conf \
|
|
||||||
filter:authtoken admin_token $ADMIN_TOKEN</userinput>
|
|
||||||
<prompt>#</prompt> sudo <userinput>openstack-config --set /etc/swift/proxy-server.conf \
|
|
||||||
filter:authtoken auth_token $ADMIN_TOKEN</userinput></screen>
|
|
||||||
</step>
|
|
||||||
<step os="ubuntu">
|
|
||||||
<para>Ubuntu only: Because the distribution packages do
|
|
||||||
not include a copy of the keystoneauth middleware,
|
|
||||||
ensure that the proxy server includes
|
|
||||||
them:</para>
|
|
||||||
<screen><prompt>$</prompt> <userinput>git clone https://github.com/openstack/swift.git</userinput>
|
|
||||||
<prompt>$</prompt> <userinput>cd swift</userinput>
|
|
||||||
<prompt>$</prompt> <userinput>python setup.py install</userinput>
|
|
||||||
<prompt>$</prompt> <userinput>swift-init proxy start</userinput></screen>
|
|
||||||
</step>
|
</step>
|
||||||
<step>
|
<step>
|
||||||
<para>Create
|
<para><phrase os="ubuntu;debian">Create</phrase>
|
||||||
|
<phrase os="rhel;centos;fedora;opensuse;sles">Edit</phrase>
|
||||||
<filename>/etc/swift/proxy-server.conf</filename>:</para>
|
<filename>/etc/swift/proxy-server.conf</filename>:</para>
|
||||||
<programlisting language="ini">[DEFAULT]
|
<programlisting language="ini">[DEFAULT]
|
||||||
bind_port = 8080
|
bind_port = 8080
|
||||||
<phrase os="rhel;centos;fedora;ubuntu;debian">user = swift</phrase>
|
<phrase os="rhel;centos;fedora;ubuntu;debian">user = swift</phrase><phrase
|
||||||
<phrase os="opensuse;sles">user = openstack-swift</phrase>
|
os="opensuse;sles">user = openstack-swift</phrase>
|
||||||
|
|
||||||
[pipeline:main]
|
[pipeline:main]
|
||||||
pipeline = healthcheck cache authtoken keystoneauth proxy-server
|
pipeline = healthcheck cache authtoken keystoneauth proxy-server
|
||||||
@ -99,13 +87,10 @@ auth_protocol = http
|
|||||||
auth_host = <replaceable>controller</replaceable>
|
auth_host = <replaceable>controller</replaceable>
|
||||||
auth_port = 35357
|
auth_port = 35357
|
||||||
|
|
||||||
# the same admin_token as provided in keystone.conf
|
# the service tenant and swift username and password created in Keystone
|
||||||
admin_token = ADMIN_TOKEN
|
|
||||||
|
|
||||||
# the service tenant and swift userid and password created in Keystone
|
|
||||||
admin_tenant_name = service
|
admin_tenant_name = service
|
||||||
admin_user = swift
|
admin_user = swift
|
||||||
admin_password = SWIFT_PASS
|
admin_password = <replaceable>SWIFT_PASS</replaceable>
|
||||||
|
|
||||||
[filter:cache]
|
[filter:cache]
|
||||||
use = egg:swift#memcache
|
use = egg:swift#memcache
|
||||||
@ -120,20 +105,11 @@ use = egg:swift#healthcheck
|
|||||||
<para>If you run multiple memcache servers, put the
|
<para>If you run multiple memcache servers, put the
|
||||||
multiple IP:port listings in the [filter:cache]
|
multiple IP:port listings in the [filter:cache]
|
||||||
section of the
|
section of the
|
||||||
<filename>proxy-server.conf</filename> file:</para>
|
<filename>/etc/swift/proxy-server.conf</filename> file:</para>
|
||||||
<literallayout class="monospaced">10.1.2.3:11211,10.1.2.4:11211</literallayout>
|
<literallayout class="monospaced">10.1.2.3:11211,10.1.2.4:11211</literallayout>
|
||||||
<para>Only the proxy server uses memcache.</para>
|
<para>Only the proxy server uses memcache.</para>
|
||||||
</note>
|
</note>
|
||||||
</step>
|
</step>
|
||||||
<step>
|
|
||||||
<para>Create the <parameter class="option"
|
|
||||||
>signing_dir</parameter> and set its permissions
|
|
||||||
accordingly.</para>
|
|
||||||
<screen os="ubuntu;debian;rhel;centos;fedora"><prompt>#</prompt> <userinput>mkdir -p /home/swift/keystone-signing</userinput>
|
|
||||||
<prompt>#</prompt> <userinput>chown -R swift:swift /home/swift/keystone-signing</userinput></screen>
|
|
||||||
<screen os="opensuse;sles"><prompt>#</prompt> <userinput>mkdir -p /home/swift/keystone-signing</userinput>
|
|
||||||
<prompt>#</prompt> <userinput>chown -R openstack-swift:openstack-swift /home/swift/keystone-signing</userinput></screen>
|
|
||||||
</step>
|
|
||||||
<step>
|
<step>
|
||||||
<para>Create the account, container, and object rings. The
|
<para>Create the account, container, and object rings. The
|
||||||
builder command creates a builder file
|
builder command creates a builder file
|
||||||
@ -153,21 +129,21 @@ use = egg:swift#healthcheck
|
|||||||
<step>
|
<step>
|
||||||
<para>For every storage device on each node add entries to
|
<para>For every storage device on each node add entries to
|
||||||
each ring:</para>
|
each ring:</para>
|
||||||
<screen><prompt>#</prompt> <userinput>swift-ring-builder account.builder add z<ZONE>-<STORAGE_LOCAL_NET_IP>:6002[R<STORAGE_REPLICATION_NET_IP>:6005]/<DEVICE> 100</userinput>
|
<screen><prompt>#</prompt> <userinput>swift-ring-builder account.builder add z<replaceable>ZONE</replaceable>-<replaceable>STORAGE_LOCAL_NET_IP</replaceable>:6002[R<replaceable>STORAGE_REPLICATION_NET_IP</replaceable>:6005]/<replaceable>DEVICE</replaceable> 100</userinput>
|
||||||
<prompt>#</prompt> <userinput>swift-ring-builder container.builder add z<ZONE>-<STORAGE_LOCAL_NET_IP_1>:6001[R<STORAGE_REPLICATION_NET_IP>:6004]/<DEVICE> 100</userinput>
|
<prompt>#</prompt> <userinput>swift-ring-builder container.builder add z<replaceable>ZONE</replaceable>-<replaceable>STORAGE_LOCAL_NET_IP_1</replaceable>:6001[R<replaceable>STORAGE_REPLICATION_NET_IP</replaceable>:6004]/<replaceable>DEVICE</replaceable> 100</userinput>
|
||||||
<prompt>#</prompt> <userinput>swift-ring-builder object.builder add z<ZONE>-<STORAGE_LOCAL_NET_IP_1>:6000[R<STORAGE_REPLICATION_NET_IP>:6003]/<DEVICE> 100</userinput></screen>
|
<prompt>#</prompt> <userinput>swift-ring-builder object.builder add z<replaceable>ZONE</replaceable>-<replaceable>STORAGE_LOCAL_NET_IP_1</replaceable>:6000[R<replaceable>STORAGE_REPLICATION_NET_IP</replaceable>:6003]/<replaceable>DEVICE</replaceable> 100</userinput></screen>
|
||||||
<note>
|
<note>
|
||||||
<para>You must omit the optional <parameter>STORAGE_REPLICATION_NET_IP</parameter> parameter if you
|
<para>You must omit the optional <parameter>STORAGE_REPLICATION_NET_IP</parameter> parameter if you
|
||||||
do not want to use dedicated network for
|
do not want to use dedicated network for
|
||||||
replication.</para>
|
replication.</para>
|
||||||
</note>
|
</note>
|
||||||
<para>For example, if a storage node
|
<para>For example, if a storage node
|
||||||
has a partition in Zone 1 on IP 10.0.0.1, the storage
|
has a partition in Zone 1 on IP 10.0.0.1, the storage node has
|
||||||
node has address 10.0.1.1 from replication network.
|
address 10.0.1.1 from replication network. The mount point of
|
||||||
The mount point of this partition is /srv/node/sdb1,
|
this partition is <filename>/srv/node/sdb1</filename>, and the
|
||||||
and the path in <filename>rsyncd.conf</filename> is
|
path in <filename>/etc/rsyncd.conf</filename> is
|
||||||
/srv/node/, the DEVICE would be sdb1 and the commands
|
<filename>/srv/node/</filename>, the DEVICE would be sdb1 and
|
||||||
are:</para>
|
the commands are:</para>
|
||||||
<screen><prompt>#</prompt> <userinput>swift-ring-builder account.builder add z1-10.0.0.1:6002R10.0.1.1:6005/sdb1 100</userinput>
|
<screen><prompt>#</prompt> <userinput>swift-ring-builder account.builder add z1-10.0.0.1:6002R10.0.1.1:6005/sdb1 100</userinput>
|
||||||
<prompt>#</prompt> <userinput>swift-ring-builder container.builder add z1-10.0.0.1:6001R10.0.1.1:6005/sdb1 100</userinput>
|
<prompt>#</prompt> <userinput>swift-ring-builder container.builder add z1-10.0.0.1:6001R10.0.1.1:6005/sdb1 100</userinput>
|
||||||
<prompt>#</prompt> <userinput>swift-ring-builder object.builder add z1-10.0.0.1:6000R10.0.1.1:6005/sdb1 100</userinput></screen>
|
<prompt>#</prompt> <userinput>swift-ring-builder object.builder add z1-10.0.0.1:6000R10.0.1.1:6005/sdb1 100</userinput></screen>
|
||||||
@ -196,16 +172,22 @@ use = egg:swift#healthcheck
|
|||||||
<para>Copy the <filename>account.ring.gz</filename>,
|
<para>Copy the <filename>account.ring.gz</filename>,
|
||||||
<filename>container.ring.gz</filename>, and
|
<filename>container.ring.gz</filename>, and
|
||||||
<filename>object.ring.gz</filename> files to each
|
<filename>object.ring.gz</filename> files to each
|
||||||
of the Proxy and Storage nodes in /etc/swift.</para>
|
of the Proxy and Storage nodes in <filename>/etc/swift</filename>.</para>
|
||||||
</step>
|
</step>
|
||||||
<step>
|
<step>
|
||||||
<para>Make sure the swift user owns all configuration files:</para>
|
<para>Make sure the swift user owns all configuration files:</para>
|
||||||
<screen os="ubuntu;debian;rhel;centos;fedora"><prompt>#</prompt> <userinput>chown -R swift:swift /etc/swift</userinput></screen>
|
<screen os="ubuntu;debian;rhel;centos;fedora"><prompt>#</prompt> <userinput>chown -R swift:swift /etc/swift</userinput></screen>
|
||||||
<screen os="opensuse;sles"><prompt>#</prompt> <userinput>chown -R openstack-swift:openstack-swift /etc/swift</userinput></screen>
|
<screen os="opensuse;sles"><prompt>#</prompt> <userinput>chown -R openstack-swift:openstack-swift /etc/swift</userinput></screen>
|
||||||
</step>
|
</step>
|
||||||
<step>
|
<step os="ubuntu;debian">
|
||||||
<para>Start Proxy services:</para>
|
<para>Restart the Proxy service:</para>
|
||||||
<screen><prompt>#</prompt> <userinput>service proxy-server start</userinput></screen>
|
<screen><prompt>#</prompt> <userinput>service proxy-server restart</userinput></screen>
|
||||||
|
</step>
|
||||||
|
<step os="rhel;centos;fedora;sles;opensuse">
|
||||||
|
<para>Start the Proxy service and configure it to start when the
|
||||||
|
system boots:</para>
|
||||||
|
<screen><prompt>#</prompt> <userinput>service openstack-swift-proxy start</userinput>
|
||||||
|
<prompt>#</prompt> <userinput>chkconfig openstack-swift-proxy on</userinput></screen>
|
||||||
</step>
|
</step>
|
||||||
</procedure>
|
</procedure>
|
||||||
</section>
|
</section>
|
||||||
|
@ -23,7 +23,7 @@
|
|||||||
<screen os="rhel;centos;fedora"><prompt>#</prompt> <userinput>yum install openstack-swift-account openstack-swift-container \
|
<screen os="rhel;centos;fedora"><prompt>#</prompt> <userinput>yum install openstack-swift-account openstack-swift-container \
|
||||||
openstack-swift-object xfsprogs xinetd</userinput></screen>
|
openstack-swift-object xfsprogs xinetd</userinput></screen>
|
||||||
<screen os="opensuse;sles"><prompt>#</prompt> <userinput>zypper install openstack-swift-account openstack-swift-container \
|
<screen os="opensuse;sles"><prompt>#</prompt> <userinput>zypper install openstack-swift-account openstack-swift-container \
|
||||||
openstack-swift-object xfsprogs xinetd</userinput></screen></para>
|
openstack-swift-object python-xml xfsprogs xinetd</userinput></screen></para>
|
||||||
</step>
|
</step>
|
||||||
<step>
|
<step>
|
||||||
<para>For each device on the node that you want to use for
|
<para>For each device on the node that you want to use for
|
||||||
@ -35,26 +35,24 @@
|
|||||||
touched in this step. The other 10 or 11 disks should
|
touched in this step. The other 10 or 11 disks should
|
||||||
be partitioned with a single partition, then formatted
|
be partitioned with a single partition, then formatted
|
||||||
in XFS.</para>
|
in XFS.</para>
|
||||||
<screen os="ubuntu;debian;rhel;centos;fedora"><prompt>#</prompt> <userinput>fdisk /dev/sdb</userinput>
|
<screen><prompt>#</prompt> <userinput>fdisk /dev/sdb</userinput>
|
||||||
<prompt>#</prompt> <userinput>mkfs.xfs /dev/sdb1</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>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>mkdir -p /srv/node/sdb1</userinput>
|
||||||
<prompt>#</prompt> <userinput>mount /srv/node/sdb1</userinput>
|
<prompt>#</prompt> <userinput>mount /srv/node/sdb1</userinput>
|
||||||
<prompt>#</prompt> <userinput>chown -R swift:swift /srv/node</userinput></screen>
|
<phrase os="ubuntu;debian;rhel;centos;fedora"><prompt>#</prompt> <userinput>chown -R swift:swift /srv/node</userinput></phrase>
|
||||||
<screen os="opensuse;sles"><prompt>#</prompt> <userinput>fdisk /dev/sdb</userinput>
|
<phrase os="opensuse;sles"><prompt>#</prompt> <userinput>chown -R openstack-swift:openstack-swift /srv/node</userinput></phrase></screen>
|
||||||
<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 openstack-swift:openstack-swift /srv/node</userinput></screen>
|
|
||||||
</step>
|
</step>
|
||||||
<step>
|
<step>
|
||||||
<para>Create <filename>/etc/rsyncd.conf</filename>:</para>
|
<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
|
<programlisting language="ini" os="ubuntu;debian;rhel;centos;fedora">uid = swift
|
||||||
gid = swift
|
gid = swift
|
||||||
log file = /var/log/rsyncd.log
|
log file = /var/log/rsyncd.log
|
||||||
pid file = /var/run/rsyncd.pid
|
pid file = /var/run/rsyncd.pid
|
||||||
address = <STORAGE_LOCAL_NET_IP>
|
address = <replaceable>STORAGE_LOCAL_NET_IP</replaceable>
|
||||||
|
|
||||||
[account]
|
[account]
|
||||||
max connections = 2
|
max connections = 2
|
||||||
@ -77,7 +75,7 @@ lock file = /var/lock/object.lock</programlisting>
|
|||||||
gid = openstack-swift
|
gid = openstack-swift
|
||||||
log file = /var/log/rsyncd.log
|
log file = /var/log/rsyncd.log
|
||||||
pid file = /var/run/rsyncd.pid
|
pid file = /var/run/rsyncd.pid
|
||||||
address = <STORAGE_LOCAL_NET_IP>
|
address = <replaceable>STORAGE_LOCAL_NET_IP</replaceable>
|
||||||
|
|
||||||
[account]
|
[account]
|
||||||
max connections = 2
|
max connections = 2
|
||||||
@ -103,7 +101,7 @@ lock file = /var/lock/object.lock</programlisting>
|
|||||||
<literal>STORAGE_REPLICATION_NET_IP</literal>
|
<literal>STORAGE_REPLICATION_NET_IP</literal>
|
||||||
instead of
|
instead of
|
||||||
<literal>STORAGE_LOCAL_NET_IP</literal>:</para>
|
<literal>STORAGE_LOCAL_NET_IP</literal>:</para>
|
||||||
<programlisting language="ini">address = <STORAGE_REPLICATION_NET_IP></programlisting>
|
<programlisting language="ini">address = <replaceable>STORAGE_REPLICATION_NET_IP</replaceable></programlisting>
|
||||||
</step>
|
</step>
|
||||||
<step os="ubuntu;debian">
|
<step os="ubuntu;debian">
|
||||||
<para>Edit the following line in
|
<para>Edit the following line in
|
||||||
@ -119,9 +117,14 @@ lock file = /var/lock/object.lock</programlisting>
|
|||||||
<para os="ubuntu;debian">Start the <systemitem
|
<para os="ubuntu;debian">Start the <systemitem
|
||||||
class="service">rsync</systemitem> service:</para>
|
class="service">rsync</systemitem> service:</para>
|
||||||
<screen os="ubuntu;debian"><prompt>#</prompt> <userinput>service rsync start</userinput></screen>
|
<screen os="ubuntu;debian"><prompt>#</prompt> <userinput>service rsync start</userinput></screen>
|
||||||
<para os="rhel;centos;fedora;sles;opensuse">Start the <systemitem
|
<para os="rhel;centos;fedora">Start the <systemitem
|
||||||
class="service">xinetd</systemitem> service:</para>
|
class="service">xinetd</systemitem> service:</para>
|
||||||
<screen os="rhel;centos;fedora;sles;opensuse"><prompt>#</prompt> <userinput>service xinetd start</userinput></screen>
|
<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>
|
<note>
|
||||||
<para>The rsync service requires no authentication, so
|
<para>The rsync service requires no authentication, so
|
||||||
run it on a local, private network.</para>
|
run it on a local, private network.</para>
|
||||||
@ -129,7 +132,7 @@ lock file = /var/lock/object.lock</programlisting>
|
|||||||
</step>
|
</step>
|
||||||
<step>
|
<step>
|
||||||
<para>Create the swift recon cache directory and set its
|
<para>Create the swift recon cache directory and set its
|
||||||
permissions.</para>
|
permissions:</para>
|
||||||
<screen os="ubuntu;debian;rhel;centos;fedora"><prompt>#</prompt> <userinput>mkdir -p /var/swift/recon</userinput>
|
<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>
|
<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>
|
<screen os="opensuse;sles"><prompt>#</prompt> <userinput>mkdir -p /var/swift/recon</userinput>
|
||||||
|
@ -53,25 +53,13 @@
|
|||||||
<section xml:id="general-installation-steps-swift">
|
<section xml:id="general-installation-steps-swift">
|
||||||
<title>General installation steps</title>
|
<title>General installation steps</title>
|
||||||
<procedure>
|
<procedure>
|
||||||
<step>
|
|
||||||
<para>Install core Swift files and openSSH.</para>
|
|
||||||
<screen os="ubuntu"><prompt>#</prompt> <userinput>apt-get install swift openssh-server rsync memcached python-netifaces \
|
|
||||||
python-xattr python-memcache</userinput></screen>
|
|
||||||
<screen os="rhel;centos;fedora"><prompt>#</prompt> <userinput>yum install openstack-swift openstack-swift-proxy \
|
|
||||||
openstack-swift-account openstack-swift-container \
|
|
||||||
openstack-swift-object memcached</userinput></screen>
|
|
||||||
<screen os="opensuse;sles"><prompt>#</prompt> <userinput>zypper install openstack-swift openstack-swift-proxy \
|
|
||||||
openstack-swift-account openstack-swift-container \
|
|
||||||
openstack-swift-object memcached</userinput></screen>
|
|
||||||
</step>
|
|
||||||
<step os="rhel;centos;fedora;opensuse;sles;ubuntu">
|
<step os="rhel;centos;fedora;opensuse;sles;ubuntu">
|
||||||
<para>Create a <literal>swift</literal> user that the Object
|
<para>Create a <literal>swift</literal> user that the Object
|
||||||
Storage
|
Storage Service can use to authenticate with the Identity Service.
|
||||||
Service can use to authenticate with the Identity Service.
|
|
||||||
Choose a password and specify an email address for the
|
Choose a password and specify an email address for the
|
||||||
<literal>swift</literal> user. Use the
|
<literal>swift</literal> user. Use the
|
||||||
<literal>service</literal> tenant and give the user the
|
<literal>service</literal> tenant and give the user the
|
||||||
<literal>admin</literal> role.</para>
|
<literal>admin</literal> role:</para>
|
||||||
<screen><prompt>#</prompt> <userinput>keystone user-create --name=swift --pass=<replaceable>SWIFT_PASS</replaceable> \
|
<screen><prompt>#</prompt> <userinput>keystone user-create --name=swift --pass=<replaceable>SWIFT_PASS</replaceable> \
|
||||||
--email=<replaceable>swift@example.com</replaceable></userinput>
|
--email=<replaceable>swift@example.com</replaceable></userinput>
|
||||||
<prompt>#</prompt> <userinput>keystone user-role-add --user=swift --tenant=service --role=admin</userinput></screen>
|
<prompt>#</prompt> <userinput>keystone user-role-add --user=swift --tenant=service --role=admin</userinput></screen>
|
||||||
@ -88,15 +76,15 @@
|
|||||||
| name | swift |
|
| name | swift |
|
||||||
| type | object-store |
|
| type | object-store |
|
||||||
+-------------+----------------------------------+</computeroutput></screen>
|
+-------------+----------------------------------+</computeroutput></screen>
|
||||||
<para>The service ID is randomly generated and is different from
|
<note><para>The service ID is randomly generated and is different from
|
||||||
the one shown here.</para>
|
the one shown here.</para></note>
|
||||||
</step>
|
</step>
|
||||||
<step>
|
<step>
|
||||||
<para>Specify an API endpoint for the Object Storage Service by using
|
<para>Specify an API endpoint for the Object Storage Service by using
|
||||||
the returned service ID. When you specify an endpoint, you
|
the returned service ID. When you specify an endpoint, you
|
||||||
provide URLs for the public API, internal API, and admin API.
|
provide URLs for the public API, internal API, and admin API.
|
||||||
In this guide, the <literal>controller</literal> host name is
|
In this guide, the <literal>controller</literal> host name is
|
||||||
used.</para>
|
used:</para>
|
||||||
<screen><prompt>#</prompt> <userinput>keystone endpoint-create \
|
<screen><prompt>#</prompt> <userinput>keystone endpoint-create \
|
||||||
--service-id=$(keystone service-list | awk '/ object-store / {print $2}') \
|
--service-id=$(keystone service-list | awk '/ object-store / {print $2}') \
|
||||||
--publicurl='http://<replaceable>controller</replaceable>:8080/v1/AUTH_%(tenant_id)s' \
|
--publicurl='http://<replaceable>controller</replaceable>:8080/v1/AUTH_%(tenant_id)s' \
|
||||||
@ -114,12 +102,9 @@
|
|||||||
+-------------+---------------------------------------------------+</computeroutput></screen>
|
+-------------+---------------------------------------------------+</computeroutput></screen>
|
||||||
</step>
|
</step>
|
||||||
<step>
|
<step>
|
||||||
<para>Create and populate configuration directories on
|
<para>Create the configuration directory on
|
||||||
all nodes:</para>
|
all nodes:</para>
|
||||||
<screen os="ubuntu;debian;rhel;centos;fedora"><prompt>#</prompt> <userinput>mkdir -p /etc/swift</userinput>
|
<screen><prompt>#</prompt> <userinput>mkdir -p /etc/swift</userinput></screen>
|
||||||
<prompt>#</prompt> <userinput>chown -R swift:swift /etc/swift/</userinput></screen>
|
|
||||||
<screen os="opensuse;sles"><prompt>#</prompt> <userinput>mkdir -p /etc/swift</userinput>
|
|
||||||
<prompt>#</prompt> <userinput>chown -R openstack-swift:openstack-swift /etc/swift/</userinput></screen>
|
|
||||||
</step>
|
</step>
|
||||||
<step>
|
<step>
|
||||||
<para>Create
|
<para>Create
|
||||||
@ -133,7 +118,7 @@
|
|||||||
<filename>/etc/swift/swift.conf</filename> should
|
<filename>/etc/swift/swift.conf</filename> should
|
||||||
be set to some random string of text to be used as a
|
be set to some random string of text to be used as a
|
||||||
salt when hashing to determine mappings in the ring.
|
salt when hashing to determine mappings in the ring.
|
||||||
This file should be the same on every node in the
|
This file must be the same on every node in the
|
||||||
cluster!</para>
|
cluster!</para>
|
||||||
</note>
|
</note>
|
||||||
<para>Next, set up your storage nodes and proxy node. This
|
<para>Next, set up your storage nodes and proxy node. This
|
||||||
|
@ -36,7 +36,7 @@
|
|||||||
<literallayout class="monospaced">10.1.2.3:11211,10.1.2.4:11211</literallayout>
|
<literallayout class="monospaced">10.1.2.3:11211,10.1.2.4:11211</literallayout>
|
||||||
<literallayout class="monospaced">[filter:cache]
|
<literallayout class="monospaced">[filter:cache]
|
||||||
use = egg:swift#memcache
|
use = egg:swift#memcache
|
||||||
memcache_servers = <PROXY_LOCAL_NET_IP>:11211</literallayout>
|
memcache_servers = <replaceable>PROXY_LOCAL_NET_IP</replaceable>:11211</literallayout>
|
||||||
</step>
|
</step>
|
||||||
<step>
|
<step>
|
||||||
<para>Copy ring information to all
|
<para>Copy ring information to all
|
||||||
|
@ -86,7 +86,7 @@
|
|||||||
<para><emphasis role="bold">Operating system</emphasis>: OpenStack
|
<para><emphasis role="bold">Operating system</emphasis>: OpenStack
|
||||||
Object Storage currently runs on Ubuntu, RHEL, CentOS, Fedora,
|
Object Storage currently runs on Ubuntu, RHEL, CentOS, Fedora,
|
||||||
openSUSE, or SLES.</para>
|
openSUSE, or SLES.</para>
|
||||||
<para><emphasis role="bold">Networking</emphasis>: 1Gpbs or 10
|
<para><emphasis role="bold">Networking</emphasis>: 1 Gbps or 10
|
||||||
Gbps is suggested internally. For OpenStack Object Storage, an
|
Gbps is suggested internally. For OpenStack Object Storage, an
|
||||||
external network should connect the outside world to the proxy
|
external network should connect the outside world to the proxy
|
||||||
servers, and the storage network is intended to be isolated on
|
servers, and the storage network is intended to be isolated on
|
||||||
|
@ -7,41 +7,21 @@
|
|||||||
<title>Start services on the storage nodes</title>
|
<title>Start services on the storage nodes</title>
|
||||||
<para>Now that the ring files are on each storage node, you can
|
<para>Now that the ring files are on each storage node, you can
|
||||||
start the services. On each storage node, run the following
|
start the services. On each storage node, run the following
|
||||||
commands:</para>
|
command:</para>
|
||||||
<screen os="ubuntu;debian"><prompt>#</prompt> <userinput>service swift-object start</userinput>
|
<screen os="ubuntu;debian"><prompt>#</prompt> <userinput>for service in \
|
||||||
<prompt>#</prompt> <userinput>service swift-object-replicator start</userinput>
|
swift-object swift-object-replicator swift-object-updater swift-object-auditor \
|
||||||
<prompt>#</prompt> <userinput>service swift-object-updater start</userinput>
|
swift-container swift-container-replicator swift-container-updater swift-container-auditor \
|
||||||
<prompt>#</prompt> <userinput>service swift-object-auditor start</userinput>
|
swift-account swift-account-replicator swift-account-reaper swift-account-auditor; do \
|
||||||
<prompt>#</prompt> <userinput>service swift-container start</userinput>
|
service $service start; done</userinput></screen>
|
||||||
<prompt>#</prompt> <userinput>service swift-container-replicator start</userinput>
|
<screen os="fedora;rhel;centos;opensuse;sles"><prompt>#</prompt> <userinput>for service in \
|
||||||
<prompt>#</prompt> <userinput>service swift-container-updater start</userinput>
|
openstack-swift-object openstack-swift-object-replicator openstack-swift-object-updater openstack-swift-object-auditor \
|
||||||
<prompt>#</prompt> <userinput>service swift-container-auditor start</userinput>
|
openstack-swift-container openstack-swift-container-replicator openstack-swift-container-updater openstack-swift-container-auditor \
|
||||||
<prompt>#</prompt> <userinput>service swift-account start</userinput>
|
openstack-swift-account openstack-swift-account-replicator openstack-swift-account-reaper openstack-swift-account-auditor; do \
|
||||||
<prompt>#</prompt> <userinput>service swift-account-replicator start</userinput>
|
service $service start; chkconfig $service on; done</userinput></screen>
|
||||||
<prompt>#</prompt> <userinput>service swift-account-reaper start</userinput>
|
|
||||||
<prompt>#</prompt> <userinput>service swift-account-auditor start</userinput></screen>
|
|
||||||
<screen os="fedora;rhel;centos;opensuse;sles"><prompt>#</prompt> <userinput>service openstack-swift-object start</userinput>
|
|
||||||
<prompt>#</prompt> <userinput>service openstack-swift-object-replicator start</userinput>
|
|
||||||
<prompt>#</prompt> <userinput>service openstack-swift-object-updater start</userinput>
|
|
||||||
<prompt>#</prompt> <userinput>service openstack-swift-object-auditor start</userinput>
|
|
||||||
<prompt>#</prompt> <userinput>service openstack-swift-container start</userinput>
|
|
||||||
<prompt>#</prompt> <userinput>service openstack-swift-container-replicator start</userinput>
|
|
||||||
<prompt>#</prompt> <userinput>service openstack-swift-container-updater start</userinput>
|
|
||||||
<prompt>#</prompt> <userinput>service openstack-swift-container-auditor start</userinput>
|
|
||||||
<prompt>#</prompt> <userinput>service openstack-swift-account start</userinput>
|
|
||||||
<prompt>#</prompt> <userinput>service openstack-swift-account-replicator start</userinput>
|
|
||||||
<prompt>#</prompt> <userinput>service openstack-swift-account-reaper start</userinput>
|
|
||||||
<prompt>#</prompt> <userinput>service openstack-swift-account-auditor start</userinput></screen>
|
|
||||||
<note>
|
<note>
|
||||||
<para>To start all swift services at once, run the command:</para>
|
<para>To start all swift services at once, run the command:</para>
|
||||||
<screen><prompt>#</prompt> <userinput>swift-init main start</userinput></screen>
|
<screen><prompt>#</prompt> <userinput>swift-init all start</userinput></screen>
|
||||||
<para>To know more about <literal>swift-init</literal> command, run:</para>
|
<para>To know more about <literal>swift-init</literal> command, run:</para>
|
||||||
<screen><prompt>#</prompt> <userinput>man swift-init</userinput></screen>
|
<screen><prompt>#</prompt> <userinput>man swift-init</userinput></screen>
|
||||||
</note>
|
</note>
|
||||||
<screen><prompt>#</prompt> <userinput>service rsyslog restart</userinput>
|
|
||||||
<prompt>#</prompt> <userinput>service memcached restart</userinput></screen>
|
|
||||||
<note os="fedora;rhel;centos">
|
|
||||||
<para>On Fedora, you might need to use <command>systemctl restart
|
|
||||||
<replaceable>service</replaceable></command>.</para>
|
|
||||||
</note>
|
|
||||||
</section>
|
</section>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user