Merge "Make the object storage section less Ubuntu centric"
This commit is contained in:
commit
c2429f8722
@ -40,7 +40,9 @@
|
|||||||
periodic processes include auditors, updaters, and
|
periodic processes include auditors, updaters, and
|
||||||
reapers.</para>
|
reapers.</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>Configurable WSGI middleware that handles authentication.
|
||||||
|
Usually the Identity Service.</para>
|
||||||
|
</listitem>
|
||||||
</itemizedlist>
|
</itemizedlist>
|
||||||
<para>Configurable WSGI middleware that handles authentication.
|
|
||||||
Usually the Identity Service.</para>
|
|
||||||
</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,27 +53,15 @@
|
|||||||
<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>
|
||||||
</step>
|
</step>
|
||||||
<step>
|
<step>
|
||||||
@ -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…
Reference in New Issue
Block a user