Atom feed of this document
 

 Configuring the Oslo RPC Messaging System

OpenStack projects use an open standard for messaging middleware known as AMQP. This messaging middleware enables the OpenStack services which will exist across multiple servers to talk to each other. OpenStack Oslo RPC supports two implementations of AMQP: RabbitMQ and Qpid.

 Configuration for RabbitMQ

OpenStack Oslo RPC uses RabbitMQ by default. This section discusses the configuration options that are relevant when RabbitMQ is used. The rpc_backend option is not required as long as RabbitMQ is the default messaging system. However, if it is included the configuration, it must be set to nova.rpc.impl_kombu.

rpc_backend=nova.rpc.impl_kombu
      

The following tables describe the rest of the options that can be used when RabbitMQ 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. If you want to monitor notifications through RabbitMQ, you must set the notification_driver option in nova.conf to nova.notifier.rabbit_notifier. The default for sending usage data is 60 seconds plus a randomized 0-60 seconds.

Table 4.12. Description of configuration options for rabbitmq
Configuration option=Default value (Type) Description
rabbit_durable_queues=False (BoolOpt)use durable queues in RabbitMQ
rabbit_ha_queues=False (BoolOpt)use H/A queues in RabbitMQ (x-ha-policy: all).You need to wipe RabbitMQ database when changing this option.
rabbit_host=localhost (StrOpt)The RabbitMQ broker address where a single node is used
rabbit_hosts=['$rabbit_host:$rabbit_port'] (ListOpt)RabbitMQ HA cluster host:port pairs
rabbit_max_retries=0 (IntOpt)maximum retries with trying to connect to RabbitMQ (the default of 0 implies an infinite retry count)
rabbit_password=guest (StrOpt)the RabbitMQ password
rabbit_port=5672 (IntOpt)The RabbitMQ broker port where a single node is used
rabbit_retry_backoff=2 (IntOpt)how long to backoff for between retries when connecting to RabbitMQ
rabbit_retry_interval=1 (IntOpt)how frequently to retry connecting with RabbitMQ
rabbit_use_ssl=False (BoolOpt)connect over SSL for RabbitMQ
rabbit_userid=guest (StrOpt)the RabbitMQ userid
rabbit_virtual_host=/ (StrOpt)the RabbitMQ virtual host

Table 4.13. Description of configuration options for kombu
Configuration option=Default value (Type) Description
kombu_ssl_ca_certs= (StrOpt)SSL certification authority file (valid only if SSL enabled)
kombu_ssl_certfile= (StrOpt)SSL cert file (valid only if SSL enabled)
kombu_ssl_keyfile= (StrOpt)SSL key file (valid only if SSL enabled)
kombu_ssl_version= (StrOpt)SSL version to use (valid only if SSL enabled)

 Configuration for Qpid

This section discusses the configuration options that are relevant if Qpid is used as the messaging system for OpenStack Oslo RPC. Qpid is not the default messaging system, so it must be enabled by setting the rpc_backend option in nova.conf.

rpc_backend=nova.rpc.impl_qpid
      

This next critical option points the compute nodes to the Qpid broker (server). Set qpid_hostname in nova.conf to be the hostname where the broker is running.

[Note]Note

The --qpid_hostname option accepts a value in the form of either a hostname or an IP address.

qpid_hostname=hostname.example.com
      

If the Qpid broker is listening on a port other than the AMQP default of 5672, you will need to set the qpid_port 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 qpid_protocol option:

qpid_protocol=ssl
      

The following table lists the rest of the options used by the Qpid messaging driver for OpenStack Oslo RPC. It is not common that these options are used.

Table 4.14. Description of configuration options for qpid
Configuration option=Default value (Type) Description
qpid_heartbeat=60 (IntOpt)Seconds between connection keepalive heartbeats
qpid_hostname=localhost (StrOpt)Qpid broker hostname
qpid_hosts=['$qpid_hostname:$qpid_port'] (ListOpt)Qpid HA cluster host:port pairs
qpid_password= (StrOpt)Password for qpid connection
qpid_port=5672 (IntOpt)Qpid broker port
qpid_protocol=tcp (StrOpt)Transport to use, either 'tcp' or 'ssl'
qpid_sasl_mechanisms= (StrOpt)Space separated list of SASL mechanisms to use for auth
qpid_tcp_nodelay=True (BoolOpt)Disable Nagle algorithm
qpid_username= (StrOpt)Username for qpid connection

 Common Configuration for Messaging

This section lists options that are common between both the RabbitMQ and Qpid messaging drivers.

Table 4.15. Description of configuration options for rpc
Configuration option=Default value (Type) Description
amqp_rpc_single_reply_queue=False (BoolOpt)Enable a fast single reply queue if using AMQP based RPC like RabbitMQ or Qpid.
control_exchange=openstack (StrOpt)AMQP exchange to connect to if using RabbitMQ or Qpid
matchmaker_heartbeat_freq=300 (IntOpt)Heartbeat frequency
matchmaker_heartbeat_ttl=600 (IntOpt)Heartbeat time-to-live.
matchmaker_ringfile=/etc/nova/matchmaker_ring.json (StrOpt)Matchmaker ring file (JSON)
rpc_backend=nova.openstack.common.rpc.impl_kombu (StrOpt)The messaging module to use, defaults to kombu.
rpc_cast_timeout=30 (IntOpt)Seconds to wait before a cast expires (TTL). Only supported by impl_zmq.
rpc_conn_pool_size=30 (IntOpt)Size of RPC connection pool
rpc_driver_queue_base=cells.intercell (StrOpt)Base queue name to use when communicating between cells. Various topics by message type will be appended to this.
rpc_response_timeout=60 (IntOpt)Seconds to wait for a response from call or multicall
rpc_thread_pool_size=64 (IntOpt)Size of RPC thread pool

Log a bug against this page


loading table of contents...