From 245023894acfb163b4ed73ccded72914550d982c Mon Sep 17 00:00:00 2001 From: "Martin, Chen" Date: Thu, 20 Aug 2020 16:26:50 +0800 Subject: [PATCH] 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:", 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: I92af77fab929c9f598b7dc41543db6ad6238f812 Signed-off-by: Martin, Chen --- sysinv/sysinv/sysinv/sysinv/helm/mariadb.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/sysinv/sysinv/sysinv/sysinv/helm/mariadb.py b/sysinv/sysinv/sysinv/sysinv/helm/mariadb.py index b115824859..28b63e7174 100644 --- a/sysinv/sysinv/sysinv/sysinv/helm/mariadb.py +++ b/sysinv/sysinv/sysinv/sysinv/helm/mariadb.py @@ -5,6 +5,7 @@ # from sysinv.common import exception +from sysinv.common import utils as cutils from sysinv.helm import common from sysinv.helm import openstack @@ -30,6 +31,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: