Include Qpid in messaging configuration section.

Update the section that discussed configuration related to RabbitMQ to
also include the configuration required if Qpid is used instead.

Change-Id: Ibfbdcbd9787baf121dbcb9563b3b28df6ced9f1d
This commit is contained in:
Russell Bryant 2012-03-03 11:14:34 -05:00
parent 4fe8df8ccb
commit 47101ece43

@ -21,7 +21,7 @@
<para>Most configuration information is available in the nova.conf flag
file. Here are some general purpose flags that you can use to learn more
about the flag file and the node. The configuration file nova.conf is
typically stored in /etc/nova/nova.conf. </para>
typically stored in /etc/nova/nova.conf.</para>
<para>You can use a particular flag file by using the --flagfile
(nova.conf) parameter when running one of the nova- services. This inserts
@ -421,7 +421,7 @@
installation and configuration steps. The --libvirt_type flag indicates
which hypervisor will be used. Refer <xref
linkend="hypervisor-configuration-basics">
Hypervisor configuration basics
Hypervisor configuration basics
</xref> for more details.</para>
</section>
@ -1224,174 +1224,347 @@ ps -ef | grep libvirt</literallayout>
<title>Configuring the Compute Messaging System</title>
<para>OpenStack Compute uses an open standard for messaging middleware
known as AMQP. RabbitMQ enables this messaging system so that nova-
services can talk to each other. You can configure the messaging
communication for different installation scenarios as well as tune
RabbitMQ's retries and the size of the RPC thread pool.</para>
known as AMQP. This messaging middleware enables the OpenStack compute
services which will exist across multiple servers to talk to each other.
OpenStack Compute supports two implementations of AMQP:
<application>RabbitMQ</application> and
<application>Qpid</application>.</para>
<table rules="all">
<caption>Description of nova.conf flags for Remote Procedure Calls and
RabbitMQ Messaging</caption>
<section>
<title>Configuration for RabbitMQ</title>
<thead>
<tr>
<td>Flag</td>
<para>OpenStack Compute uses <application>RabbitMQ</application> by
default. This section discusses the configuration options that are
relevant when <application>RabbitMQ</application> is used. The
<literal>--rpc_backend</literal> option is not required as long as
<application>RabbitMQ</application> is the default messaging system.
However, if it is included the configuration, it must be set to
<literal>nova.rpc.impl_kombu</literal>.</para>
<td>Default</td>
<programlisting>--rpc_backend=nova.rpc.impl_kombu</programlisting>
<td>Description</td>
</tr>
</thead>
<para>The following tables describe the rest of the options that can be
used when <application>RabbitMQ</application> is used as the messaging
system. You can configure the messaging communication for different
installation scenarios as well as tune RabbitMQ's retries and the size
of the RPC thread pool.</para>
<tbody>
<tr>
<td>--rabbit_host</td>
<table rules="all">
<caption>Description of <filename>nova.conf</filename> flags for
Remote Procedure Calls and RabbitMQ Messaging</caption>
<td>default: 'localhost'</td>
<thead>
<tr>
<td>Flag</td>
<td>IP address; Location of RabbitMQ installation.</td>
</tr>
<td>Default</td>
<tr>
<td>--rabbit_password</td>
<td>Description</td>
</tr>
</thead>
<td>default: 'guest'</td>
<tbody>
<tr>
<td><literal>--rabbit_host</literal></td>
<td>String value; Password for the RabbitMQ server.</td>
</tr>
<td><literal>localhost</literal></td>
<tr>
<td>--rabbit_port</td>
<td>IP address; Location of <application>RabbitMQ</application>
installation.</td>
</tr>
<td>default: '5672'</td>
<tr>
<td><literal>--rabbit_password</literal></td>
<td>Integer value; Port where RabbitMQ server is
running/listening.</td>
</tr>
<td><literal>guest</literal></td>
<tr>
<td>--rabbit_userid</td>
<td>String value; Password for the
<application>RabbitMQ</application> server.</td>
</tr>
<td>default: 'guest'</td>
<tr>
<td><literal>--rabbit_port</literal></td>
<td>String value; User ID used for Rabbit connections.</td>
</tr>
<td><literal>5672</literal></td>
<tr>
<td>--rabbit_virtual_host</td>
<td>Integer value; Port where <application>RabbitMQ</application>
server is running/listening.</td>
</tr>
<td>default: '/'</td>
<tr>
<td><literal>--rabbit_userid</literal></td>
<td>Location of a virtual RabbitMQ installation.</td>
</tr>
</tbody>
</table>
<td><literal>guest</literal></td>
<table rules="all">
<caption>Description of nova.conf flags for Tuning RabbitMQ
Messaging</caption>
<td>String value; User ID used for
<application>RabbitMQ</application> connections.</td>
</tr>
<thead>
<tr>
<td>Flag</td>
<tr>
<td><literal>--rabbit_virtual_host</literal></td>
<td>Default</td>
<td><literal>/</literal></td>
<td>Description</td>
</tr>
</thead>
<td>Location of a virtual <application>RabbitMQ</application>
installation.</td>
</tr>
</tbody>
</table>
<tbody>
<tr>
<td>--rabbit_max_retries</td>
<table rules="all">
<caption>Description of <filename>nova.conf</filename> flags for
Tuning RabbitMQ Messaging</caption>
<td>default: '12'</td>
<thead>
<tr>
<td>Flag</td>
<td>Integer value; RabbitMQ connection attempts.</td>
</tr>
<td>Default</td>
<tr>
<td>--rabbit-retry-interval</td>
<td>Description</td>
</tr>
</thead>
<td>default: '10'</td>
<tbody>
<tr>
<td>-<literal>-rabbit_max_retries</literal></td>
<td>Integer value: RabbitMQ connection retry interval.</td>
</tr>
<td><literal>12</literal></td>
<tr>
<td>--rpc_thread_pool_size</td>
<td>Integer value; <application>RabbitMQ</application> connection
attempts.</td>
</tr>
<td>default: '1024'</td>
<tr>
<td><literal>--rabbit-retry-interval</literal></td>
<td>Integer value: Size of Remote Procedure Call thread pool.</td>
</tr>
</tbody>
</table>
<td><literal>10</literal></td>
<table rules="all">
<caption>Description of nova.conf flags for Customizing Exchange or
Topic Names</caption>
<td>Integer value: <application>RabbitMQ</application> connection
retry interval.</td>
</tr>
<thead>
<tr>
<td>Flag</td>
<tr>
<td><literal>--rpc_thread_pool_size</literal></td>
<td>Default</td>
<td><literal>1024</literal></td>
<td>Description</td>
</tr>
</thead>
<td>Integer value: Size of Remote Procedure Call thread pool.</td>
</tr>
</tbody>
</table>
</section>
<tbody>
<tr>
<td>--control_exchange</td>
<section>
<title>Configuration for Qpid</title>
<td>default:nova</td>
<para>This section discusses the configuration options that are relevant
if <application>Qpid</application> is used as the messaging system for
OpenStack Compute. <application>Qpid</application> is not the default
messaging system, so it must be enabled by setting the
<literal>--rpc_backend</literal> option in
<filename>nova.conf</filename>.</para>
<td>String value; Name of the main exchange to connect to</td>
</tr>
<programlisting>--rpc_backend=nova.rpc.impl_qpid</programlisting>
<tr>
<td>--ajax_console_proxy_topic</td>
<para>This next critical option points the compute nodes to the
<application>Qpid</application> broker (server). Set
<literal>--qpid_hostname</literal> in <filename>nova.conf</filename> to
be the hostname where the broker is running.</para>
<td>default: 'ajax_proxy'</td>
<note>
<para>The -<literal>-qpid_hostname</literal> option accepts a value in
the form of either a hostname or an IP address.</para>
</note>
<td>String value; Topic that the ajax proxy nodes listen on</td>
</tr>
<programlisting>--qpid_hostname=hostname.example.com</programlisting>
<tr>
<td>--console_topic</td>
<para>If the <application>Qpid</application> broker is listening on a
port other than the AMQP default of <literal>5672</literal>, you will
need to set the <literal>--qpid_port</literal> option:</para>
<td>default: 'console'</td>
<programlisting>--qpid_port=12345</programlisting>
<td>String value; The topic console proxy nodes listen on</td>
</tr>
<para>If you configure the <application>Qpid</application> broker to
require authentication, you will need to add a username and password to
the configuration:</para>
<tr>
<td>--network_topic</td>
<programlisting>--qpid_username=username
--qpid_password=password</programlisting>
<td>default: 'network'</td>
<para>By default, TCP is used as the transport. If you would like to
enable SSL, set the <literal>--qpid_protocol</literal> option:</para>
<td>String value; The topic network nodes listen on.</td>
</tr>
<programlisting>--qpid_protocol=ssl</programlisting>
<tr>
<td>--scheduler_topic</td>
<para>The following table lists the rest of the options used by the Qpid
messaging driver for OpenStack Compute. It is not common that these
options are used.</para>
<td>default: 'scheduler'</td>
<table rules="all">
<caption>Remaining <filename>nova.conf</filename> flags for Qpid
support</caption>
<td>String value; The topic scheduler nodes listen on.</td>
</tr>
<thead>
<tr>
<td>Flag</td>
<tr>
<td>--volume_topic</td>
<td>Default</td>
<td>default: 'volume'</td>
<td>Description</td>
</tr>
</thead>
<td>String value; Name of the topic that volume nodes listen on</td>
</tr>
</tbody>
</table>
<tbody>
<tr>
<td><literal>--qpid_sasl_mechanisms</literal></td>
<td><literal>(Qpid default)</literal></td>
<td>String value: A space separated list of acceptable SASL
mechanisms to use for authentication.</td>
</tr>
<tr>
<td><literal>--qpid_reconnect_timeout</literal></td>
<td><literal>(Qpid default)</literal></td>
<td>Integer value: The number of seconds to wait before deciding
that a reconnect attempt has failed.</td>
</tr>
<tr>
<td><literal>--qpid_reconnect_limit</literal></td>
<td><literal>(Qpid default)</literal></td>
<td>Integer value: The limit for the number of times to reconnect
before considering the connection to be failed.</td>
</tr>
<tr>
<td><literal>--qpid_reconnect_interval_min</literal></td>
<td><literal>(Qpid default)</literal></td>
<td>Integer value: Minimum number of seconds between connection
attempts.</td>
</tr>
<tr>
<td><literal>--qpid_reconnect_interval_max</literal></td>
<td><literal>(Qpid default)</literal></td>
<td>Integer value: Maximum number of seconds between connection
attempts.</td>
</tr>
<tr>
<td><literal>--qpid_reconnect_interval</literal></td>
<td><literal>(Qpid default)</literal></td>
<td>Integer value: Equivalent to setting
<literal>--qpid_reconnect_interval_min</literal> and
<literal>--qpid_reconnect_interval_max</literal> to the same
value.</td>
</tr>
<tr>
<td><literal>--qpid_heartbeat</literal></td>
<td><literal>5</literal></td>
<td>Integer value: Seconds between heartbeat messages sent to
ensure that the connection is still alive.</td>
</tr>
<tr>
<td><literal>--qpid_tcp_nodelay</literal></td>
<td><literal>True</literal></td>
<td>Boolean value: Disable the Nagle algorithm.</td>
</tr>
</tbody>
</table>
</section>
<section>
<title>Common Configuration</title>
<para>This section lists options that are common between both the
<application>RabbitMQ</application> and <application>Qpid</application>
messaging drivers.</para>
<table rules="all">
<caption>Description of <filename>nova.conf</filename> flags for
Customizing Exchange or Topic Names</caption>
<thead>
<tr>
<td>Flag</td>
<td>Default</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td><literal>--control_exchange</literal></td>
<td><literal>nova</literal></td>
<td>String value; Name of the main exchange to connect to</td>
</tr>
<tr>
<td><literal>--ajax_console_proxy_topic</literal></td>
<td><literal>ajax_proxy</literal></td>
<td>String value; Topic that the ajax proxy nodes listen on</td>
</tr>
<tr>
<td><literal>--console_topic</literal></td>
<td><literal>console</literal></td>
<td>String value; The topic console proxy nodes listen on</td>
</tr>
<tr>
<td><literal>--network_topic</literal></td>
<td><literal>network</literal></td>
<td>String value; The topic network nodes listen on.</td>
</tr>
<tr>
<td><literal>--scheduler_topic</literal></td>
<td><literal>scheduler</literal></td>
<td>String value; The topic scheduler nodes listen on.</td>
</tr>
<tr>
<td><literal>--volume_topic</literal></td>
<td><literal>volume</literal></td>
<td>String value; Name of the topic that volume nodes listen
on</td>
</tr>
</tbody>
</table>
</section>
</section>
<section xml:id="configuring-compute-rate-limiting">