Liberty -  Liberty -  Liberty -  Liberty -  Liberty -  Liberty -  Liberty -  Liberty - 

 Configure the RPC messaging system

OpenStack projects use an open standard for messaging middleware known as AMQP. This messaging middleware enables the OpenStack services that run on multiple servers to talk to each other. OpenStack Oslo RPC supports three implementations of AMQP: RabbitMQ, Qpid, and ZeroMQ.

 Configure RabbitMQ

OpenStack Oslo RPC uses RabbitMQ by default. Use these options to configure the RabbitMQ message system. The rpc_backend option is optional as long as RabbitMQ is the default messaging system. However, if it is included in the configuration, you must set it to heat.openstack.common.rpc.impl_kombu.

rpc_backend = heat.openstack.common.rpc.impl_kombu

Use these options to configure the RabbitMQ messaging system. You can configure messaging communication for different installation scenarios, tune retries for RabbitMQ, and define the size of the RPC thread pool. To monitor notifications through RabbitMQ, you must set the notification_driver option to heat.openstack.common.notifier.rpc_notifier in the heat.conf file:

Table 12.29. Description of RabbitMQ configuration options
Configuration option = Default value Description
[oslo_messaging_rabbit]
amqp_auto_delete = False (BoolOpt) Auto-delete queues in AMQP.
amqp_durable_queues = False (BoolOpt) Use durable queues in AMQP.
fake_rabbit = False (BoolOpt) Deprecated, use rpc_backend=kombu+memory or rpc_backend=fake
heartbeat_rate = 2 (IntOpt) How often times during the heartbeat_timeout_threshold we check the heartbeat.
heartbeat_timeout_threshold = 60 (IntOpt) Number of seconds after which the Rabbit broker is considered down if heartbeat's keep-alive fails (0 disable the heartbeat). EXPERIMENTAL
kombu_reconnect_delay = 1.0 (FloatOpt) How long to wait before reconnecting in response to an AMQP consumer cancel notification.
kombu_reconnect_timeout = 60 (IntOpt) How long to wait before considering a reconnect attempt to have failed. This value should not be longer than rpc_response_timeout.
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). Valid values are TLSv1 and SSLv23. SSLv2, SSLv3, TLSv1_1, and TLSv1_2 may be available on some distributions.
rabbit_ha_queues = False (BoolOpt) Use HA queues in RabbitMQ (x-ha-policy: all). If you change this option, you must wipe the RabbitMQ database.
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_login_method = AMQPLAIN (StrOpt) The RabbitMQ login method.
rabbit_max_retries = 0 (IntOpt) Maximum number of RabbitMQ connection retries. Default is 0 (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.
send_single_reply = False (BoolOpt) Send a single AMQP reply to call message. The current behaviour since oslo-incubator is to send two AMQP replies - first one with the payload, a second one to ensure the other have finish to send the payload. We are going to remove it in the N release, but we must keep backward compatible at the same time. This option provides such compatibility - it defaults to False in Liberty and can be turned on for early adopters with a new installations or for testing. Please note, that this option will be removed in the Mitaka release.

 Configure Qpid

Use these options to configure the Qpid messaging system for OpenStack Oslo RPC. Qpid is not the default messaging system, so you must enable it by setting the rpc_backend option in the heat.conf file:

rpc_backend=heat.openstack.common.rpc.impl_qpid

This critical option points the compute nodes to the Qpid broker (server). Set the qpid_hostname option to the host name where the broker runs in the heat.conf file.

[Note]Note

The qpid_hostname option accepts a host name or IP address value.

qpid_hostname = hostname.example.com

If the Qpid broker listens on a port other than the AMQP default of 5672, you must set the qpid_port option to that value:

qpid_port = 12345

If you configure the Qpid broker to require authentication, you must add a user name and password to the configuration:

qpid_username = username
qpid_password = password

By default, TCP is used as the transport. To enable SSL, set the qpid_protocol option:

qpid_protocol = ssl

Use these additional options to configure the Qpid messaging driver for OpenStack Oslo RPC. These options are used infrequently.

Table 12.30. Description of Qpid configuration options
Configuration option = Default value Description
[oslo_messaging_qpid]
amqp_auto_delete = False (BoolOpt) Auto-delete queues in AMQP.
amqp_durable_queues = False (BoolOpt) Use durable queues in AMQP.
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_receiver_capacity = 1 (IntOpt) The number of prefetched messages held by receiver.
qpid_sasl_mechanisms = (StrOpt) Space separated list of SASL mechanisms to use for auth.
qpid_tcp_nodelay = True (BoolOpt) Whether to disable the Nagle algorithm.
qpid_topology_version = 1 (IntOpt) The qpid topology version to use. Version 1 is what was originally used by impl_qpid. Version 2 includes some backwards-incompatible changes that allow broker federation to work. Users should update to version 2 when they are able to take everything down, as it requires a clean break.
qpid_username = (StrOpt) Username for Qpid connection.
send_single_reply = False (BoolOpt) Send a single AMQP reply to call message. The current behaviour since oslo-incubator is to send two AMQP replies - first one with the payload, a second one to ensure the other have finish to send the payload. We are going to remove it in the N release, but we must keep backward compatible at the same time. This option provides such compatibility - it defaults to False in Liberty and can be turned on for early adopters with a new installations or for testing. Please note, that this option will be removed in the Mitaka release.

 Configure ZeroMQ

Use these options to configure the ZeroMQ messaging system for OpenStack Oslo RPC. ZeroMQ is not the default messaging system, so you must enable it by setting the rpc_backend option in the heat.conf file:

Table 12.31. Description of ZeroMQ configuration options
Configuration option = Default value Description
[DEFAULT]
rpc_zmq_all_req_rep = True (BoolOpt) Use REQ/REP pattern for all methods CALL/CAST/FANOUT.
rpc_zmq_bind_address = * (StrOpt) ZeroMQ bind address. Should be a wildcard (*), an ethernet interface, or IP. The "host" option should point or resolve to this address.
rpc_zmq_concurrency = eventlet (StrOpt) Type of concurrency used. Either "native" or "eventlet"
rpc_zmq_contexts = 1 (IntOpt) Number of ZeroMQ contexts, defaults to 1.
rpc_zmq_host = localhost (StrOpt) Name of this node. Must be a valid hostname, FQDN, or IP address. Must match "host" option, if running Nova.
rpc_zmq_ipc_dir = /var/run/openstack (StrOpt) Directory for holding IPC sockets.
rpc_zmq_matchmaker = redis (StrOpt) MatchMaker driver.
rpc_zmq_topic_backlog = None (IntOpt) Maximum number of ingress messages to locally buffer per topic. Default is unlimited.
zmq_use_broker = True (BoolOpt) Shows whether zmq-messaging uses broker or not.

 Configure messaging

Use these common options to configure the RabbitMQ, Qpid, and ZeroMq messaging drivers:

Table 12.32. Description of AMQP configuration options
Configuration option = Default value Description
[DEFAULT]
control_exchange = openstack (StrOpt) The default exchange under which topics are scoped. May be overridden by an exchange name specified in the transport_url option.
default_notification_level = INFO (StrOpt) Default notification level for outgoing notifications.
default_publisher_id = None (StrOpt) Default publisher_id for outgoing notifications.
notification_driver = [] (MultiStrOpt) The Drivers(s) to handle sending notifications. Possible values are messaging, messagingv2, routing, log, test, noop
notification_topics = notifications (ListOpt) AMQP topic used for OpenStack notifications.
transport_url = None (StrOpt) A URL representing the messaging driver to use and its full configuration. If not set, we fall back to the rpc_backend option and driver specific configuration.

Table 12.33. Description of RPC configuration options
Configuration option = Default value Description
[DEFAULT]
engine_life_check_timeout = 2 (IntOpt) RPC timeout for the engine liveness check that is used for stack locking.
rpc_backend = rabbit (StrOpt) The messaging driver to use, defaults to rabbit. Other drivers include qpid and zmq.
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_poll_timeout = 1 (IntOpt) The default number of seconds that poll should wait. Poll raises timeout exception when timeout expired.
rpc_response_timeout = 60 (IntOpt) Seconds to wait for a response from a call.
[oslo_concurrency]
disable_process_locking = False (BoolOpt) Enables or disables inter-process locks.
lock_path = None (StrOpt) Directory to use for lock files. For security, the specified directory should only be writable by the user running the processes that need locking. Defaults to environment variable OSLO_LOCK_PATH. If external locks are used, a lock path must be set.
[oslo_messaging_amqp]
allow_insecure_clients = False (BoolOpt) Accept clients using either SSL or plain TCP
broadcast_prefix = broadcast (StrOpt) address prefix used when broadcasting to all servers
container_name = None (StrOpt) Name for the AMQP container
group_request_prefix = unicast (StrOpt) address prefix when sending to any server in group
idle_timeout = 0 (IntOpt) Timeout for inactive connections (in seconds)
password = (StrOpt) Password for message broker authentication
sasl_config_dir = (StrOpt) Path to directory that contains the SASL configuration
sasl_config_name = (StrOpt) Name of configuration file (without .conf suffix)
sasl_mechanisms = (StrOpt) Space separated list of acceptable SASL mechanisms
server_request_prefix = exclusive (StrOpt) address prefix used when sending to a specific server
ssl_ca_file = (StrOpt) CA certificate PEM file to verify server certificate
ssl_cert_file = (StrOpt) Identifying certificate PEM file to present to clients
ssl_key_file = (StrOpt) Private key PEM file used to sign cert_file certificate
ssl_key_password = None (StrOpt) Password for decrypting ssl_key_file (if encrypted)
trace = False (BoolOpt) Debug: dump AMQP frames to stdout
username = (StrOpt) User name for message broker authentication

Table 12.34. Description of notification configuration options
Configuration option = Default value Description
[DEFAULT]
onready = None (StrOpt) Deprecated.

Questions? Discuss on ask.openstack.org
Found an error? Report a bug against this page

loading table of contents...