<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" style="display:none;"><!-- P {margin-top:0;margin-bottom:0;} --></style>
</head>
<body dir="ltr">
<div id="divtagdefaultwrapper" style="font-size:12pt;color:#000000;background-color:#FFFFFF;font-family:Calibri,Arial,Helvetica,sans-serif;">
<p>Sorry, folks, for being a pest here, but I'm finding the learning curve on this clustering stuff to be pretty steep.</p>
<p><br>
</p>
<p>I'm following the docs to set up a three-node Openstack Controller cluster. I got Pacemaker running and I had two resources, the virtual IP and HAProxy, up and running and I could move these resources to any of the three nodes. Success!</p>
<p><br>
</p>
<p>I then moved on to installing Galera. <br>
</p>
<p><br>
</p>
<p>The MariaDB engine started fine on 2 of the 3 nodes but refused to start on the third. After some digging and poking (and swearing), I found that HAProxy was listening on the virtual IP on the mySQL port, which prevented MariaDB from listening on that port.
 Makes sense. So I moved HAProxy to another node and started MariaDB on my third node and now I have a three-node Galera cluster.</p>
<p><br>
</p>
<p>But.</p>
<p><br>
</p>
<p>Now HAPRoxy won't start on any node. I imagine it's because MariaDB is already listening on the same IP:Port combination that Galera wants. (After all, HAProxy is supposed to proxy that IP:Port, right?) Unfortunately, I don't see anything useful in the HAProxy.log
 file so I don't really know what's wrong.</p>
<p><br>
</p>
<p>So.... thinking this through logically, it seems to me that the Openstack docs were wrong in telling me to configure MariaDB server to bind to all available ports (<a title="Ctrl+Click or tap to follow the link" id="LPlnk681252" href="http://docs.openstack.org/ha-guide/controller-ha-galera-config.html">http://docs.openstack.org/ha-guide/controller-ha-galera-config.html</a>,
 scroll to "Database Configuration," note that bind-address is 0.0.0.0.). If MariaDB binds to the virtual IP address, then HAProxy can't bind to that address and therefore won't start. Right?</p>
<p><br>
</p>
<p>Am I thinking correctly here, or is something else wrong with my setup? In general, I've found that the OpenStack documents tend to be right, but in this case my understanding of the concepts involved makes me wonder.</p>
<p><br>
</p>
<p>In any case, I'm having difficulty getting HAProxy and Galera running on the same nodes. My HAProxy config file is:</p>
<p><br>
</p>
<p>global<br>
  chroot  /var/lib/haproxy<br>
  daemon<br>
  group  haproxy<br>
  maxconn  4000<br>
  pidfile  /var/run/haproxy.pid<br>
  user  haproxy<br>
<br>
defaults<br>
  log  global<br>
  maxconn  4000<br>
  option  redispatch<br>
  retries  3<br>
  timeout  http-request 10s<br>
  timeout  queue 1m<br>
  timeout  connect 10s<br>
  timeout  client 1m<br>
  timeout  server 1m<br>
  timeout  check 10s<br>
<br>
listen galera_cluster<br>
  bind 10.0.0.10:3306<br>
  balance  source<br>
  option  httpchk<br>
  server controller1 10.0.0.11:3306 check port 9200 inter 2000 rise 2 fall 5<br>
  server controller2 10.0.0.12:3306 backup check port 9200 inter 2000 rise 2 fall 5<br>
  server controller3 10.0.0.13:3306 backup check port 9200 inter 2000 rise 2 fall 5<br>
</p>
<p><br>
</p>
<p><br>
</p>
<p>Does the server name under "listen galera_cluster" need to match the hostname of the node? What else could be causing these two daemons to not play nicely together?</p>
<p><br>
</p>
<p>Thanks!</p>
<p><br>
</p>
<p>-Matthew<br>
</p>
</div>
</body>
</html>