Table of contents:

http://qpid.apache.org/images/header.png

Qpid Support

This page discusses how to use Apache Qpid as the messaging backend for Nova. Using Qpid with Nova would be in place of using RabbitMQ. Qpid support will be first introduced in the Essex release, assuming that this patch goes in.

Dependency Installation

For Nova to use Qpid, you must install a couple of things. You need Qpid's Python client library on any machine running Nova services. You also need at least one instance of the Qpid broker running somewhere.

Fedora

To install the Qpid Python client library:

    # yum install python-qpid

To install the Qpid broker:

    # yum install qpid-cpp-server

To start the Qpid broker:

    # systemctl start qpidd.service

To have the Qpid broker started at boot time:

    # chkconfig qpidd on

Ubuntu

Qpid has just recently made it into Ubuntu. It will be in Ubuntu Precise (12.4).

Nova Configuration

All of the options discussed in this section should be set in the /etc/nova/nova.conf file.

Options You Will Use

The current default for Nova (as of Diablo and Essex, at least) is to use the backend that utilizes RabbitMQ as the message broker. You must modify the Nova configuration to tell it to use the Qpid backend. To do this, add the following line to nova.conf:

    --rpc_backend=nova.rpc.impl_qpid

By default, the nova services will attempt to connect to the broker on localhost. If you would like to change the Qpid broker host, use the following option:

    --qpid_hostname=hostname.example.com

Options You Might Use

If the Qpid broker is listening on a port other than the AMQP default of 5672, you will need to set this option:

    --qpid_port=12345

If you configure the Qpid broker to require authentication, you will need to add a username and password to the configuration.

    --qpid_username=username

    --qpid_password=password

By default, TCP is used as the transport. If you would like to enable SSL, set the following option:

    --qpid_protocol=ssl

Options You Probably Won't Use

The following table lists options that are available but are less commonly used than the options discussed above.

Option

Default

Description

--qpid_sasl_mechanisms

A space separated list of acceptable SASL mechanisms to use for authentication.

--qpid_reconnect

True

Whether or not to enable automatic reconnections if a connection is lost. It would be silly to disable this.

--qpid_reconnect_timeout

0

Timeout for reconnections, in seconds.

--qpid_reconnect_limit

0

The limit for the number of times to reconnect before considering the connection to be failed.

--qpid_reconnect_interval_min

0

Minimum number of seconds between connection attempts.

--qpid_reconnect_interval_max

0

Maximum number of seconds between connection attempts.

--qpid_reconnect_interval

0

Equivalent to setting --qpid_reconnect_interval_min and --qpid_reconnect_interval_max to the same value.

--qpid_heartbeat

5

Seconds between heartbeat messages sent to ensure that the connection is still alive.

--qpid_tcp_nodelay

True

Disable Nagle algorithm.

Wiki: QpidSupport (last edited 2012-01-18 18:05:24 by russellb)