Rug scaling

Registered by Sean Roberts

This proposes allowing multiple RUG processes to be spawned across many nodes. Each RUG process is responsible for a fraction of the total running appliances. RUG_process->appliance(s) mapping will be managed by a consistent hash ring. An external coordination service (ie, zookeeper) will be leveraged to provide cluster membership capabilities, and python-tooz will be used to manage cluster events. When new members join or depart, the hash ring will be rebalanced and appliances re-distributed across the RUG.

This allows operators to scale out to many RUG instances, eliminating the single-point-of-failure and allowing appliances to be evenly distributed across multiple worker processes.

Blueprint information

Status:
Complete
Approver:
Sean Roberts
Priority:
High
Drafter:
Sean Roberts
Direction:
Approved
Assignee:
Adam Gandelman
Definition:
Approved
Series goal:
Accepted for liberty
Implementation:
Implemented
Milestone target:
milestone icon 7.0.0
Started by
Sean Roberts
Completed by
Adam Gandelman

Related branches

Sprints

Whiteboard

Gerrit topic: https://review.openstack.org/#q,topic:bp/rug-scaling,n,z

Addressed by: https://review.openstack.org/198176
    Adds a DB layer, use it for debug modes

Addressed by: https://review.openstack.org/195366
    Add support for hash-based RUG scale out (WIP)

Addressed by: https://review.openstack.org/209303
    Move caching of resolved router_ids from state machine to worker

Addressed by: https://review.openstack.org/212197
    Avoid blocking on subprocess during rug shutdown

Gerrit topic: https://review.openstack.org/#q,topic:cluster,n,z

Addressed by: https://review.openstack.org/225369
    Adds an LBAAS driver

Addressed by: https://review.openstack.org/232193
    disable port_security for VRRP ports

Gerrit topic: https://review.openstack.org/#q,topic:bp/appliance-provisioning-driver,n,z

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.