LXD + Galera Cluster + Max Scale:关闭服务器!=停止容器

LXD + Galera Cluster + Max Scale:关闭服务器!=停止容器

我有一个具有 4 个节点的 galera 集群。一台服务器(主服务器)中有 2 个,另一台服务器(从属服务器)中有 2 个。

集群通过“Max Scale”进行控制。

所有设置看起来都是正确的,因为复制工作正常,SHOW STATUS LIKE 'wsrep_cluster_size'报告所有节点的正确大小,关闭主节点并成功转移到下一个节点等。

maxscale 服务器状态报告:(为简单起见,进行了总结)

Master, Synced, Running | Slave, Synced, Running | Slave, Synced, Running

如果我在“server-master”中同时执行停止两个容器,则主数据库将成功分配给“slave”中的第一个容器。

maxscale 服务器状态报告:

Down | Down | Master, Synced, Running | Slave, Synced, Running

问题是:如果我关闭服务器主控,

maxscale 服务器状态报告:

Down, Down, Running, Running

尝试连接集群时,连接失败。一段时间后,所有节点均报告Down

我不明白为什么关闭服务器不能按预期工作。

更新

我发现如果我关闭“server-master”中的第二个节点,然后关闭服务器,“master”被成功分配给“server-slave”,然而几分钟后所有节点都会关闭。:/


Servers: Ubuntu Servers 16.04 x64
MaxScale version: 2.0.5
LXD version: 2.13
Galera version (3): 25.3.20-xenial
Guide followed: https://www.digitalocean.com/community/tutorials/how-to-configure-a-galera-cluster-with-mariadb-10-1-on-ubuntu-16-04-servers

答案1

它与 galera 集群行为相关。

  • 你关闭 1 个节点上的 mysql,在关闭该节点上的 mysql 之前,发送离开请求并正常离开集群。你的集群检测到 2 个节点已离开,并且仍可使用 2 个节点。
  • 您关闭主机,mysql 被杀死,当然无法发送离开请求。集群检测到 2 个节点已死,只剩下 2 个节点,<= 集群总大小的 50%。集群处于故障状态,无法接受连接。

因此,您无法从客户端连接到 maxscale ---> 集群。

參考文獻:http://galeracluster.com/documentation-webpages/weightedquorum.html

相关内容