[Openstack-operators] Openstack and mysql galera with haproxy

Clint Byrum clint at fewbar.com
Thu Sep 18 16:45:21 UTC 2014


Excerpts from Sławek Kapłoński's message of 2014-09-18 09:29:27 -0700:
> Hello,
> 
> Is anyone here using openstack with mysql galera and haproxy? Have You got any 
> problems with that?
> I was today installed such ha infra for database (two mysql servers in galera 
> cluster and haproxy on controller and neutron node, this haproxy is connecting 
> to one of galera servers with round robin algorithm). Generally all is working 
> fine but I have few problems:
> 1. I have a lot of messages like: 
> WARNING neutron.openstack.common.db.sqlalchemy.session [-] Got mysql server 
> has gone away: (2006, 'MySQL server has gone away')
> 2. I have (most on neutron) many errors like:
> OperationalError: (OperationalError) (2013, 'Lost connection to MySQL server 
> during query') 'UPDATE ml2_port_bindings SET vif_type=%s, driver=%s, 
> segment=%s WHERE ml2_port_bindings.port_id =

1 and 2 look like timeout issues. Check haproxy's timeouts. They need
to be just a little longer than MySQL's connection timeouts.

> 3. Also errors:
> StaleDataError: UPDATE statement on table 'ports' expected to update 1 row(s); 
> 0 were matched.
> 4. and errors:
> DBDeadlock: (OperationalError) (1213, 'Deadlock found when trying to get lock; 
> try restarting transaction') 'UPDATE ipavailabilityranges SET first_ip=%s WHERE 
> ipavailabilityranges.allocation_pool_id =

3 and 4 are a known issue. Our code doesn't always retry transactions,
which is required to use Galera ACTIVE/ACTIVE. Basically, that doesn't
work.

You can use ACTIVE/PASSIVE, and even do vertical partitioning where
one of the servers is ACTIVE for Nova, but another one is ACTIVE for
Neutron. But AFAIK, ACTIVE/ACTIVE isn't being tested and the work hasn't
been done to make the concurrent transactions work properly.



More information about the OpenStack-operators mailing list