Update mariadb-server suspect_timeout to default value to align

with garbd's suspect_timeout

In openstack-helm-infra, it launch evs.suspect_timeout=PT30S
for mariadb-server in configmap, mariadb-etc. This setting is
for three mariadb-server pod deployment, every mariadb-server
with same setting suspect_timeout=30s. But after change to two
mariadb-server and one garbd arbitrator. Setting in configmap
mariadb-etc evs.suspect_timeout=PT30S, only takes effect for 2
mariadb-server, for garbd arbitrator, it use galera default
setting evs.suspect_timeout=PT5S. If mariadb-server-1 exit
abnormal, after 5s, garbd arbitrator suspects mariadb-server-1
is dead, but as not reach 30s, mariadb-server-0 thinks mariadb-server-1
is not dead. In this state, quorum fail, garbd arbitrator and
mariadb-server-0 both set to none primary component, service
down.
For fix solution, set value.conf.data.config_override to override
wsrep_provider_option in mariadb helm chart, which makes garbd
arbitrator and mariadb-server launch with same setting for
"evs.suspect_timeout=PT5S", default value. By this way, mariadb
server recovery time will also improve. To update setting for
"evs.suspect_timeout", it should both update override for mariadb
and garbd helm chart.

Setting for "gmcast.listen_addr=tcp://0.0.0.0:<port>", takes
effect for both ipv4 and ipv6. So keeps such setting.

Reference link for wsrep option and galera cluster quorum
https://mariadb.com/kb/en/wsrep_provider_options/
https://galeracluster.com/library/documentation/weighted-quorum.html

Closes-Bug: 1888546

Change-Id: I06983cf0d91d4d9aa88f352e64b1e6571b816ec6
Signed-off-by: Martin, Chen <haochuan.z.chen@intel.com>
This commit is contained in:
Martin, Chen
2020-08-03 21:40:02 +08:00
parent e471321132
commit 2f664927c4
4 changed files with 76 additions and 1 deletions

View File

@@ -7,6 +7,7 @@
from k8sapp_openstack.common import constants as app_constants
from k8sapp_openstack.helm import openstack
from sysinv.common import utils as cutils
from sysinv.common import exception
from sysinv.helm import common
@@ -35,6 +36,16 @@ class MariadbHelm(openstack.OpenstackBaseHelm):
}
}
if not cutils.is_std_system(self.dbapi):
config_override = {
'conf': {
'database': {
'config_override': ''
}
}
}
overrides[common.HELM_NS_OPENSTACK].update(config_override)
if namespace in self.SUPPORTED_NAMESPACES:
return overrides[namespace]
elif namespace: