Hi,

I am trying to configure HA with 2 Mysql servers in Cloudstack 4.15.2. Both DB 
servers are configured as master-master, and the db.properties file has been 
updated:

--------------------------
# High Availability And Cluster Properties
db.ha.enabled=true
db.ha.loadBalanceStrategy=com.cloud.utils.db.StaticStrategy
# cloud stack Database
db.cloud.slaves=10.10.10.20
db.cloud.autoReconnect=true
db.cloud.failOverReadOnly=false
db.cloud.reconnectAtTxEnd=true
db.cloud.autoReconnectForPools=true
db.cloud.secondsBeforeRetryMaster=3600
db.cloud.queriesBeforeRetryMaster=5000
db.cloud.initialTimeout=3600

#usage Database
db.usage.slaves=10.10.10.20
db.usage.autoReconnect=true
db.usage.failOverReadOnly=false
db.usage.reconnectAtTxEnd=true
db.usage.autoReconnectForPools=true
db.usage.secondsBeforeRetryMaster=3600
db.usage.queriesBeforeRetryMaster=5000
db.usage.initialTimeout=3600

----------------------------------------------------

When I stop the mysql service or disable the NIC to stop connectivity, 
Cloudstack does not use the second mysql server. The UI keeps loading, and the 
management service cannot be restarted. I am getting these logs on the 
management server:

----------------------------------------------------------
Unable to keep the db connection for LockMaster1
java[358521]: java.sql.SQLNonTransientConnectionException: Server shutdown in 
progress
java[358521]:         at 
com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:110)
java[358521]:         at 
com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
java[358521]:         at 
com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
java[358521]:         at 
com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:953)
java[358521]:         at 
com.mysql.cj.jdbc.ClientPreparedStatement.executeQuery(ClientPreparedStatement.java:1003)
java[358521]:         at 
jdk.internal.reflect.GeneratedMethodAccessor15.invoke(Unknown Source)
java[358521]:         at 
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
java[358521]:         at 
java.base/java.lang.reflect.Method.invoke(Method.java:566)
java[358521]:         at 
com.mysql.cj.jdbc.ha.MultiHostConnectionProxy$JdbcInterfaceProxy.invoke(MultiHostConnectionProxy.java:108)
java[358521]:         at 
com.mysql.cj.jdbc.ha.FailoverConnectionProxy$FailoverJdbcInterfaceProxy.invoke(FailoverConnectionProxy.java:98)
java[358521]:         at com.sun.proxy.$Proxy25.executeQuery(Unknown Source)
java[358521]:         at 
org.apache.commons.dbcp2.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:122)
java[358521]:         at 
org.apache.commons.dbcp2.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:122)
java[358521]:         at 
com.cloud.utils.db.ConnectionConcierge$ConnectionConciergeManager.testValidity(ConnectionConcierge.java:148)
java[358521]:         at 
com.cloud.utils.db.ConnectionConcierge$ConnectionConciergeManager$1.runInContext(ConnectionConcierge.java:203)
java[358521]:         at 
org.apache.cloudstack.managed.context.ManagedContextRunnable$1.run(ManagedContextRunnable.java:48)
java[358521]:         at 
org.apache.cloudstack.managed.context.impl.DefaultManagedContext$1.call(DefaultManagedContext.java:55)
java[358521]:         at 
org.apache.cloudstack.managed.context.impl.DefaultManagedContext.callWithContext(DefaultManagedContext.java:102)
java[358521]:         at 
org.apache.cloudstack.managed.context.impl.DefaultManagedContext.runWithContext(DefaultManagedContext.java:52)
java[358521]:         at 
org.apache.cloudstack.managed.context.ManagedContextRunnable.run(ManagedContextRunnable.java:45)
java[358521]:         at 
java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
java[358521]:         at 
java.base/java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305)
java[358521]:         at 
java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305)
java[358521]:         at 
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
java[358521]:         at 
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
java[358521]:         at java.base/java.lang.Thread.run(Thread.java:829)
----------------------------------------------------------------------------------------
We are using Mysql version 8.0.33 on Ubuntu 20.04. I can see on the CS 
documentation, it has been "Tested with MySQL 5.1 and 5.5.", not sure if it has 
been tested on newer version as well?

Is there something else that need to be configured?

Thanks

Reply via email to