Updates for Object Storage

- Replaces old diagram, updates with network diagram combined (needs work)
- Fixes missing Ubuntu package name
- Fixes lack of regions mention
- Various captialization and style guide updates
Closes-Bug: 1285623
Closes-Bug: 1298508

Change-Id: Ibcfc05a1e1bfbcf2a7e119a6baae44eb8c8c8918
This commit is contained in:
annegentle
2014-03-27 22:36:17 -05:00
committed by Anne Gentle
parent 9d479a4ae1
commit f30ba93f13
10 changed files with 1236 additions and 782 deletions

View File

@@ -1,75 +1,75 @@
<chapter xmlns="http://docbook.org/ns/docbook" <chapter xmlns="http://docbook.org/ns/docbook"
xmlns:xi="http://www.w3.org/2001/XInclude" xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="ch_basics">
xml:id="ch_basics">
<?dbhtml-stop-chunking?> <?dbhtml-stop-chunking?>
<title>Basic operating system configuration</title> <title>Basic operating system configuration</title>
<warning> <warning>
<para>We are updating this material for Icehouse. You may find structure <para>We are updating this material for Icehouse. You may find structure
and/or content issues during this process.</para> and/or content issues during this process.</para>
</warning> </warning>
<para>This guide shows you how to create a controller node to host <para>This guide shows you how to create a controller node to host most
most services and a compute node to run virtual machine instances. services and a compute node to run virtual machine instances. Subsequent
Subsequent chapters create additional nodes to run more services. chapters create additional nodes to run more services. OpenStack is flexible
OpenStack is flexible about how and where you run each service, so about how and where you run each service, so other configurations are
other configurations are possible. However, you must configure possible. However, you must configure certain operating system settings on
certain operating system settings on each node.</para> each node.</para>
<para>This chapter details a sample configuration for the controller <note>
node and any additional nodes. You can configure the operating <para>You can install OpenStack Object Storage with OpenStack Identity as a
system in other ways, but this guide assumes that your starting point rather than installing OpenStack Compute. You cannot use
configuration is compatible with the one described here.</para> the OpenStack dashboard unless you also install Compute and the Image
<para>All example commands assume you have administrative Service. If object storage is your use case, you can skip these operating
privileges. Either run the commands as the root user or prefix system configuration requirements and refer to <link
them with the <command>sudo</command> command.</para> linkend="object-storage-system-requirements"/> instead.</para>
</note>
<para>This chapter details a sample configuration for the controller node and
any additional nodes. You can configure the operating system in other ways,
but this guide assumes that your configuration is compatible with the one
described here.</para>
<para>All example commands assume you have administrative privileges. Either
run the commands as the root user or prefix them with the
<command>sudo</command> command.</para>
<section xml:id="before-you-begin"> <section xml:id="before-you-begin">
<title>Before you begin</title> <title>Before you begin</title>
<para>We strongly recommend that you install a 64-bit operating system on <para>We strongly recommend that you install a 64-bit operating system on
your compute nodes. If you use a 32-bit operating system, your compute nodes. If you use a 32-bit operating system, attempting a
attempting a start a virtual machine using a 64-bit image will fail start a virtual machine using a 64-bit image will fail with an
with an error.</para> error.</para>
<para>For more information about system requirements, see the <link <para>For more information about system requirements, see the <link
xlink:href="http://docs.openstack.org/ops/">OpenStack Operations xlink:href="http://docs.openstack.org/ops/">OpenStack Operations
Guide</link>. Guide</link>.</para>
</para>
</section> </section>
<section xml:id="basics-networking"> <section xml:id="basics-networking">
<title>Networking</title> <title>Networking</title>
<para>For an OpenStack production deployment, most nodes must have these
<para>For an OpenStack production deployment, most nodes must have network interface cards:</para>
these network interface cards:</para>
<itemizedlist> <itemizedlist>
<listitem> <listitem>
<para>One network interface card for external network traffic <para>One network interface card for external network traffic.</para>
</para>
</listitem> </listitem>
<listitem> <listitem>
<para>Another card to communicate with other OpenStack <para>Another card to communicate with other OpenStack nodes.</para>
nodes.</para>
</listitem> </listitem>
</itemizedlist> </itemizedlist>
<para>For simple test cases, you can use machines with a single <para>For simple test cases, you can use machines with a single network
network interface card.</para> interface card.</para>
<para>The following example configures Networking on two networks <para>The following example configures Networking on two networks with
with <glossterm baseform="static IP address">static IP addresses</glossterm> <glossterm baseform="static IP address">static IP addresses</glossterm>
and manually manages a list of host and manually manages a list of host names on each machine. If you manage a
names on each machine. If you manage a large network, you might large network, you might already have systems in place to manage this. If
already have systems in place to manage this. If so, you can so, you can skip this section but note that the rest of this guide assumes
skip this section but note that the rest of this guide assumes that each node can reach the other nodes on the internal network by using
that each node can reach the other nodes on the internal network the <literal>controller</literal> and <literal>compute1</literal> host
by using the <literal>controller</literal> and names.</para>
<literal>compute1</literal> host names.</para>
<!-- these fedora only paragraphs are confirmed not needed in centos --> <!-- these fedora only paragraphs are confirmed not needed in centos -->
<para os="fedora">Disable the <systemitem class="service" <para os="fedora">Disable the <systemitem class="service"
>NetworkManager</systemitem> service and enable the >NetworkManager</systemitem> service and enable the <systemitem
<systemitem class="service">network</systemitem> service. The class="service">network</systemitem> service. The <systemitem
<systemitem class="service">network</systemitem> service is class="service">network</systemitem> service is more suitable for the
more suitable for the static network configuration done in this static network configuration done in this guide.</para>
guide.</para>
<screen os="fedora"><prompt>#</prompt> <userinput>service NetworkManager stop</userinput> <screen os="fedora"><prompt>#</prompt> <userinput>service NetworkManager stop</userinput>
<prompt>#</prompt> <userinput>service network start</userinput> <prompt>#</prompt> <userinput>service network start</userinput>
@@ -77,47 +77,45 @@
<prompt>#</prompt> <userinput>chkconfig network on</userinput></screen> <prompt>#</prompt> <userinput>chkconfig network on</userinput></screen>
<note os="fedora"> <note os="fedora">
<para>Since Fedora 19, <literal>firewalld</literal> replaces <para>Since Fedora 19, <literal>firewalld</literal> replaces
<literal>iptables</literal> as the default firewall <literal>iptables</literal> as the default firewall system.</para>
system.</para> <para>You can use <literal>firewalld</literal> successfully, but this
<para>You can use <literal>firewalld</literal> successfully, but guide recommends and demonstrates the use of the default
this guide recommends and demonstrates the use of the default
<literal>iptables</literal>.</para> <literal>iptables</literal>.</para>
<para>For Fedora 19 systems, run the following commands to <para>For Fedora 19 systems, run the following commands to disable
disable <literal>firewalld</literal> and enable <literal>firewalld</literal> and enable
<literal>iptables</literal>:</para> <literal>iptables</literal>:</para>
<screen><prompt>#</prompt> <userinput>service firewalld stop</userinput> <screen><prompt>#</prompt> <userinput>service firewalld stop</userinput>
<prompt>#</prompt> <userinput>service iptables start</userinput> <prompt>#</prompt> <userinput>service iptables start</userinput>
<prompt>#</prompt> <userinput>chkconfig firewalld off</userinput> <prompt>#</prompt> <userinput>chkconfig firewalld off</userinput>
<prompt>#</prompt> <userinput>chkconfig iptables on</userinput></screen> <prompt>#</prompt> <userinput>chkconfig iptables on</userinput></screen>
</note> </note>
<warning os="centos;rhel"><para> <warning os="centos;rhel">
RHEL and derivatives including CentOS and Scientific Linux enable a <para>RHEL and derivatives including CentOS and Scientific Linux enable a
restrictive <glossterm>firewall</glossterm> by default. During this restrictive <glossterm>firewall</glossterm> by default. During this
installation, certain steps installation, certain steps will fail unless you alter this setting or
will fail unless you alter this setting or disable the firewall. For disable the firewall. For further information about securing your
further information about securing your installation, refer to the installation, refer to the <link
<link xlink:href="http://docs.openstack.org/sec/">OpenStack Security Guide</link>.</para> xlink:href="http://docs.openstack.org/sec/">OpenStack Security
Guide</link>.</para>
</warning> </warning>
<para os="opensuse;sles">When you set up your system, use the <para os="opensuse;sles">When you set up your system, use the traditional
traditional network scripts and do not use <systemitem network scripts and do not use <systemitem class="service"
class="service">NetworkManager</systemitem>. You can change >NetworkManager</systemitem>. You can change the settings after
the settings after installation with the YaST network installation with the YaST network module:</para>
module:</para>
<screen os="opensuse;sles"><prompt>#</prompt> <userinput>yast2 network</userinput></screen> <screen os="opensuse;sles"><prompt>#</prompt> <userinput>yast2 network</userinput></screen>
<para>Configure both <literal>eth0</literal> and <para>Configure both <literal>eth0</literal> and <literal>eth1</literal>.
<literal>eth1</literal>. The examples in this guide use the The examples in this guide use the
<literal>192.168.0.<replaceable>x</replaceable></literal> IP <literal>192.168.0.<replaceable>x</replaceable></literal> IP addresses
addresses for the internal network and the for the internal network and the
<literal>10.0.0.<replaceable>x</replaceable></literal> IP <literal>10.0.0.<replaceable>x</replaceable></literal> IP addresses
addresses for the external network. Make sure to connect your for the external network. Make sure to connect your network devices to the
network devices to the correct network.</para> correct network.</para>
<para>In this guide, the controller node uses the <para>In this guide, the controller node uses the
<literal>192.168.0.10</literal> and <literal>192.168.0.10</literal> and <literal>10.0.0.10</literal> IP
<literal>10.0.0.10</literal> IP addresses. When you create the addresses. When you create the compute node, use the
compute node, use the <literal>192.168.0.11</literal> and <literal>192.168.0.11</literal> and <literal>10.0.0.11</literal>
<literal>10.0.0.11</literal> addresses instead. Additional addresses instead. Additional nodes that you add in subsequent chapters
nodes that you add in subsequent chapters also follow this also follow this pattern.</para>
pattern.</para>
<figure xml:id="basic-architecture-networking"> <figure xml:id="basic-architecture-networking">
<title>Basic architecture</title> <title>Basic architecture</title>
<mediaobject> <mediaobject>
@@ -149,22 +147,20 @@ NETMASK=255.255.255.0
DEFROUTE=yes DEFROUTE=yes
ONBOOT=yes</programlisting> ONBOOT=yes</programlisting>
</example> </example>
<para os="opensuse;sles">To configure the network interfaces, <para os="opensuse;sles">To configure the network interfaces, start the YaST
start the YaST network module, as follows:</para> network module, as follows:</para>
<screen os="opensuse;sles"><prompt>#</prompt> <userinput>yast2 network</userinput></screen> <screen os="opensuse;sles"><prompt>#</prompt> <userinput>yast2 network</userinput></screen>
<itemizedlist os="opensuse;sles"> <itemizedlist os="opensuse;sles">
<listitem> <listitem>
<para>Use these parameters to set up the <para>Use these parameters to set up the <literal>eth0</literal>
<literal>eth0</literal> ethernet card for the internal Ethernet card for the internal network:</para>
network:</para>
<programlisting>Statically assigned IP Address <programlisting>Statically assigned IP Address
IP Address: 192.168.0.10 IP Address: 192.168.0.10
Subnet Mask: 255.255.255.0</programlisting> Subnet Mask: 255.255.255.0</programlisting>
</listitem> </listitem>
<listitem> <listitem>
<para>Use these parameters to set up the <para>Use these parameters to set up the <literal>eth1</literal>
<literal>eth1</literal> ethernet card for the external Ethernet card for the external network:</para>
network:</para>
<programlisting>Statically assigned IP Address <programlisting>Statically assigned IP Address
IP Address: 10.0.0.10 IP Address: 10.0.0.10
Subnet Mask: 255.255.255.0</programlisting> Subnet Mask: 255.255.255.0</programlisting>
@@ -188,94 +184,83 @@ iface eth1 inet static
address 10.0.0.10 address 10.0.0.10
netmask 255.255.255.0</programlisting> netmask 255.255.255.0</programlisting>
</example> </example>
<para>After you configure the network, restart the daemon for changes to
<para>After you configure the network, restart the daemon for take effect:</para>
changes to take effect:</para>
<screen os="ubuntu;debian"><prompt>#</prompt> <userinput>service networking restart</userinput></screen> <screen os="ubuntu;debian"><prompt>#</prompt> <userinput>service networking restart</userinput></screen>
<screen os="fedora;rhel;centos;opensuse;sles"><prompt>#</prompt> <userinput>service network restart</userinput></screen> <screen os="fedora;rhel;centos;opensuse;sles"><prompt>#</prompt> <userinput>service network restart</userinput></screen>
<para>Set the host name of each machine. Name the controller node <para>Set the host name of each machine. Name the controller node
<literal>controller</literal> and the first compute node <literal>controller</literal> and the first compute node
<literal>compute1</literal>. The examples in this guide use <literal>compute1</literal>. The examples in this guide use these host
these host names.</para> names.</para>
<para os="ubuntu;debian;fedora;rhel;centos">Use the <para os="ubuntu;debian;fedora;rhel;centos">Use the
<command>hostname</command> command to set the host name: <command>hostname</command> command to set the host name:
<screen><prompt>#</prompt> <userinput>hostname controller</userinput></screen></para> <screen><prompt>#</prompt> <userinput>hostname controller</userinput></screen></para>
<para os="opensuse;sles">Use <command>yast network</command> to <para os="opensuse;sles">Use <command>yast network</command> to set the host
set the host name with YaST.</para> name with YaST.</para>
<para os="rhel;fedora;centos">To have the host name change persist <para os="rhel;fedora;centos">To have the host name change persist when the
when the system reboots, you must specify it in the proper system reboots, you must specify it in the proper configuration file. In
configuration file. In Red Hat Enterprise Linux, CentOS, and Red Hat Enterprise Linux, CentOS, and older versions of Fedora, you set
older versions of Fedora, you set this in the file this in the file <filename>/etc/sysconfig/network</filename>. Change the
<filename>/etc/sysconfig/network</filename>. Change the line line starting with <literal>HOSTNAME=</literal>.</para>
starting with <literal>HOSTNAME=</literal>.</para>
<programlisting language="ini" os="rhel;fedora;centos">HOSTNAME=controller</programlisting> <programlisting language="ini" os="rhel;fedora;centos">HOSTNAME=controller</programlisting>
<para os="fedora">As of Fedora 18, Fedora uses the <para os="fedora">As of Fedora 18, Fedora uses the
<filename>/etc/hostname</filename> file, which contains a <filename>/etc/hostname</filename> file, which contains a single line
single line with the host name.</para> with the host name.</para>
<para os="ubuntu;debian">To configure this host name to be <para os="ubuntu;debian">To configure this host name to be available when
available when the system reboots, you must specify it in the the system reboots, you must specify it in the
<filename>/etc/hostname</filename> file, which contains a <filename>/etc/hostname</filename> file, which contains a single line
single line with the host name.</para> with the host name.</para>
<para>Finally, ensure that each node can reach the other nodes by <para>Finally, ensure that each node can reach the other nodes by using host
using host names. You must manually edit the names. You must manually edit the <filename>/etc/hosts</filename> file on
<filename>/etc/hosts</filename> file on each system. For each system. For large-scale deployments, use DNS or a configuration
large-scale deployments, use DNS or a configuration management management system like Puppet.</para>
system like Puppet.</para>
<programlisting>127.0.0.1 localhost <programlisting>127.0.0.1 localhost
192.168.0.10 controller 192.168.0.10 controller
192.168.0.11 compute1</programlisting> 192.168.0.11 compute1</programlisting>
</section> </section>
<section xml:id="basics-ntp"> <section xml:id="basics-ntp">
<title>Network Time Protocol (NTP)</title> <title>Network Time Protocol (NTP)</title>
<para>To synchronize services across multiple machines, you must <para>To synchronize services across multiple machines, you must install
install <glossterm baseform="Network Time Protocol (NTP)">NTP</glossterm>. <glossterm baseform="Network Time Protocol (NTP)">NTP</glossterm>. The
The examples in this guide configure the controller examples in this guide configure the controller node as the reference
node as the reference server and any additional nodes to set server and any additional nodes to set their time from the controller
their time from the controller node.</para> node.</para>
<para>Install the <literal>ntp</literal> package on each system <para>Install the <literal>ntp</literal> package on each system running
running OpenStack services.</para> OpenStack services.</para>
<screen os="ubuntu;debian"><prompt>#</prompt> <userinput>apt-get install ntp</userinput></screen> <screen os="ubuntu;debian"><prompt>#</prompt> <userinput>apt-get install ntp</userinput></screen>
<screen os="rhel;fedora;centos"><prompt>#</prompt> <userinput>yum install ntp</userinput></screen> <screen os="rhel;fedora;centos"><prompt>#</prompt> <userinput>yum install ntp</userinput></screen>
<screen os="opensuse;sles"><prompt>#</prompt> <userinput>zypper install ntp</userinput></screen> <screen os="opensuse;sles"><prompt>#</prompt> <userinput>zypper install ntp</userinput></screen>
<para os="rhel;fedora;centos;opensuse;sles">Set up the NTP server <para os="rhel;fedora;centos;opensuse;sles">Set up the NTP server on your
on your controller node so that it receives data by modifying controller node so that it receives data by modifying the
the <filename>ntp.conf</filename> file and restarting the <filename>ntp.conf</filename> file and restarting the service.</para>
service.</para>
<screen os="rhel;fedora;centos;opensuse;sles"><prompt>#</prompt> <userinput>service ntpd start</userinput> <screen os="rhel;fedora;centos;opensuse;sles"><prompt>#</prompt> <userinput>service ntpd start</userinput>
<prompt>#</prompt> <userinput>chkconfig ntpd on</userinput></screen> <prompt>#</prompt> <userinput>chkconfig ntpd on</userinput></screen>
<screen os="opensuse;sles"><prompt>#</prompt> <userinput>service ntp start</userinput> <screen os="opensuse;sles"><prompt>#</prompt> <userinput>service ntp start</userinput>
<prompt>#</prompt> <userinput>chkconfig ntp on</userinput></screen> <prompt>#</prompt> <userinput>chkconfig ntp on</userinput></screen>
<para>On additional nodes, it is advised that you configure the <para>On additional nodes, it is advised that you configure the other nodes
other nodes to synchronize their time from the controller node to synchronize their time from the controller node rather than from
rather than from outside of your LAN. To do so, install the ntp outside of your LAN. To do so, install the ntp daemon as above, then edit
daemon as above, then edit <filename>/etc/ntp.conf</filename> <filename>/etc/ntp.conf</filename> and change the <code>server</code>
and change the <code>server</code> directive to use the directive to use the controller node as internet time source.</para>
controller node as internet time source.</para>
</section> </section>
<section xml:id="basics-passwords"
<section xml:id="basics-passwords" os="ubuntu;rhel;fedora;centos;opensuse;sles"> os="ubuntu;rhel;fedora;centos;opensuse;sles">
<title>Passwords</title> <title>Passwords</title>
<para>The various OpenStack services and the required software like the <para>The various OpenStack services and the required software like the
database and the messaging server have to be password protected. You use database and the messaging server have to be password protected. You use
these passwords when configuring a service and then again to access the these passwords when configuring a service and then again to access the
service. You have to choose a password while configuring the service. You have to choose a password while configuring the service and
service and later remember to use the same password when accessing it. later remember to use the same password when accessing it. Optionally, you
Optionally, you can generate random passwords with the can generate random passwords with the <application>pwgen</application>
<application>pwgen</application> program. Or, to create passwords one at a program. Or, to create passwords one at a time, use the output of this
time, use the output of this command repeatedly: command repeatedly:
<screen><prompt>$</prompt> <userinput>openssl rand -hex 10</userinput></screen> <screen><prompt>$</prompt> <userinput>openssl rand -hex 10</userinput></screen>
</para> </para>
<para>This guide uses the convention that <para>This guide uses the convention that
<literal><replaceable>SERVICE_PASS</replaceable></literal> is <literal><replaceable>SERVICE_PASS</replaceable></literal> is password
password to access the service <literal>SERVICE</literal> and to access the service <literal>SERVICE</literal> and
<literal><replaceable>SERVICE_DBPASS</replaceable></literal> is <literal><replaceable>SERVICE_DBPASS</replaceable></literal> is the
the database password used by the service SERVICE to access the database password used by the service SERVICE to access the database.</para>
database.
</para>
<para>The complete list of passwords you need to define in this guide are: <para>The complete list of passwords you need to define in this guide are:
<table rules="all"> <table rules="all">
<caption>Passwords</caption> <caption>Passwords</caption>
@@ -328,7 +313,8 @@ iface eth1 inet static
</tr> </tr>
<tr> <tr>
<td><literal><replaceable>CINDER_PASS</replaceable></literal></td> <td><literal><replaceable>CINDER_PASS</replaceable></literal></td>
<td>Password of Block Storage service user <literal>cinder</literal></td> <td>Password of Block Storage service user
<literal>cinder</literal></td>
</tr> </tr>
<tr> <tr>
<td><literal><replaceable>NEUTRON_DBPASS</replaceable></literal></td> <td><literal><replaceable>NEUTRON_DBPASS</replaceable></literal></td>
@@ -336,7 +322,8 @@ iface eth1 inet static
</tr> </tr>
<tr> <tr>
<td><literal><replaceable>NEUTRON_PASS</replaceable></literal></td> <td><literal><replaceable>NEUTRON_PASS</replaceable></literal></td>
<td>Password of Networking service user <literal>neutron</literal></td> <td>Password of Networking service user
<literal>neutron</literal></td>
</tr> </tr>
<tr> <tr>
<td><literal><replaceable>HEAT_DBPASS</replaceable></literal></td> <td><literal><replaceable>HEAT_DBPASS</replaceable></literal></td>
@@ -344,7 +331,8 @@ iface eth1 inet static
</tr> </tr>
<tr> <tr>
<td><literal><replaceable>HEAT_PASS</replaceable></literal></td> <td><literal><replaceable>HEAT_PASS</replaceable></literal></td>
<td>Password of Orchestration service user <literal>heat</literal></td> <td>Password of Orchestration service user
<literal>heat</literal></td>
</tr> </tr>
<tr> <tr>
<td><literal><replaceable>CEILOMETER_DBPASS</replaceable></literal></td> <td><literal><replaceable>CEILOMETER_DBPASS</replaceable></literal></td>
@@ -352,7 +340,8 @@ iface eth1 inet static
</tr> </tr>
<tr> <tr>
<td><literal><replaceable>CEILOMETER_PASS</replaceable></literal></td> <td><literal><replaceable>CEILOMETER_PASS</replaceable></literal></td>
<td>Password of Telemetry service user <literal>ceilometer</literal></td> <td>Password of Telemetry service user
<literal>ceilometer</literal></td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
@@ -362,37 +351,34 @@ iface eth1 inet static
<section xml:id="basics-database"> <section xml:id="basics-database">
<?dbhtml-stop-chunking?> <?dbhtml-stop-chunking?>
<title>MySQL database</title> <title>MySQL database</title>
<para os="ubuntu;debian;rhel;fedora;centos">Most OpenStack <para os="ubuntu;debian;rhel;fedora;centos">Most OpenStack services require
services require a database to store information. These examples a database to store information. These examples use a MySQL database that
use a MySQL database that runs on the controller node. You must runs on the controller node. You must install the MySQL database on the
install the MySQL database on the controller node. You must controller node. You must install MySQL client software on any additional
install MySQL client software on any additional nodes that nodes that access MySQL.</para>
access MySQL.</para> <para os="opensuse;sles">Most OpenStack services require a database to store
<para os="opensuse;sles">Most OpenStack services require a information. This guide uses a MySQL database on SUSE Linux Enterprise
database to store information. This guide uses a MySQL database Server and a compatible database on openSUSE running on the controller
on SUSE Linux Enterprise Server and a compatible database on node. This compatible database for openSUSE is MariaDB. You must install
openSUSE running on the controller node. This compatible the MariaDB database on the controller node. You must install the MariaDB
database for openSUSE is MariaDB. You must install the MariaDB client software on any nodes that access the MariaDB database.</para>
database on the controller node. You must install the MariaDB
client software on any nodes that access the MariaDB
database.</para>
<section xml:id="basics-database-controller"> <section xml:id="basics-database-controller">
<title>Controller setup</title> <title>Controller setup</title>
<para><phrase os="sles">For SUSE Linux Enterprise Server: <para><phrase os="sles">For SUSE Linux Enterprise Server: </phrase> On the
</phrase> On the controller node, install the MySQL client and controller node, install the MySQL client and server packages, and the
server packages, and the Python library.</para> Python library.</para>
<screen os="opensuse;sles"><prompt>#</prompt> <userinput>zypper install mysql-client mysql python-mysql</userinput></screen> <screen os="opensuse;sles"><prompt>#</prompt> <userinput>zypper install mysql-client mysql python-mysql</userinput></screen>
<para os="opensuse">For openSUSE: On the controller node, <para os="opensuse">For openSUSE: On the controller node, install the
install the MariaDB client and database server packages, MariaDB client and database server packages, and the MySQL Python
and the MySQL Python library.</para> library.</para>
<screen os="opensuse"><prompt>#</prompt> <userinput>zypper install mariadb-client mariadb python-mysql</userinput></screen> <screen os="opensuse"><prompt>#</prompt> <userinput>zypper install mariadb-client mariadb python-mysql</userinput></screen>
<screen os="ubuntu;debian"><prompt>#</prompt> <userinput>apt-get install python-mysqldb mysql-server</userinput></screen> <screen os="ubuntu;debian"><prompt>#</prompt> <userinput>apt-get install python-mysqldb mysql-server</userinput></screen>
<screen os="rhel;fedora;centos"><prompt>#</prompt> <userinput>yum install mysql mysql-server MySQL-python</userinput></screen> <screen os="rhel;fedora;centos"><prompt>#</prompt> <userinput>yum install mysql mysql-server MySQL-python</userinput></screen>
<note os="ubuntu;debian"> <note os="ubuntu;debian">
<para>When you install the server package, you are prompted <para>When you install the server package, you are prompted for the root
for the root password for the database. Choose a strong password for the database. Choose a strong password and remember
password and remember it.</para> it.</para>
</note> </note>
<para>The MySQL configuration requires some changes to work with <para>The MySQL configuration requires some changes to work with
OpenStack.</para> OpenStack.</para>
@@ -406,8 +392,8 @@ iface eth1 inet static
<step> <step>
<para>Under the <literal>[mysqld]</literal> section, set the <para>Under the <literal>[mysqld]</literal> section, set the
<literal>bind-address</literal> key to the management IP <literal>bind-address</literal> key to the management IP
address of the controller node to enable access by other address of the controller node to enable access by other nodes
nodes via the management network:</para> via the management network:</para>
<programlisting>[mysqld] <programlisting>[mysqld]
... ...
bind-address = 192.168.0.10</programlisting> bind-address = 192.168.0.10</programlisting>
@@ -426,140 +412,129 @@ character-set-server = utf8</programlisting>
</substeps> </substeps>
</step> </step>
</procedure> </procedure>
<para os="ubuntu;debian">Restart the MySQL service to apply <para os="ubuntu;debian">Restart the MySQL service to apply the
the changes:</para> changes:</para>
<screen os="ubuntu;debian"><prompt>#</prompt> <userinput>service mysql restart</userinput></screen> <screen os="ubuntu;debian"><prompt>#</prompt> <userinput>service mysql restart</userinput></screen>
<para os="rhel;centos;fedora;opensuse;sles">Start the <phrase <para os="rhel;centos;fedora;opensuse;sles">Start the <phrase
os="rhel;fedora;centos">MySQL</phrase> os="rhel;fedora;centos">MySQL</phrase>
<phrase os="opensuse;sles">MariaDB or MySQL</phrase> database <phrase os="opensuse;sles">MariaDB or MySQL</phrase> database server and
server and set it to start automatically when the system set it to start automatically when the system boots.</para>
boots.</para>
<screen os="rhel;centos;fedora"><prompt>#</prompt> <userinput>service mysqld start</userinput> <screen os="rhel;centos;fedora"><prompt>#</prompt> <userinput>service mysqld start</userinput>
<prompt>#</prompt> <userinput>chkconfig mysqld on</userinput></screen> <prompt>#</prompt> <userinput>chkconfig mysqld on</userinput></screen>
<screen os="opensuse;sles"><prompt>#</prompt> <userinput>service mysql start</userinput> <screen os="opensuse;sles"><prompt>#</prompt> <userinput>service mysql start</userinput>
<prompt>#</prompt> <userinput>chkconfig mysql on</userinput></screen> <prompt>#</prompt> <userinput>chkconfig mysql on</userinput></screen>
<para os="rhel;centos;fedora;opensuse;sles">Finally, you should <para os="rhel;centos;fedora;opensuse;sles">Finally, you should set a root
set a root password for your <phrase os="rhel;fedora;centos" password for your <phrase os="rhel;fedora;centos">MySQL</phrase>
>MySQL</phrase> <phrase os="opensuse;sles">MariaDB or MySQL</phrase> database. The
<phrase os="opensuse;sles">MariaDB or MySQL</phrase> database. OpenStack programs that set up databases and tables prompt you for this
The OpenStack programs that set up databases and tables prompt password if it is set.</para>
you for this password if it is set.</para> <para os="ubuntu;debian;rhel;centos;fedora;opensuse;sles">You must delete
<para os="ubuntu;debian;rhel;centos;fedora;opensuse;sles">You must the anonymous users that are created when the database is first started.
delete the anonymous users that are created when the database is Otherwise, database connection problems occur when you follow the
first started. Otherwise, database connection problems occur instructions in this guide. To do this, use the
when you follow the instructions in this guide. To do this, use <command>mysql_secure_installation</command> command. Note that if
the <command>mysql_secure_installation</command> command. <command>mysql_secure_installation</command> fails you might need to
Note that if <command>mysql_secure_installation</command> fails use <command>mysql_install_db</command> first:</para>
you might need to use <command>mysql_install_db</command> first:</para>
<screen os="ubuntu;debian;rhel;centos;fedora;opensuse;sles"><prompt>#</prompt> <userinput>mysql_install_db</userinput> <screen os="ubuntu;debian;rhel;centos;fedora;opensuse;sles"><prompt>#</prompt> <userinput>mysql_install_db</userinput>
<prompt>#</prompt> <userinput>mysql_secure_installation</userinput></screen> <prompt>#</prompt> <userinput>mysql_secure_installation</userinput></screen>
<para><phrase os="rhel;centos;fedora;opensuse;sles">If you have <para><phrase os="rhel;centos;fedora;opensuse;sles">If you have not
not already set a root database password, press already set a root database password, press <keycap>ENTER</keycap>
<keycap>ENTER</keycap> when you are prompted for the when you are prompted for the password.</phrase> This command presents
password.</phrase> This command presents a number of options a number of options for you to secure your database installation.
for you to secure your database installation. Respond Respond <userinput>yes</userinput> to all prompts unless you have a good
<userinput>yes</userinput> to all prompts unless you have a reason to do otherwise.</para>
good reason to do otherwise.</para>
</section> </section>
<section xml:id="basics-database-node"> <section xml:id="basics-database-node">
<title>Node setup</title> <title>Node setup</title>
<para>On all nodes other than the controller node, install the <para>On all nodes other than the controller node, install the <phrase
<phrase os="ubuntu;debian;rhel;fedora;centos" os="ubuntu;debian;rhel;fedora;centos">MySQL</phrase>
>MySQL</phrase> <phrase os="opensuse">MariaDB (on openSUSE)</phrase> client and the
<phrase os="opensuse">MariaDB (on openSUSE)</phrase> client MySQL Python library on any system that does not host a MySQL
and the MySQL Python library on any system that does not database:</para>
host a MySQL database:</para>
<screen os="ubuntu;debian"><prompt>#</prompt> <userinput>apt-get install python-mysqldb</userinput></screen> <screen os="ubuntu;debian"><prompt>#</prompt> <userinput>apt-get install python-mysqldb</userinput></screen>
<screen os="rhel;fedora;centos"><prompt>#</prompt> <userinput>yum install mysql MySQL-python</userinput></screen> <screen os="rhel;fedora;centos"><prompt>#</prompt> <userinput>yum install mysql MySQL-python</userinput></screen>
<screen os="opensuse"><prompt>#</prompt> <userinput>zypper install mariadb-client python-mysql</userinput></screen> <screen os="opensuse"><prompt>#</prompt> <userinput>zypper install mariadb-client python-mysql</userinput></screen>
<para os="sles">For SUSE Linux Enterprise, install <para os="sles">For SUSE Linux Enterprise, install MySQL:</para>
MySQL:</para>
<screen os="sles"><prompt>#</prompt> <userinput>zypper install mysql-client python-mysql</userinput></screen> <screen os="sles"><prompt>#</prompt> <userinput>zypper install mysql-client python-mysql</userinput></screen>
</section> </section>
</section> </section>
<section xml:id="basics-packages"> <section xml:id="basics-packages">
<title>OpenStack packages</title> <title>OpenStack packages</title>
<para>Distributions might release OpenStack packages as part of <para>Distributions might release OpenStack packages as part of their
their distribution or through other methods because the distribution or through other methods because the OpenStack and
OpenStack and distribution release times are independent of each distribution release times are independent of each other.</para>
other.</para> <para>This section describes the configuration you must complete after you
<para>This section describes the configuration you must configure machines to install the latest OpenStack packages.</para>
complete after you configure machines to install the latest <para os="fedora;centos;rhel">The examples in this guide use the OpenStack
OpenStack packages.</para> packages from the RDO repository. These packages work on Red Hat
<para os="fedora;centos;rhel">The examples in this guide use the Enterprise Linux 6, compatible versions of CentOS, and Fedora 20. To
OpenStack packages from the RDO repository. These packages work enable the RDO repository, download and install the
on Red Hat Enterprise Linux 6, compatible versions of CentOS, <package>rdo-release-icehouse</package> package.</para>
and Fedora 20. To enable the RDO repository, download and
install the <package>rdo-release-icehouse</package>
package.</para>
<screen os="fedora;centos;rhel"><prompt>#</prompt> <userinput>yum install http://repos.fedorapeople.org/repos/openstack/openstack-icehouse/rdo-release-icehouse-1.noarch.rpm</userinput></screen> <screen os="fedora;centos;rhel"><prompt>#</prompt> <userinput>yum install http://repos.fedorapeople.org/repos/openstack/openstack-icehouse/rdo-release-icehouse-1.noarch.rpm</userinput></screen>
<para os="fedora;centos;rhel">The EPEL package includes GPG keys <para os="fedora;centos;rhel">The EPEL package includes GPG keys for package
for package signing and repository information. This should only signing and repository information. This should only be installed on Red
be installed on Red Hat Enterprise Linux and CentOS, not Fedora. Hat Enterprise Linux and CentOS, not Fedora. Install the latest
Install the latest <package>epel-release</package> package (see <package>epel-release</package> package (see <link
<link
xlink:href="http://download.fedoraproject.org/pub/epel/6/x86_64/repoview/epel-release.html" xlink:href="http://download.fedoraproject.org/pub/epel/6/x86_64/repoview/epel-release.html"
>http://download.fedoraproject.org/pub/epel/6/x86_64/repoview/epel-release.html</link>). >http://download.fedoraproject.org/pub/epel/6/x86_64/repoview/epel-release.html</link>).
For example:</para> For example:</para>
<screen os="fedora;centos;rhel"><prompt>#</prompt> <userinput>yum install http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm</userinput></screen> <screen os="fedora;centos;rhel"><prompt>#</prompt> <userinput>yum install http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm</userinput></screen>
<para os="fedora;centos;rhel">The <para os="fedora;centos;rhel">The <package>openstack-utils</package> package
<package>openstack-utils</package> package contains utility contains utility programs that make installation and configuration easier.
programs that make installation and configuration easier. These These programs are used throughout this guide. Install
programs are used throughout this guide. Install <package>openstack-utils</package>. This verifies that you can access
<package>openstack-utils</package>. This verifies that you can the RDO repository.</para>
access the RDO repository.</para>
<screen os="fedora;centos;rhel"><prompt>#</prompt> <userinput>yum install openstack-utils</userinput></screen> <screen os="fedora;centos;rhel"><prompt>#</prompt> <userinput>yum install openstack-utils</userinput></screen>
<para os="opensuse;sles">Use the Open Build Service repositories <para os="opensuse;sles">Use the Open Build Service repositories for
for <glossterm>Icehouse</glossterm> based on your openSUSE or <glossterm>Icehouse</glossterm> based on your openSUSE or SUSE Linux
SUSE Linux Enterprise Enterprise Server version, for example if you run openSUSE 12.3
Server version, for example if you run openSUSE 12.3 use:</para> use:</para>
<screen os="opensuse"><prompt>#</prompt> <userinput>zypper addrepo -f obs://Cloud:OpenStack:Icehouse/openSUSE_12.3 Icehouse</userinput></screen> <screen os="opensuse"><prompt>#</prompt> <userinput>zypper addrepo -f obs://Cloud:OpenStack:Icehouse/openSUSE_12.3 Icehouse</userinput></screen>
<para os="opensuse">For openSUSE 13.1 use:</para> <para os="opensuse">For openSUSE 13.1 use:</para>
<screen os="opensuse"><prompt>#</prompt> <userinput>zypper addrepo -f obs://Cloud:OpenStack:Icehouse/openSUSE_13.1 Icehouse</userinput></screen> <screen os="opensuse"><prompt>#</prompt> <userinput>zypper addrepo -f obs://Cloud:OpenStack:Icehouse/openSUSE_13.1 Icehouse</userinput></screen>
<para os="sles">If you use SUSE Linux Enterprise Server 11 SP3, <para os="sles">If you use SUSE Linux Enterprise Server 11 SP3, use:</para>
use:</para>
<screen os="sles"><prompt>#</prompt> <userinput>zypper addrepo -f obs://Cloud:OpenStack:Icehouse/SLE_11_SP3 Icehouse</userinput></screen> <screen os="sles"><prompt>#</prompt> <userinput>zypper addrepo -f obs://Cloud:OpenStack:Icehouse/SLE_11_SP3 Icehouse</userinput></screen>
<para os="opensuse;sles">The <package>openstack-utils</package> <para os="opensuse;sles">The <package>openstack-utils</package> package
package contains utility programs that make installation and contains utility programs that make installation and configuration easier.
configuration easier. These programs are used throughout this These programs are used throughout this guide. Install
guide. Install <package>openstack-utils</package>. This verifies <package>openstack-utils</package>. This verifies that you can access
that you can access the Open Build Service repository:</para> the Open Build Service repository:</para>
<screen os="opensuse;sles"><prompt>#</prompt> <userinput>zypper install openstack-utils</userinput></screen> <screen os="opensuse;sles"><prompt>#</prompt> <userinput>zypper install openstack-utils</userinput></screen>
<warning os="fedora;centos;rhel;opensuse;sles"> <warning os="fedora;centos;rhel;opensuse;sles">
<para>The <application>openstack-config</application> program <para>The <application>openstack-config</application> program in the
in the <package>openstack-utils</package> package uses <package>openstack-utils</package> package uses
<application>crudini</application> to manipulate configuration <application>crudini</application> to manipulate configuration files.
files. However, <application>crudini</application> version 0.3 However, <application>crudini</application> version 0.3 does not support
does not support multi valued options. See multi valued options. See <link
<link
xlink:href="https://bugs.launchpad.net/openstack-manuals/+bug/1269271" xlink:href="https://bugs.launchpad.net/openstack-manuals/+bug/1269271"
>https://bugs.launchpad.net/openstack-manuals/+bug/1269271</link>. >https://bugs.launchpad.net/openstack-manuals/+bug/1269271</link>. As
As a work around, you must manually set any multi valued a work around, you must manually set any multi valued options or the new
options or the new value overwrites the previous value instead value overwrites the previous value instead of creating a new
of creating a new option.</para> option.</para>
</warning> </warning>
<para os="fedora;centos;rhel">The <para os="fedora;centos;rhel">The <package>openstack-selinux</package>
<package>openstack-selinux</package> package includes the package includes the policy files that are required to configure SELinux
policy files that are required to configure SELinux during during OpenStack installation. Install
OpenStack installation. <package>openstack-selinux</package>.</para>
Install <package>openstack-selinux</package>.</para>
<screen os="fedora;centos;rhel"><prompt>#</prompt> <userinput>yum install openstack-selinux</userinput></screen> <screen os="fedora;centos;rhel"><prompt>#</prompt> <userinput>yum install openstack-selinux</userinput></screen>
<para os="fedora;centos;rhel;opensuse;sles">Upgrade your system packages:</para> <para os="fedora;centos;rhel;opensuse;sles">Upgrade your system
packages:</para>
<screen os="fedora;centos;rhel"><prompt>#</prompt> <userinput>yum upgrade</userinput></screen> <screen os="fedora;centos;rhel"><prompt>#</prompt> <userinput>yum upgrade</userinput></screen>
<screen os="opensuse;sles"><prompt>#</prompt> <userinput>zypper refresh</userinput> <screen os="opensuse;sles"><prompt>#</prompt> <userinput>zypper refresh</userinput>
<prompt>#</prompt> <userinput>zypper update</userinput></screen> <prompt>#</prompt> <userinput>zypper update</userinput></screen>
<para os="fedora;centos;rhel;opensuse;sles">If the upgrade included a new <para os="fedora;centos;rhel;opensuse;sles">If the upgrade included a new
kernel package, reboot the system to ensure the new kernel is running:</para> kernel package, reboot the system to ensure the new kernel is
running:</para>
<screen os="fedora;centos;rhel;opensuse;sles"><prompt>#</prompt> <userinput>reboot</userinput></screen> <screen os="fedora;centos;rhel;opensuse;sles"><prompt>#</prompt> <userinput>reboot</userinput></screen>
<procedure xml:id="ubuntu-cloud-archive" os="ubuntu"> <procedure xml:id="ubuntu-cloud-archive" os="ubuntu">
<title>To use the Ubuntu Cloud Archive for Icehouse</title> <title>To use the Ubuntu Cloud Archive for Icehouse</title>
<para>The <link <para>The <link
xlink:href="https://wiki.ubuntu.com/ServerTeam/CloudArchive" xlink:href="https://wiki.ubuntu.com/ServerTeam/CloudArchive">Ubuntu
>Ubuntu Cloud Archive</link> is a special repository that Cloud Archive</link> is a special repository that allows you to
allows you to install newer releases of OpenStack on the install newer releases of OpenStack on the stable supported version of
stable supported version of Ubuntu.</para> Ubuntu.</para>
<step> <step>
<para>Install the Ubuntu Cloud Archive for <para>Install the Ubuntu Cloud Archive for
<glossterm>Icehouse</glossterm>: <glossterm>Icehouse</glossterm>:
@@ -567,23 +542,20 @@ character-set-server = utf8</programlisting>
<prompt>#</prompt> <userinput>add-apt-repository cloud-archive:icehouse</userinput></screen></para> <prompt>#</prompt> <userinput>add-apt-repository cloud-archive:icehouse</userinput></screen></para>
</step> </step>
<step> <step>
<para>Update the package database, upgrade your system, and reboot <para>Update the package database, upgrade your system, and reboot for
for all changes to take effect: all changes to take effect:
<screen><prompt>#</prompt> <userinput>apt-get update &amp;&amp; apt-get dist-upgrade</userinput> <screen><prompt>#</prompt> <userinput>apt-get update &amp;&amp; apt-get dist-upgrade</userinput>
<prompt>#</prompt> <userinput>reboot</userinput> </screen></para> <prompt>#</prompt> <userinput>reboot</userinput> </screen></para>
</step> </step>
</procedure> </procedure>
<procedure xml:id="debian-cloud-archive" os="debian"> <procedure xml:id="debian-cloud-archive" os="debian">
<title>To use the Debian Wheezy backports archive for <title>To use the Debian Wheezy backports archive for Icehouse</title>
Icehouse</title> <para>The <glossterm>Icehouse</glossterm> release is available only in
<para>The <glossterm>Icehouse</glossterm> release is available Debian Sid (otherwise called Unstable). However, the Debian maintainers
only in Debian Sid of OpenStack also maintain a non-official Debian repository for
(otherwise called Unstable). However, the Debian maintainers OpenStack containing Wheezy backports.</para>
of OpenStack also maintain a non-official Debian repository
for OpenStack containing Wheezy backports.</para>
<step> <step>
<para>Install the Debian Wheezy backport repository <para>Install the Debian Wheezy backport repository Icehouse:</para>
Icehouse:</para>
<screen><prompt>#</prompt> <userinput>echo "deb http://archive.gplhost.com/debian icehouse-backports main" >>/etc/apt/sources.list</userinput></screen> <screen><prompt>#</prompt> <userinput>echo "deb http://archive.gplhost.com/debian icehouse-backports main" >>/etc/apt/sources.list</userinput></screen>
</step> </step>
<step> <step>
@@ -596,53 +568,48 @@ character-set-server = utf8</programlisting>
<screen><prompt>#</prompt> <userinput>apt-get update &amp;&amp; apt-get install gplhost-archive-keyring</userinput></screen> <screen><prompt>#</prompt> <userinput>apt-get update &amp;&amp; apt-get install gplhost-archive-keyring</userinput></screen>
</step> </step>
<step> <step>
<para>Update the package database, upgrade your system, and reboot <para>Update the package database, upgrade your system, and reboot for
for all changes to take effect:</para> all changes to take effect:</para>
<screen><prompt>#</prompt> <userinput>apt-get update &amp;&amp; apt-get dist-upgrade</userinput> <screen><prompt>#</prompt> <userinput>apt-get update &amp;&amp; apt-get dist-upgrade</userinput>
<prompt>#</prompt> <userinput>reboot</userinput></screen> <prompt>#</prompt> <userinput>reboot</userinput></screen>
</step> </step>
</procedure> </procedure>
<para os="debian">Numerous archive.gplhost.com mirrors are <para os="debian">Numerous archive.gplhost.com mirrors are available around
available around the world. All are available with both FTP and the world. All are available with both FTP and HTTP protocols (you should
HTTP protocols (you should use the closest mirror). The list of use the closest mirror). The list of mirrors is available at <link
mirrors is available at <link
xlink:href="http://archive.gplhost.com/readme.mirrors" xlink:href="http://archive.gplhost.com/readme.mirrors"
>http://archive.gplhost.com/readme.mirrors</link>.</para> >http://archive.gplhost.com/readme.mirrors</link>.</para>
</section> </section>
<section xml:id="basics-argparse" os="debian"> <section xml:id="basics-argparse" os="debian">
<title>Manually install python-argparse</title> <title>Manually install python-argparse</title>
<para>The Debian OpenStack packages are maintained on Debian Sid <para>The Debian OpenStack packages are maintained on Debian Sid (also known
(also known as Debian Unstable) - the current development as Debian Unstable) - the current development version. Backported packages
version. Backported packages run correctly on Debian Wheezy with run correctly on Debian Wheezy with one caveat:</para>
one caveat:</para> <para>All OpenStack packages are written in Python. Wheezy uses Python 2.6
<para>All OpenStack packages are written in Python. Wheezy uses and 2.7, with Python 2.6 as the default interpreter; Sid has only Python
Python 2.6 and 2.7, with Python 2.6 as the default interpreter; 2.7. There is one packaging change between these two. In Python 2.6, you
Sid has only Python 2.7. There is one packaging change between installed the <package>python-argparse</package> package separately. In
these two. In Python 2.6, you installed the Python 2.7, this package is installed by default. Unfortunately, in Python
<package>python-argparse</package> package separately. In 2.7, this package does not include <code>Provides: python-argparse</code>
Python 2.7, this package is installed by default. Unfortunately, directive.</para>
in Python 2.7, this package does not include <code>Provides: <para>Because the packages are maintained in Sid where the <code>Provides:
python-argparse</code> directive.</para> python-argparse</code> directive causes an error, and the Debian
<para>Because the packages are maintained in Sid where the OpenStack maintainer wants to maintain one version of the OpenStack
<code>Provides: python-argparse</code> directive causes an packages, you must manually install the <package>python-argparse</package>
error, and the Debian OpenStack maintainer wants to maintain one on each OpenStack system that runs Debian Wheezy before you install the
version of the OpenStack packages, you must manually install the other OpenStack packages. Use the following command to install the
<package>python-argparse</package> on each OpenStack system
that runs Debian Wheezy before you install the other OpenStack
packages. Use the following command to install the
package:</para> package:</para>
<screen><prompt>#</prompt> <userinput>apt-get install python-argparse</userinput></screen> <screen><prompt>#</prompt> <userinput>apt-get install python-argparse</userinput></screen>
<para>This caveat applies to most OpenStack packages in <para>This caveat applies to most OpenStack packages in Wheezy.</para>
Wheezy.</para>
</section> </section>
<section xml:id="basics-queue"> <section xml:id="basics-queue">
<title>Messaging server</title> <title>Messaging server</title>
<para>On the controller node, install the messaging queue server. <para>On the controller node, install the messaging queue server. Typically
Typically this is <phrase os="ubuntu;debian;opensuse;sles" this is <phrase os="ubuntu;debian;opensuse;sles"
><glossterm>RabbitMQ</glossterm></phrase> ><glossterm>RabbitMQ</glossterm></phrase>
<phrase os="centos;rhel;fedora"> <phrase os="centos;rhel;fedora">
<glossterm>Qpid</glossterm></phrase> but <glossterm>Qpid</glossterm></phrase> but <phrase
<phrase os="ubuntu;debian;opensuse;sles"><glossterm>Qpid</glossterm></phrase> os="ubuntu;debian;opensuse;sles"><glossterm>Qpid</glossterm></phrase>
<phrase os="centos;rhel;fedora"><glossterm>RabbitMQ</glossterm></phrase> <phrase os="centos;rhel;fedora"><glossterm>RabbitMQ</glossterm></phrase>
and <glossterm>ZeroMQ</glossterm> (0MQ) are also available.</para> and <glossterm>ZeroMQ</glossterm> (0MQ) are also available.</para>
<screen os="ubuntu;debian"><prompt>#</prompt> <userinput>apt-get install rabbitmq-server</userinput></screen> <screen os="ubuntu;debian"><prompt>#</prompt> <userinput>apt-get install rabbitmq-server</userinput></screen>
@@ -650,48 +617,41 @@ character-set-server = utf8</programlisting>
<screen os="fedora;centos;rhel"><prompt>#</prompt> <userinput>yum install qpid-cpp-server</userinput></screen> <screen os="fedora;centos;rhel"><prompt>#</prompt> <userinput>yum install qpid-cpp-server</userinput></screen>
<note os="ubuntu;debian;opensuse;sles"> <note os="ubuntu;debian;opensuse;sles">
<title>Important security consideration</title> <title>Important security consideration</title>
<para>The <package>rabbitmq-server</package> package configures <para>The <package>rabbitmq-server</package> package configures the
the RabbitMQ service to start automatically and creates a RabbitMQ service to start automatically and creates a
<literal>guest</literal> user with a default <literal>guest</literal> user with a default <literal>guest</literal>
<literal>guest</literal> password. The RabbitMQ examples in password. The RabbitMQ examples in this guide use the
this guide use the <literal>guest</literal> account, though it <literal>guest</literal> account, though it is strongly advised to
is strongly advised to change its default password, especially change its default password, especially if you have IPv6 available: by
if you have IPv6 available: by default the RabbitMQ server default the RabbitMQ server enables anyone to connect to it by using
enables anyone to connect to it by using guest as login and guest as login and password, and with IPv6, it is reachable from the
password, and with IPv6, it is reachable from the
outside.</para> outside.</para>
<para>To change the default guest password of RabbitMQ:</para> <para>To change the default guest password of RabbitMQ:</para>
<screen><prompt>#</prompt> <userinput>rabbitmqctl change_password guest <replaceable>RABBIT_PASS</replaceable></userinput></screen> <screen><prompt>#</prompt> <userinput>rabbitmqctl change_password guest <replaceable>RABBIT_PASS</replaceable></userinput></screen>
</note> </note>
<para os="fedora;centos;rhel">Disable Qpid authentication by <para os="fedora;centos;rhel">Disable Qpid authentication by editing
editing <filename>/etc/qpidd.conf</filename> file and changing <filename>/etc/qpidd.conf</filename> file and changing the
the <literal>auth</literal> option to <literal>auth</literal> option to <literal>no</literal>.</para>
<literal>no</literal>.</para>
<screen os="fedora;centos;rhel"> <userinput>auth=no</userinput></screen> <screen os="fedora;centos;rhel"> <userinput>auth=no</userinput></screen>
<note os="fedora;centos;rhel"> <note os="fedora;centos;rhel">
<para> <para>To simplify configuration, the Qpid examples in this guide do not
To simplify configuration, the Qpid examples in this guide do not use use authentication. However, we strongly advise enabling authentication
authentication. However, we strongly advise enabling authentication for production deployments. For more information on securing Qpid refer
for production deployments. For more information on securing Qpid to the <link
refer to the xlink:href="http://qpid.apache.org/books/trunk/AMQP-Messaging-Broker-CPP-Book/html/chap-Messaging_User_Guide-Security.html"
<link xlink:href= >Qpid Documentation</link>.</para>
"http://qpid.apache.org/books/trunk/AMQP-Messaging-Broker-CPP-Book/html/chap-Messaging_User_Guide-Security.html" <para>After you enable Qpid authentication, you must update the
>Qpid Documentation</link>. configuration file of each OpenStack service to ensure that the
</para>
<para>
After you enable Qpid authentication, you must update the configuration
file of each OpenStack service to ensure that the
<literal>qpid_username</literal> and <literal>qpid_password</literal> <literal>qpid_username</literal> and <literal>qpid_password</literal>
configuration keys refer to a valid Qpid username and password, configuration keys refer to a valid Qpid username and password,
respectively. respectively.</para>
</para>
</note> </note>
<para os="fedora;centos;rhel">Start Qpid and set it to start <para os="fedora;centos;rhel">Start Qpid and set it to start automatically
automatically when the system boots.</para> when the system boots.</para>
<screen os="fedora;centos;rhel"><prompt>#</prompt> <userinput>service qpidd start</userinput> <screen os="fedora;centos;rhel"><prompt>#</prompt> <userinput>service qpidd start</userinput>
<prompt>#</prompt> <userinput>chkconfig qpidd on</userinput></screen> <prompt>#</prompt> <userinput>chkconfig qpidd on</userinput></screen>
<para os="opensuse;sles">Start the messaging service and set it to <para os="opensuse;sles">Start the messaging service and set it to start
start automatically when the system boots:</para> automatically when the system boots:</para>
<screen os="opensuse;sles"><prompt>#</prompt> <userinput>service rabbitmq-server start</userinput> <screen os="opensuse;sles"><prompt>#</prompt> <userinput>service rabbitmq-server start</userinput>
<prompt>#</prompt> <userinput>chkconfig rabbitmq-server on</userinput></screen> <prompt>#</prompt> <userinput>chkconfig rabbitmq-server on</userinput></screen>
<para>Congratulations, now you are ready to install OpenStack <para>Congratulations, now you are ready to install OpenStack

View File

@@ -133,12 +133,12 @@
x="110.25849" x="110.25849"
y="366.4686" y="366.4686"
id="tspan3074" id="tspan3074"
style="font-size:30px;text-align:center;text-anchor:middle">Cloud </tspan><tspan style="font-size:30px;text-align:center;text-anchor:middle">cloud</tspan><tspan
sodipodi:role="line" sodipodi:role="line"
x="105.4831" x="105.4831"
y="403.9686" y="403.9686"
id="tspan3080" id="tspan3080"
style="font-size:30px;text-align:center;text-anchor:middle">Controller</tspan></text> style="font-size:30px;text-align:center;text-anchor:middle">controller</tspan></text>
<text <text
xml:space="preserve" xml:space="preserve"
style="font-size:40px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" style="font-size:40px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
@@ -150,12 +150,12 @@
x="647.31293" x="647.31293"
y="370.42133" y="370.42133"
id="tspan3074-1" id="tspan3074-1"
style="font-size:30px;text-align:center;text-anchor:middle">Compute</tspan><tspan style="font-size:30px;text-align:center;text-anchor:middle">compute</tspan><tspan
sodipodi:role="line" sodipodi:role="line"
x="647.31293" x="647.31293"
y="407.92133" y="407.92133"
id="tspan3080-5" id="tspan3080-5"
style="font-size:30px;text-align:center;text-anchor:middle">Node</tspan></text> style="font-size:30px;text-align:center;text-anchor:middle">node</tspan></text>
<text <text
xml:space="preserve" xml:space="preserve"
style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

View File

@@ -0,0 +1,790 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.1"
viewBox="-12 -7 582 380"
width="582pt"
height="380pt"
id="svg2"
inkscape:version="0.48.2 r9819"
sodipodi:docname="networking-interactions-swift.svg">
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1593"
inkscape:window-height="944"
id="namedview250"
showgrid="false"
inkscape:zoom="1.2518949"
inkscape:cx="514.23319"
inkscape:cy="180.69728"
inkscape:window-x="65"
inkscape:window-y="38"
inkscape:window-maximized="0"
inkscape:current-layer="g39" />
<metadata
id="metadata4">
<dc:date>2014-03-28 03:35Z</dc:date>
<!-- Produced by OmniGraffle Professional 5.4.4 -->
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs6">
<filter
id="Shadow"
filterUnits="userSpaceOnUse">
<feGaussianBlur
in="SourceAlpha"
result="blur"
stdDeviation="3.488"
id="feGaussianBlur9" />
<feOffset
in="blur"
result="offset"
dx="0"
dy="4"
id="feOffset11" />
<feFlood
flood-color="black"
flood-opacity=".75"
result="flood"
id="feFlood13" />
<feComposite
in="flood"
in2="offset"
operator="in"
id="feComposite15" />
</filter>
<font-face
font-family="Helvetica"
font-size="12"
units-per-em="1000"
underline-position="-75.683594"
underline-thickness="49.316406"
slope="0"
x-height="522.94922"
cap-height="717.28516"
ascent="770.01953"
descent="-229.98047"
font-weight="500"
id="font-face17">
<font-face-src
id="font-face-src19">
<font-face-name
name="Helvetica"
id="font-face-name21" />
</font-face-src>
</font-face>
<font-face
font-family="Helvetica"
font-size="14"
units-per-em="1000"
underline-position="-75.683594"
underline-thickness="49.316406"
slope="0"
x-height="522.94922"
cap-height="717.28516"
ascent="770.01953"
descent="-229.98047"
font-weight="500"
id="font-face23">
<font-face-src
id="font-face-src25">
<font-face-name
name="Helvetica"
id="font-face-name27" />
</font-face-src>
</font-face>
<marker
orient="auto"
overflow="visible"
markerUnits="strokeWidth"
id="FilledArrow_Marker"
viewBox="-9 -4 10 8"
markerWidth="10"
markerHeight="8"
color="black">
<g
id="g30">
<path
d="M -8 0 L 0 3 L 0 -3 Z"
fill="currentColor"
stroke="currentColor"
stroke-width="1"
id="path32" />
</g>
</marker>
<marker
orient="auto"
overflow="visible"
markerUnits="strokeWidth"
id="FilledArrow_Marker_2"
viewBox="-1 -4 10 8"
markerWidth="10"
markerHeight="8"
color="black">
<g
id="g35">
<path
d="M 8 0 L 0 -3 L 0 3 Z"
fill="currentColor"
stroke="currentColor"
stroke-width="1"
id="path37" />
</g>
</marker>
</defs>
<g
stroke="none"
stroke-opacity="1"
stroke-dasharray="none"
fill="none"
fill-opacity="1"
id="g39">
<title
id="title41">Canvas 1</title>
<g
id="g49"
transform="translate(-5.7512816,-0.63903128)">
<g
transform="translate(-5.7512816,-0.63903128)"
id="use51"
style="filter:url(#Shadow)">
<rect
x="47.454109"
y="113.5"
width="140"
height="155"
id="rect3745"
style="stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round" />
</g>
<g
transform="translate(-5.7512816,-0.63903128)"
id="use53"
style="filter:url(#Shadow)">
<rect
x="56.454109"
y="120.5"
width="140"
height="155"
id="rect3741"
style="stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round" />
</g>
<g
transform="translate(-5.7512816,-0.63903128)"
id="use55"
style="filter:url(#Shadow)">
<rect
x="83"
y="145"
width="140"
height="155"
id="rect3753"
style="stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round" />
</g>
<g
transform="translate(-5.7512816,-0.63903128)"
id="use57"
style="filter:url(#Shadow)">
<rect
x="74"
y="136"
width="140"
height="155"
id="rect3757"
style="stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round" />
</g>
<g
transform="translate(-5.7512816,-0.63903128)"
id="use59"
style="filter:url(#Shadow)">
<rect
x="74"
y="136"
width="140"
height="155"
id="rect3749"
style="stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round" />
</g>
<g
transform="translate(-5.7512816,-0.63903128)"
id="use61"
style="filter:url(#Shadow)">
<rect
x="65"
y="127"
width="140"
height="155"
id="rect3737"
style="stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round" />
</g>
<use
height="380"
width="582"
y="0"
x="0"
style="filter:url(#Shadow)"
id="use63"
xlink:href="#id2959_Graphic"
transform="translate(-0.63903128,-30.03447)" />
<use
height="380"
width="582"
y="0"
x="0"
style="filter:url(#Shadow)"
id="use65"
xlink:href="#id2961_Graphic"
transform="translate(-0.63903128,-30.03447)" />
<use
height="380"
width="582"
y="0"
x="0"
style="filter:url(#Shadow)"
id="use67"
xlink:href="#id2998_Graphic" />
<use
height="380"
width="582"
y="0"
x="0"
style="filter:url(#Shadow)"
id="use69"
xlink:href="#id2991_Graphic"
transform="translate(-0.63903128,-30.03447)" />
<use
height="380"
width="582"
y="0"
x="0"
style="filter:url(#Shadow)"
id="use71"
xlink:href="#id2992_Graphic"
transform="translate(-0.63903128,-30.03447)" />
<use
height="380"
width="582"
y="0"
x="0"
style="filter:url(#Shadow)"
id="use73"
xlink:href="#id3007_Graphic"
transform="translate(-0.63903128,-0.31951564)" />
<use
height="380"
width="582"
y="0"
x="0"
style="filter:url(#Shadow)"
id="use75"
xlink:href="#id3008_Graphic"
transform="translate(-0.63903128,-30.03447)" />
</g>
<g
id="id2959_Graphic"
transform="translate(-5.1122503,29.395439)">
<rect
style="stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round"
id="rect96"
height="189"
width="142"
y="45"
x="8" />
</g>
<g
id="id2961_Graphic"
transform="translate(-5.1122503,29.395439)">
<rect
style="fill:#ffffff"
id="rect99"
height="33"
width="116.90818"
y="75"
x="22.091818" />
<rect
style="stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round"
id="rect101"
height="33"
width="116.90818"
y="75"
x="22.091818" />
<text
style="fill:#000000"
id="text103"
x="25.174723"
y="74.914536">
<tspan
style="font-size:9.60000038px;font-weight:500;font-family:Helvetica"
id="tspan105"
textLength="102.07617"
y="85.914536"
x="27.590729"
font-weight="500"
font-size="12">swift-container-server</tspan>
</text>
</g>
<text
style="fill:#000000"
id="text107"
x="27.841843"
y="85.395439">
<tspan
style="font-size:14px;font-weight:500;font-family:Helvetica"
id="tspan109"
textLength="91.06836"
y="99.395439"
x="27.841843"
font-weight="500"
font-size="14">Storage nodes</tspan>
</text>
<line
style="stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round"
id="line111"
y2="267.4903"
x2="394.80969"
y1="267.4903"
x1="351.60968" />
<text
style="fill:#000000"
id="text113"
x="418.24872"
y="258.36099">
<tspan
style="font-size:14px;font-weight:500;font-family:Helvetica"
id="tspan115"
textLength="38.13086"
y="272.36099"
x="418.24872"
font-weight="500"
font-size="14">Public</tspan>
</text>
<line
style="stroke:#ff0000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:8, 4, 1, 4"
id="line117"
y2="315.86096"
x2="395.44873"
y1="315.86096"
x1="352.24872" />
<text
style="fill:#000000"
id="text119"
x="418.24872"
y="307.86099">
<tspan
style="font-size:14px;font-weight:500;font-family:Helvetica"
id="tspan121"
textLength="131.5166"
y="321.86099"
x="418.24872"
font-weight="500"
font-size="14">Replication (optional)</tspan>
</text>
<line
style="stroke:#0033cc;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:8, 5"
id="line123"
y2="287.86096"
x2="396.44873"
y1="287.86096"
x1="351.24875" />
<text
style="fill:#000000"
id="text125"
x="418.24872"
y="279.36102">
<tspan
style="font-size:14px;font-weight:500;font-family:Helvetica"
id="tspan127"
textLength="104.268555"
y="293.36102"
x="418.24872"
font-weight="500"
font-size="14">Storage Network</tspan>
</text>
<rect
style="fill:#ffffff"
id="rect129"
height="40"
width="116.90818"
y="8.3609686"
x="199.99873" />
<rect
style="stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round"
id="rect131"
height="40"
width="116.90818"
y="8.3609686"
x="199.99873" />
<text
style="fill:#000000"
id="text133"
x="204.99873"
y="14.360969">
<tspan
style="font-size:12px;font-weight:500;font-family:Helvetica"
id="tspan135"
textLength="62.701172"
y="25.36097"
x="228.76923"
font-weight="500"
font-size="12">OpenStack</tspan>
<tspan
style="font-size:12px;font-weight:500;font-family:Helvetica"
id="tspan137"
textLength="58.705078"
y="39.36097"
x="229.10028"
font-weight="500"
font-size="12">Dashboard</tspan>
</text>
<rect
style="stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round"
id="rect141"
height="23.746155"
width="116.90818"
y="157.85469"
x="400.01553" />
<text
style="fill:#000000"
id="text143"
x="401.50085"
y="161.77165">
<tspan
style="font-size:11.19999981px;font-weight:500;font-family:Helvetica"
id="tspan145"
textLength="101.390625"
y="172.77165"
x="404.25964"
font-weight="500"
font-size="12">OpenStack Identity</tspan>
</text>
<g
id="id2998_Graphic"
transform="translate(-5.7512816,-0.63903128)">
<rect
style="fill:#ffffff"
id="rect148"
height="41"
width="116.90818"
y="308"
x="136.09181" />
<rect
style="stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round"
id="rect150"
height="41"
width="116.90818"
y="308"
x="136.09181" />
<text
style="fill:#000000"
id="text152"
transform="translate(141.09181,321.5)">
<tspan
style="font-size:12px;font-weight:500;font-family:Helvetica"
id="tspan154"
textLength="91.39453"
y="11"
x="7.7568254"
font-weight="500"
font-size="12">all storage nodes</tspan>
</text>
</g>
<text
style="fill:#000000"
id="text156"
x="348.24872"
y="236.86099">
<tspan
style="font-size:14px;font-weight:500;font-family:Helvetica"
id="tspan158"
textLength="58.344727"
y="250.86099"
x="348.24872"
font-weight="500"
font-size="14">Networks</tspan>
</text>
<rect
style="stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round"
id="rect160"
height="155"
width="140"
y="32.86097"
x="388.24872" />
<rect
style="fill:#ffffff"
id="rect162"
height="27"
width="116.90818"
y="93.36097"
x="400.74869" />
<rect
style="stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round"
id="rect164"
height="27"
width="116.90818"
y="93.36097"
x="400.74869" />
<text
style="fill:#000000"
id="text166"
x="402.55353"
y="100.18049">
<tspan
style="font-size:11.19999981px;font-weight:500;font-family:Helvetica"
id="tspan168"
textLength="98.683594"
y="111.18049"
x="406.66583"
font-weight="500"
font-size="12">swift-proxy-server</tspan>
</text>
<text
style="fill:#000000"
id="text170"
x="402.01978"
y="48.985329">
<tspan
style="font-size:14px;font-weight:500;font-family:Helvetica"
id="tspan172"
textLength="101.9375"
y="62.985329"
x="402.01978"
font-weight="500"
font-size="14">Cloud controller/</tspan>
<tspan
style="font-size:14px;font-weight:500;font-family:Helvetica"
id="tspan174"
textLength="78.572266"
y="79.985329"
x="402.01978"
font-weight="500"
font-size="14">Proxy server</tspan>
</text>
<text
style="fill:#ff0000"
id="text176"
x="151.24872"
y="218.36098">
<tspan
style="font-size:12px;font-weight:500;fill:#ff0000;font-family:Helvetica"
id="tspan178"
textLength="90.697266"
y="229.36098"
x="151.40009"
font-weight="500"
font-size="12">Networking inter-</tspan>
<tspan
style="font-size:12px;font-weight:500;fill:#ff0000;font-family:Helvetica"
id="tspan180"
textLength="86.70117"
y="243.36098"
x="153.39813"
font-weight="500"
font-size="12">communications</tspan>
</text>
<g
id="id2991_Graphic"
transform="translate(-5.1122503,29.395439)">
<rect
style="fill:#ffffff"
id="rect205"
height="33"
width="116.90818"
y="110"
x="22.091818" />
<rect
style="stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round"
id="rect207"
height="33"
width="116.90818"
y="110"
x="22.091818" />
<text
style="fill:#000000"
id="text209"
x="22.618599"
y="86.909409">
<tspan
style="font-size:9.60000038px;font-weight:500;font-family:Helvetica"
id="tspan211"
textLength="94.740234"
y="97.909409"
x="28.702574"
font-weight="500"
font-size="12">swift-account-server</tspan>
</text>
</g>
<g
id="id2992_Graphic"
transform="translate(-5.1122503,29.395439)">
<rect
style="fill:#ffffff"
id="rect214"
height="33"
width="116.90818"
y="145.5"
x="22.091818" />
<rect
style="stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round"
id="rect216"
height="33"
width="116.90818"
y="145.5"
x="22.091818" />
<text
style="fill:#000000"
id="text218"
x="0.25250414"
y="153.72192">
<tspan
style="font-size:9.60000038px;font-weight:500;font-family:Helvetica"
id="tspan220"
textLength="38.021484"
y="164.72192"
x="34.695854"
font-weight="500"
font-size="12">swift-object-server</tspan>
</text>
</g>
<line
style="stroke:#0033cc;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:7.99999999, 4.99999999"
id="line222"
y2="74.395447"
x2="144.80484"
y1="36.477646"
x1="199.5034" />
<line
style="stroke:#0033cc;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:8.0000001, 5.00000007"
id="line226"
y2="25.970657"
x2="318.05356"
y1="70.259567"
x1="387.81421" />
<g
id="id3007_Graphic"
transform="translate(-5.1122503,-0.31951564)">
<rect
style="fill:#ffffff"
id="rect231"
height="27"
width="116.90818"
y="127"
x="405.5459" />
<rect
style="stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round"
id="rect233"
height="27"
width="116.90818"
y="127"
x="405.5459" />
<text
style="fill:#000000"
id="text235"
x="407.35074"
y="133.5">
<tspan
style="font-size:11.19999981px;font-weight:500;font-family:Helvetica"
id="tspan237"
textLength="106.70508"
y="144.5"
x="407.4523"
font-weight="500"
font-size="12">memcached service</tspan>
</text>
</g>
<g
id="id3008_Graphic"
transform="translate(-5.1122503,29.395439)">
<rect
style="fill:#ffffff"
id="rect240"
height="33"
width="116.90818"
y="181"
x="22.091818" />
<rect
style="stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round"
id="rect242"
height="33"
width="116.90818"
y="181"
x="22.091818" />
<text
style="fill:#000000"
id="text244"
transform="translate(27.091818,190.5)">
<tspan
style="font-size:9.60000038px;font-weight:500;font-family:Helvetica"
id="tspan246"
textLength="28.669922"
y="11"
x="39.119129"
font-weight="500"
font-size="12">rsync</tspan>
</text>
</g>
<line
style="stroke:#ff0000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:8, 4, 1, 4"
id="line248"
y2="233.78802"
x2="131.04532"
y1="315.36096"
x1="180.71121" />
<text
xml:space="preserve"
style="font-size:32px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="230.19286"
y="67.543045"
id="text3701"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan3703"
x="230.19286"
y="67.543045"
style="font-size:11.19999981px">Tenant API</tspan></text>
<text
xml:space="preserve"
style="font-size:32px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="54.459255"
y="159.56354"
id="text3731"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan3733"
x="54.459255"
y="159.56354"
style="font-size:10.39999962px">SQLite</tspan></text>
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 410.5776,68.416345 499.24319,145.1001"
id="path3781"
inkscape:connector-curvature="0"
transform="matrix(0.8,0,0,0.8,-12,-7)" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 264.39919,69.215135 196.50212,145.89889"
id="path3783"
inkscape:connector-curvature="0"
transform="matrix(0.8,0,0,0.8,-12,-7)" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 59 KiB

After

Width:  |  Height:  |  Size: 75 KiB

View File

@@ -15,7 +15,7 @@
height="328.62103" height="328.62103"
id="svg19253" id="svg19253"
sodipodi:version="0.32" sodipodi:version="0.32"
inkscape:version="0.48.0 r9654" inkscape:version="0.48.2 r9819"
version="1.0" version="1.0"
sodipodi:docname="swift_install_arch.svg" sodipodi:docname="swift_install_arch.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape" inkscape:output_extension="org.inkscape.output.svg.inkscape"
@@ -10521,7 +10521,7 @@
inkscape:window-width="1526" inkscape:window-width="1526"
inkscape:window-height="867" inkscape:window-height="867"
inkscape:window-x="111" inkscape:window-x="111"
inkscape:window-y="17" inkscape:window-y="22"
inkscape:window-maximized="0" inkscape:window-maximized="0"
showguides="true" showguides="true"
inkscape:guide-bbox="true" inkscape:guide-bbox="true"
@@ -14172,7 +14172,7 @@
<path <path
inkscape:connector-curvature="0" inkscape:connector-curvature="0"
id="path5195" id="path5195"
d="m 372.55031,376.07607 179.37255,91.75094" d="m 485.72376,437.41435 66.1991,30.41265"
style="fill:none;stroke:#808080;stroke-width:4.24047613;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" style="fill:none;stroke:#808080;stroke-width:4.24047613;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
sodipodi:nodetypes="cc" /> sodipodi:nodetypes="cc" />
<path <path
@@ -14626,320 +14626,7 @@
height="20.734068" height="20.734068"
x="489.84235" x="489.84235"
y="102.9304" /></flowRegion><flowPara y="102.9304" /></flowRegion><flowPara
id="flowPara5191">Private Switch</flowPara></flowRoot> <flowRoot id="flowPara5191">Private Switch</flowPara></flowRoot> <g
xml:space="preserve"
id="flowRoot5197"
style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
transform="translate(232.71406,209.78539)"><flowRegion
id="flowRegion5199"><rect
id="rect5201"
width="122.67657"
height="14.686631"
x="97.622902"
y="106.38608" /></flowRegion><flowPara
id="flowPara5203">Auth node</flowPara></flowRoot> <g
style="display:inline;enable-background:new"
transform="matrix(0.56110858,0,0,0.56110858,-1055.2547,437.5501)"
id="g5242">
<g
transform="translate(2350.6149,-222.65428)"
id="g5244">
<g
transform="matrix(2.7721412,0,0,2.7721412,162.13246,32.470516)"
inkscape:label="Calque 1"
id="g5246">
<path
style="fill:#888888;fill-opacity:1;stroke:none"
d=""
id="path5248"
inkscape:connector-curvature="0" />
<path
style="fill:#888888;fill-opacity:1;stroke:none"
d=""
id="path5250"
inkscape:connector-curvature="0" />
<path
style="fill:#888888;fill-opacity:1;stroke:none"
d=""
id="path5252"
inkscape:connector-curvature="0" />
<g
id="g5254">
<path
style="fill:#888888;fill-opacity:1;fill-rule:evenodd;stroke:none"
d="M 2,11 22,1 42,11 22,21 2,11 z"
id="path5256"
inkscape:connector-curvature="0" />
<path
style="fill:#888888;fill-opacity:1;fill-rule:evenodd;stroke:none"
d="M 2,11 2,41 22,51 22,21 2,11 z"
id="path5258"
inkscape:connector-curvature="0" />
<path
style="fill:url(#linearGradient5343);fill-opacity:1;fill-rule:evenodd;stroke:none"
d="M 22,51 42,41 42,11 22,21 22,51 z"
id="path5260"
sodipodi:nodetypes="ccccc"
inkscape:connector-curvature="0" />
<path
sodipodi:nodetypes="ccccc"
id="path5262"
d="M 22,2.4375 18.875,4 22,5.5625 25.125,4 22,2.4375 z"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none"
inkscape:connector-curvature="0" />
<path
id="path5264"
d="m 26,4.4375 -0.21875,0.125 -2,1 L 22.875,6 l 0.90625,0.4375 2,1 0.21875,0.125 0.21875,-0.125 2,-1 L 29.125,6 28.21875,5.5625 l -2,-1 L 26,4.4375 z M 26,5.5625 26.90625,6 26,6.4375 25.09375,6 26,5.5625 z"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none"
inkscape:connector-curvature="0" />
<path
sodipodi:nodetypes="ccccc"
id="path5266"
d="M 30,6.4375 26.875,8 30,9.5625 33.125,8 30,6.4375 z"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none"
inkscape:connector-curvature="0" />
<path
id="path5268"
d="m 34,8.4375 -0.21875,0.125 -2,1 L 30.875,10 l 0.90625,0.4375 2,1 0.21875,0.125 0.21875,-0.125 2,-1 L 37.125,10 36.21875,9.5625 l -2,-1 L 34,8.4375 z M 34,9.5625 34.90625,10 34,10.4375 33.09375,10 34,9.5625 z"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none"
inkscape:connector-curvature="0" />
<path
sodipodi:nodetypes="ccccc"
id="path5270"
d="M 14,6.4375 10.875,8 14,9.5625 17.125,8 14,6.4375 z"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none"
inkscape:connector-curvature="0" />
<path
id="path5272"
d="m 18,4.4375 -0.21875,0.125 -2,1 L 14.875,6 l 0.90625,0.4375 2,1 0.21875,0.125 0.21875,-0.125 2,-1 L 21.125,6 20.21875,5.5625 l -2,-1 L 18,4.4375 z M 18,5.5625 18.90625,6 18,6.4375 17.09375,6 18,5.5625 z"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none"
inkscape:connector-curvature="0" />
<path
id="path5274"
d="m 10,8.4375 -0.21875,0.125 -2,1 L 6.875,10 l 0.90625,0.4375 2,1 0.21875,0.125 0.21875,-0.125 2,-1 L 13.125,10 12.21875,9.5625 l -2,-1 L 10,8.4375 z M 10,9.5625 10.90625,10 10,10.4375 9.09375,10 10,9.5625 z"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none"
inkscape:connector-curvature="0" />
<path
style="fill:url(#radialGradient5345);fill-opacity:1;fill-rule:evenodd;stroke:none"
d="m 11.95092,32.021472 8,4 0,9.000001 -8,-4 0,-9.000001 z"
id="path5276"
sodipodi:nodetypes="ccccc"
inkscape:connector-curvature="0" />
<path
id="path5278"
d="m 11.5,31.1875 0,0.8125 0,9 0,0.3125 0.28125,0.125 8,4 0.71875,0.375 0,-0.8125 0,-9 0,-0.3125 -0.28125,-0.125 -8,-4 L 11.5,31.1875 z m 1,1.625 7,3.5 0,7.875 -7,-3.5 0,-7.875 z"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none"
inkscape:connector-curvature="0" />
<path
id="path5280"
d="m 3.5,15.1875 0,0.8125 0,24 0,0.3125 0.28125,0.125 2,1 L 6.5,41.8125 6.5,41 l 0,-24 0,-0.3125 -0.28125,-0.125 -2,-1 L 3.5,15.1875 z m 1,1.625 1,0.5 0,22.875 -1,-0.5 0,-22.875 z"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none"
inkscape:connector-curvature="0" />
<path
sodipodi:nodetypes="ccccc"
id="path5282"
d="m 7,16.6875 0,25.125 3,1.5 0,-25.125 -3,-1.5 z"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none"
inkscape:connector-curvature="0" />
<path
id="path5284"
d="m 11.5,18.1875 0,0.8125 0,10 0,0.3125 0.28125,0.125 4,2 0.71875,0.375 0,-0.8125 0,-10 0,-0.3125 -0.28125,-0.125 -4,-2 L 11.5,18.1875 z m 1,1.625 3,1.5 0,8.875 -3,-1.5 0,-8.875 z"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none"
inkscape:connector-curvature="0" />
<path
id="path5286"
d="m 17.5,21.1875 0,0.8125 0,11 0,0.3125 0.28125,0.125 2,1 0.71875,0.375 0,-0.8125 0,-11 0,-0.3125 -0.28125,-0.125 -2,-1 L 17.5,21.1875 z m 1,1.625 1,0.5 0,9.875 -1,-0.5 0,-9.875 z"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none"
inkscape:connector-curvature="0" />
<path
id="path5288"
d="m 22,0.4375 -0.21875,0.125 -20,10 L 1.5,10.6875 1.5,11 l 0,30 0,0.3125 0.28125,0.125 20,10 0.21875,0.125 0.21875,-0.125 20,-10 0.28125,-0.125 0,-0.3125 0,-30 0,-0.3125 -0.28125,-0.125 -20,-10 L 22,0.4375 z m 0,1.125 19.5,9.75 0,29.375 -19.5,9.75 -19.5,-9.75 0,-29.375 19.5,-9.75 z"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none"
inkscape:connector-curvature="0" />
</g>
</g>
</g>
<g
id="g5290"
transform="matrix(0.7,-0.35,0,1,2334.3228,-284.85697)">
<rect
y="293.20496"
x="358.0549"
height="9.7841024"
width="9.7841024"
id="rect5292"
style="fill:#00ff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.21589765px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<rect
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.21589765px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
id="rect5294"
width="9.7841024"
height="9.7841024"
x="368.0549"
y="293.20496" />
<rect
y="293.20496"
x="378.0549"
height="9.7841024"
width="9.7841024"
id="rect5296"
style="fill:#0000ff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.21589765px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<rect
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.21589765px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
id="rect5298"
width="9.7841024"
height="9.7841024"
x="388.0549"
y="293.20496" />
<rect
y="293.20496"
x="398.0549"
height="9.7841024"
width="9.7841024"
id="rect5300"
style="fill:#ff00ff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.21589765px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<rect
style="fill:#ff00ff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.21589765px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
id="rect5302"
width="9.7841024"
height="9.7841024"
x="358.0549"
y="303.20496" />
<rect
y="303.20496"
x="368.0549"
height="9.7841024"
width="9.7841024"
id="rect5304"
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.21589765px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<rect
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.21589765px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
id="rect5306"
width="9.7841024"
height="9.7841024"
x="378.0549"
y="303.20496" />
<rect
y="303.20496"
x="388.0549"
height="9.7841024"
width="9.7841024"
id="rect5308"
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.21589765px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<rect
style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.21589765px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
id="rect5310"
width="9.7841024"
height="9.7841024"
x="398.0549"
y="303.20496" />
<rect
y="313.20496"
x="358.0549"
height="9.7841024"
width="9.7841024"
id="rect5312"
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.21589765px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<rect
style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.21589765px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
id="rect5314"
width="9.7841024"
height="9.7841024"
x="368.0549"
y="313.20496" />
<rect
y="313.20496"
x="378.0549"
height="9.7841024"
width="9.7841024"
id="rect5316"
style="fill:#00ff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.21589765px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<rect
style="fill:#0000ff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.21589765px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
id="rect5318"
width="9.7841024"
height="9.7841024"
x="388.0549"
y="313.20496" />
<rect
y="313.20496"
x="398.0549"
height="9.7841024"
width="9.7841024"
id="rect5320"
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.21589765px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<rect
style="fill:#00ff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.21589765px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
id="rect5322"
width="9.7841024"
height="9.7841024"
x="358.0549"
y="323.20496" />
<rect
y="323.20496"
x="368.0549"
height="9.7841024"
width="9.7841024"
id="rect5324"
style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.21589765px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<rect
style="fill:#ff00ff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.21589765px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
id="rect5326"
width="9.7841024"
height="9.7841024"
x="378.0549"
y="323.20496" />
<rect
y="323.20496"
x="388.0549"
height="9.7841024"
width="9.7841024"
id="rect5328"
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.21589765px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<rect
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.21589765px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
id="rect5330"
width="9.7841024"
height="9.7841024"
x="398.0549"
y="323.20496" />
<rect
y="333.20496"
x="358.0549"
height="9.7841024"
width="9.7841024"
id="rect5332"
style="fill:#0000ff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.21589765px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<rect
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.21589765px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
id="rect5334"
width="9.7841024"
height="9.7841024"
x="368.0549"
y="333.20496" />
<rect
y="333.20496"
x="378.0549"
height="9.7841024"
width="9.7841024"
id="rect5336"
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.21589765px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<rect
style="fill:#00ff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.21589765px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
id="rect5338"
width="9.7841024"
height="9.7841024"
x="388.0549"
y="333.20496" />
<rect
y="333.20496"
x="398.0549"
height="9.7841024"
width="9.7841024"
id="rect5340"
style="fill:#0000ff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.21589765px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
</g>
</g>
<g
id="g5397" id="g5397"
transform="matrix(0.56110858,0,0,0.56110858,-904.06879,523.94205)" transform="matrix(0.56110858,0,0,0.56110858,-904.06879,523.94205)"
style="display:inline;enable-background:new"> style="display:inline;enable-background:new">

Before

Width:  |  Height:  |  Size: 621 KiB

After

Width:  |  Height:  |  Size: 602 KiB

View File

@@ -10,11 +10,11 @@
Object Storage services.</para> Object Storage services.</para>
</listitem> </listitem>
<listitem> <listitem>
<para>Proxy node. Runs Proxy services.</para> <para>Proxy node. Runs proxy services.</para>
</listitem> </listitem>
<listitem> <listitem>
<para>Storage node. Runs Account, Container, and Object <para>Storage node. Runs account, container, and object
services.</para> services. Contains the SQLite databases.</para>
</listitem> </listitem>
<listitem> <listitem>
<para>Ring. A set of mappings between OpenStack Object <para>Ring. A set of mappings between OpenStack Object
@@ -28,6 +28,13 @@
<para>Zone. A logically separate section of the cluster, <para>Zone. A logically separate section of the cluster,
related to independent failure characteristics.</para> related to independent failure characteristics.</para>
</listitem> </listitem>
<listitem>
<para>Region (optional). A logically separate section of
the cluster, representing distinct physical locations
such as cities or countries. Similar to zones but
representing physical locations of portions of the
cluster rather than logical segments.</para>
</listitem>
</itemizedlist> </itemizedlist>
<para>To increase reliability and performance, you can add <para>To increase reliability and performance, you can add
additional proxy servers.</para> additional proxy servers.</para>
@@ -38,10 +45,10 @@
ring guarantees that every replica is stored in a separate ring guarantees that every replica is stored in a separate
zone. This diagram shows one possible configuration for a zone. This diagram shows one possible configuration for a
minimal installation:</para> minimal installation:</para>
<!-- we need to fix this diagram - the auth node isn't a thing anymore-->
<para><inlinemediaobject> <para><inlinemediaobject>
<imageobject> <imageobject>
<imagedata fileref="../figures/swift_install_arch.png" <imagedata
fileref="../figures/swift_install_arch.png"
/> />
</imageobject> </imageobject>
</inlinemediaobject></para> </inlinemediaobject></para>

View File

@@ -10,16 +10,16 @@
performance for the swift use case after considerable performance for the swift use case after considerable
testing and benchmarking at Rackspace. It is also the only testing and benchmarking at Rackspace. It is also the only
file system that has been thoroughly tested. See the <link file system that has been thoroughly tested. See the <link
xlink:href="http://docs.openstack.org/havana/config-reference/content/" xlink:href="http://docs.openstack.org/trunk/config-reference/content/"
><citetitle>OpenStack Configuration ><citetitle>OpenStack Configuration
Reference</citetitle></link> for additional Reference</citetitle></link> for additional
recommendations.</para> recommendations.</para>
</note> </note>
<procedure> <procedure>
<step> <step>
<para>Install Storage node packages:</para> <para>Install storage node packages:</para>
<para> <para>
<screen os="ubuntu"><prompt>#</prompt> <userinput>apt-get install swift-account swift-container swift-object xfsprogs</userinput></screen> <screen os="ubuntu"><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 \ <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 \

View File

@@ -12,7 +12,7 @@
suggested.</para> suggested.</para>
<para>This guide describes the following networks:<itemizedlist> <para>This guide describes the following networks:<itemizedlist>
<listitem> <listitem>
<para>A mandatory public network. Connects to the Proxy <para>A mandatory public network. Connects to the proxy
server.</para> server.</para>
</listitem> </listitem>
<listitem> <listitem>
@@ -22,11 +22,21 @@ the cluster. All nodes connect to this network.</para>
<listitem> <listitem>
<para>An optional replication network. Not accessible from <para>An optional replication network. Not accessible from
outside the cluster. Dedicated to replication traffic among outside the cluster. Dedicated to replication traffic among
Storage nodes. Must be configured in the Ring.</para> storage nodes. Must be configured in the Ring.</para>
</listitem> </listitem>
</itemizedlist></para> </itemizedlist></para>
<para>This figure shows the basic architecture for the public
network, the storage network, and the optional replication
network.</para>
<para><inlinemediaobject>
<imageobject>
<imagedata
fileref="../figures/networking-interactions-swift.png"
/>
</imageobject>
</inlinemediaobject></para>
<para>By default, all of the OpenStack Object Storage services, as <para>By default, all of the OpenStack Object Storage services, as
well as the rsync daemon on the Storage nodes, are configured to well as the rsync daemon on the storage nodes, are configured to
listen on their <literal>STORAGE_LOCAL_NET</literal> IP listen on their <literal>STORAGE_LOCAL_NET</literal> IP
addresses.</para> addresses.</para>
<para>If you configure a replication network in the Ring, the <para>If you configure a replication network in the Ring, the

View File

@@ -8,7 +8,7 @@
xmlns:xi="http://www.w3.org/2001/XInclude" xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"> xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0">
<?dbhtml-stop-chunking?> <?dbhtml-stop-chunking?>
<title>System requirements</title> <title>System requirements for Object Storage</title>
<para><emphasis role="bold">Hardware</emphasis>: OpenStack Object <para><emphasis role="bold">Hardware</emphasis>: OpenStack Object
Storage is designed to run on commodity hardware.</para> Storage is designed to run on commodity hardware.</para>
<note> <note>