We looking into haproxy to load balance mysql requests across an Xtradb Cluster. Although the DB cluster is HA, the Haproxy is not. Our cluster is an openstack/kvm environment, so we do have some limitations.
We have considered three technologies:
Heartbeat/pacemaker: This would work, but it is complicated and would depend on openstack to be up to reassign public IPs.
DNS Round Failover: This work as long as all nodes are up - but on failure you will always be redirected to failed IP some % of time. We know we do something more dynamic with DNS. But that too seems like it is getting more complicated.
Keepalived: According to our networking folks this will not work in our implementation of openstack/KVM becuase we can not dynamically assign IPs to interfaces.
Are there other alternatives that we have not looked at?
Does mysql client side have IP failover capabilities?