commit 2301fc0e637c8739d12dbb582db306bfa44de817
Author: Dmitry Borodaenko <email address hidden>
Date: Sun Mar 2 00:00:49 2014 -0800
Set rabbit_hosts to a list of controllers
Connecting to RabbitMQ via HAProxy results in hung AMQP sessions after
controller failover or VIP move. To work around this problem, OpenStack
services have to be configured to connect directly to RabbitMQ services
on controllers nodes via rabbit_hosts variable, which makes impl_kombu
cycle through the listed hosts when attempting to reconnect. On
controller nodes, preference is given to the local RabbitMQ service on
the same controller node.
AMQP client configuration for all OpenStack components is centralized in
osnailyfacter and propagated through Puppet classes in a consistent
manner. The exception is Neutron that uses its own
sanitize_neutron_config() function to parse configuration from
osnailyfacter. That function was extended to generate AMQP hosts list
consistently with the above, and fixed to correctly sanitize instances
of Array subclasses.
No changes were made to Murano manifests since it has its own RPC
implementation that is inconsistent with the rest of the OpenStack.
In addition to AMQP client configuration, crm configuration is modified
to set flush_routes flag and resource stickiness for all virtual IP
addresses. The flush_routes flag reduces the probability of connections
becoming hung on nodes that a VIP moves away from, and resource
stickiness prevent unnecessary movement of VIP resources between
controllers.
Reviewed: https:/ /review. openstack. org/77409 /git.openstack. org/cgit/ stackforge/ fuel-library/ commit/ ?id=2301fc0e637 c8739d12dbb582d b306bfa44de817
Committed: https:/
Submitter: Jenkins
Branch: master
commit 2301fc0e637c873 9d12dbb582db306 bfa44de817
Author: Dmitry Borodaenko <email address hidden>
Date: Sun Mar 2 00:00:49 2014 -0800
Set rabbit_hosts to a list of controllers
Connecting to RabbitMQ via HAProxy results in hung AMQP sessions after
controller failover or VIP move. To work around this problem, OpenStack
services have to be configured to connect directly to RabbitMQ services
on controllers nodes via rabbit_hosts variable, which makes impl_kombu
cycle through the listed hosts when attempting to reconnect. On
controller nodes, preference is given to the local RabbitMQ service on
the same controller node.
AMQP client configuration for all OpenStack components is centralized in neutron_ config( ) function to parse configuration from
osnailyfacter and propagated through Puppet classes in a consistent
manner. The exception is Neutron that uses its own
sanitize_
osnailyfacter. That function was extended to generate AMQP hosts list
consistently with the above, and fixed to correctly sanitize instances
of Array subclasses.
No changes were made to Murano manifests since it has its own RPC
implementation that is inconsistent with the rest of the OpenStack.
In addition to AMQP client configuration, crm configuration is modified
to set flush_routes flag and resource stickiness for all virtual IP
addresses. The flush_routes flag reduces the probability of connections
becoming hung on nodes that a VIP moves away from, and resource
stickiness prevent unnecessary movement of VIP resources between
controllers.
Change-Id: Ib839032b2f1aa8 20b4afc64b0a9ba df13414d488
Partial-bug: #1285449