Hi Devs,

I would like to propose LVS load balancer support for Stratos.

In a normal working setup as mentioned in [1], two load balancers (each
running ipvsadm and keepalived) are paired, one master and one slave.
Keepalived is configured per pair using vrrp allows the automatic failover
to let the slave become master if load balancing dies on the master.
There are N real servers each running the real service located behind the
load balancer. With Stratos in place, the real servers are orchestrated and
monitored by Stratos and whenever an extra real server gets added to the
cluster of real servers (because of scaling up) the load balancers need to
get updated by Stratos to include the new real server in the load balancing
decisions. In the same way, if a real server becomes unavailable (scaled
down), the load balancers need to get updated by Stratos to remove the now
unavailable server from the load balancing decisions.

This requires load balancer configuration to be updated accordingly to
reflect new real server (member) IP s, and this can be implemented by
extending Stratos load balancer extension API. This "plugin" will be
listenning to the "Topology" topic of Message broker and will update the
LVS load balancer configuration (both master and slave if present)
accordingly, either when extra real servers added up in a scale-up or when
extra real servers removed in scale-down.

In each of real server, the required configuration (bringing up dummy
interface) can be done via puppet or via a cartridge agent module. For that
the virtual ip address needs to be passed in the payload when the real
server is booting up.

[1] http://blackbird.si/loadbalancing-failover-with-ipvs-and-keepalived/


Thanks,
Sajith

Reply via email to