Ali Sanhaji Javier Rojas Balderrama Matthieu Simonin
OpenStack Summit | Berlin 2018
RabbitMQ or Qpid Dispatch Router: Pushing Ali Sanhaji OpenStack - - PowerPoint PPT Presentation
RabbitMQ or Qpid Dispatch Router: Pushing Ali Sanhaji OpenStack to Javier Rojas Balderrama Matthieu Simonin the Edge OpenStack Summit | Berlin 2018 Whos here Ali Sanhaji Javier Rojas Balderrama Research engineer at Orange, France
Ali Sanhaji Javier Rojas Balderrama Matthieu Simonin
OpenStack Summit | Berlin 2018
Ali Sanhaji Research engineer at Orange, France Javier Rojas Balderrama Research engineer at Inria, France Matthieu Simonin* Research engineer at Inria France
Core Network DC1 DC2 Regional sites Local sites Edge sites
(control plane + compute nodes)? ○ Costly and too many control planes to manage and synchronize ○ ⇒ Have a centralized control plane (APIs) and remote compute nodes
WAN
Core
Keystone Glance Nova (control) Neutron (control) Horizon
Edge
Edge Deployment:
Communication between edge and core
Nova (agent) Neutron (agent) Nova (agent) Neutron (agent) Nova (agent) Neutron (agent)
used for interprocess communication
○ call: request from client to server, client waiting for response ○ cast: request from client to server, no response (direct notification) ○ fanout: request from client to multiple servers, no response (grouped notification)
Nova API Nova compute Nova scheduler Nova conductor
message bus
Neutron server Neutron agent
message bus
Client Server Request Response Client Server RPC Client Server RPC Server Server
Call Cast Fanout
Broker cluster Router topology
It supports multiple underlying messaging implementations
Nova API Nova compute Nova scheduler Nova conductor
Neutron server Neutron agent RabbitMQ (AMQP 0.9.1) QPID Dispatch Router (AMQP 1.0) RabbitMQ (AMQP 0.9.1) QPID Dispatch Router (AMQP 1.0) Client Server Server Client
Central site Regional site 1 Edge site 3 Edge site 1 Edge site 2 Edge site 4 Edge site 5 Edge site 6 Regional site 2
Client 3 Server 3 Client 2 Server 2 Server 1 Client 1 Server 4
Broker cluster
Central site Regional site 1 Edge site 3 Edge site 1 Edge site 2 Edge site 4 Edge site 5 Edge site 6 Regional site 2
Client 3 Server 3 Client 2 Server 2 Server 1 Client 1 Server 4
Evaluate the performance of RabbitMQ and Qpid Dispatch Router over a WAN
○ How do they resist to WAN constraints (packet loss, latency, dropouts)? ○ Does a router fit better in a decentralized environment? ○ Are OpenStack operations still robust without a broker retaining messages? ○ Is a broker safer than a router? ○ How RPC communications (RabbitMQ and QDR) behave in a WAN?
RPC client RPC server
Examples of two possible situations: latency/loss between client and bus
(e.g., nova-conductor sends a boot request to nova-compute)
latency/loss between server and bus
(e.g., nova-compute sends a vm state update to nova-conductor) RPC client RPC server
RPC client
RPC server
1
RPC client
RPC server
2
In case of latency RPC calls:
RPC casts (fire and forget semantics):
○ Test plan of massively distributed RPCs
https://docs.openstack.org/performance-docs/latest/test_plans/ massively_distribute_rpc/plan.html
○ Two categories of experiments: 1. Synthetic (rabbitmq/qdr, decentralized configuration) 2. Operational (with OpenStack and centralized bus)
○ EnOS for OpenStack deployment (virtualization, bare metal) https://github.com/BeyondTheClouds/enos ○ Grid’5000 a dedicated testbed for experiment-driven research
OpenStack Summit Vancouver 2018 presentation
achieves low latency message delivery especially under high load
Openstack internal messaging at the edge: In depth evaluation
www.openstack.org/summit/vancouver-2018/summit-schedule/events/2100 7/openstack-internal-messaging-at-the-edge-in-depth-evaluation
https://hal.inria.fr/hal-01891567 × 9→17 × 8→27 × 2
WAN
Keystone Glance Nova (control) Neutron (control) Bus (RMQ/QDR)
× 3 + 1 Edge nodes
Nova (agent) Neutron (agent) Nova (agent) Neutron (agent) Nova (agent) Neutron (agent)
× 100/400 Core node
Software
Infrastructure
Configuration
(controller and network nodes)
○ Frequency: [5m, 10m] ○ Duration: [30s, 60s, 120s]
○
constant_for_duration
runner ■ Concurrency 5 ■ Duration 30m
Full deployment for each combination (set of parameters, bus)
Configuration
○ Latency: [0, 5, 20, 40, 80, 120, 200] s ○ Loss: [0, 0.1, 0.2, 0.4, 0.8, 1.0, 2.0] %
○
constant runner
■ Concurrency: 5 ■ Iterations: 100
○ Computes: [100, 400]
Full deployment for each combination (set of parameters, bus)
100 computes
400 computes
100 computes
Timeline behind the scene of rally benchmarks (multicast/400 computes)
anycast queues
fanout queues
retention) is as effective at delivering messages as the broker (message retention)
if possible (e.g., database)
https://beyondtheclouds.github.io ali.sanhaji@orange.com javier.rojas-balderrama@inria.fr matthieu.simonin@inria.fr