Skip to content

Enhance Redundant Virtual Routers to 3 Routers, with RAFT Algorithm (or similar) #8954

Open
@btzq

Description

@btzq
ISSUE TYPE
  • Feature Idea
COMPONENT NAME
Redundant Virtual Router
CLOUDSTACK VERSION
N/A
CONFIGURATION

N/A

OS / ENVIRONMENT

N/A

SUMMARY

Idea To Be Able to Deploy A Total Of 3 Redundant Virtual Routers instead of 2.

In our own experiences, we've had bad experiences with Redundant VPC Networks because it creates total 2 Virtual Routers.

Although this was originally designed to offer redundancies, the real life experience of users of Cloudstack is that the setup is more likely to have cause operational issues instead. (myself and based on what ive read from other users experiences).

Some examples of theese issues are Master/Master Reundant Routers where both Routers are active at the same time. This usually ocurs due to a network issue where both routers are unable to communicate with each other (but are still alive). Hence, the passive becomes active, and the VPC becomes confused.

In our current set up, we had to change from a Redundant VPC (Dual Routers) to a Normal VPC (Single Router) because the redundant routers gave us more issues than benefits. Because of this, we had to accept a 5-7 minute downtime in the event a router goes down, so that it could failover to another node. This makes us less competitive than other options cloud providers, but provided the most predictability.

This then got me thinking.

What i've noticed from other technologies with a redundancy setup is that they use a minimum total of 3 members to ensure reliable redundancies. Examples are:

  • Redis Sentinel (Uses Quorum = 2, resulting in total 3 nodes)
  • Cockroach DB (Requires minimum 3 nodes)
  • Apache Kafka (Requires minimum 3 Nodes)

I believe this has got to do with the RAFT Algorithm where there is 1 Leader, and 2 Followers. In the event that any 1 node fails, the other 2 remaining members need to agree that the service is down, before agreeing to promote any 1 of the 2 remaining nodes to be the Active Node.

As a Feature Idea, what if Cloudstack were to offer Redundant Virtual Routers with similar concepts? Where there would be 3 routers except of two, and an implementation of a voting/promotion algorithm similar to RAFT.

I can imagine that the greatest benefits to businesses using Clodstack would be being able to achieve much greater high availabilities than current implementations.

This is just a random night time idea, im not sure of the technical implementations or repurcussions, but happy to discuss this idea and hear what the community thinks.

STEPS TO REPRODUCE
N/A
EXPECTED RESULTS
Feature Idea - Idea To Be Able to Deploy A Total Of 3 Redundant Virtual Routers instead of 2.
ACTUAL RESULTS
Redundant Routers only has Total 2 Routers

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    Status

    Todo

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions