首页 > 编程知识 正文

es集群高可用(namenode脑裂)

时间:2023-05-04 16:52:01 阅读:69912 作者:1433

本文论述集群的脑裂问题

本文综述了脑裂(split-brain )簇脑裂发生的原因是如何预防HA簇脑裂,何谓Fence设备

什么是分裂(分裂)

在“双机热备”高可用性(HA )系统中,连接两个节点的“心跳”断开(即,两个节点断开)时,原本集成且工作协调的HA系统是两个独立的节点(即,两个HA系统) 因为失去了联系,还以为彼此发生了故障,两个节点的HA软件就像“破裂的人”一样,“本能地”互相争夺“共享资源”,互相争夺“APP应用服务”。 1 )或共享资源中断,两侧“服务”消失; 2 )或两个“服务”启动,但同时读写“共享存储”,导致数据损坏(例如,数据库轮询的在线日志错误)。

两个节点相互争夺共享资源,导致系统混乱,数据损坏。 对于无状态服务的HA,大脑是否破裂无关紧要,但对于MySQL等有状态服务的HA,必须严格防止大脑破裂。

[但是,一些生产环境下的系统可以按照无状态服务HA的集合来配置状态服务,并知道结果]。

簇状脑裂的发生原因一般来说,裂脑的发生有以下几种原因。

高可用性服务器的每个节点之间的心跳链路出现故障,无法正常通信。 心率线坏了(包括断裂或老化)。 ip配置和冲突问题(网卡直接连接),因为网卡和相关驱动程序损坏。 互联之间连接的设备故障(网卡及交换机)。 仲裁机器出了问题。 高可用性服务已启用iptables防火墙,并阻止了心跳消息传输。 心跳发送失败,因为高可用服务器上的心跳网卡地址等信息配置不正确。 其他服务的配置错误等原因,如心跳方式的差异、心跳冲突、软件错误等。 提示:如果virtual_router_id两端的参数配置不匹配,Keepalived配置中的同一VRRP实例也会出现分裂问题。

如何预防HA集群的脑裂,第一,添加冗馀的心跳线[即冗馀的通信方法]

同时使用串行电缆和以太网电缆进行连接,同时使用两条心跳线路。 也就是说,心跳线路也是HA。 这样,一条线路坏了,另一条还可以。 仍然可以发送心跳信号,最大限度地减少“大脑分裂”现象的发生概率。

第二种方法:设立仲裁机构

两个节点发生分歧时,由第三方仲裁员决定听谁说。 该仲裁员可能是锁定服务、共享磁盘或其他什么。 例如,如果设置了类似于网关IP的参考IP,且跳线完全断开,则两个节点将分别ping参考IP,否则指示断点位于本地。 如果到本地网络(不仅包括“心跳”,还包括“对外”服务)的链接中断,启动(或继续) APP应用服务也没有用,请积极停止竞争,在可以ping和浏览IP的一侧启动服务此外,ping不引用IP的一方将自行重新启动,以完全释放可能仍占用的共享资源。

第三种方法是fence机制“共享资源的方法”“假设需要受信任的fence设备”

如果无法确定某个节点的状态,请通过强制关闭fence设备此心跳节点,确保完全释放共享资源。 相当于Backup备份节点无法接收心跳信息,通过其他线路发送关闭指令关闭主节点电源。

第四个:启用磁盘时钟

服务端锁定了共享磁盘,在发生“崩溃”时,使对方完全“夺不走”共享磁盘资源。 但是,使用锁定磁盘也有不少问题。 如果占用共享磁盘的一方不积极地“解锁”,另一方就永远拿不到共享磁盘。 实际上,如果服务节点突然冻结或崩溃,则无法运行解锁命令。 备份节点无法接管共享资源和APP应用程序服务。 于是有人用HA设计了“智能”锁。 也就是说,提供服务的一方只有在意识到心跳线全部断开(未检测到端点)时才启用磁盘时钟。 平时就不锁门。

什么是Fence设备? Fence设备是群集的重要组成部分之一,可以避免意外事件导致的“大脑破裂”。 Fence设备主要是通过服务器或存储器本身的硬件管理接口或外部电源管理设备,直接向服务器或存储器发出硬件管理指令,以重新启动、关闭服务器或断开与网络的连接如果设备知道故障发生,则Fence负责将占用浮动资源的设备从集群中分离。

各节点之间互相发送探测分组,判断节点的生存性。 通常会检测到专用线路。 这条线路被称为“心跳”。 在上图中,直接使用eth0线路作为心跳。 如果节点1的心跳有问题,则节点2和节点3会识别节点1有问题,并安排资源在节点2或节点3上运行,但节点1会发现自己没有问题,节点2或节点3会有资源此时,会发生“分裂大脑”(split brain )。 此时,如果整个环境中有直接关闭节点1电源的设备,就可以避免大脑分裂的发生。 该设备被称为fence或stonith (shoottheothernodeinthehead爆头哥)。 在物理机上,virsh通过串行缆线管理虚拟机,如virsh destroy nodeX。 在此,我们将物理机视为fence设备。

本文介绍了高可用性集群中脑分裂问题,这也是zk集群、es集群等常见集群需要解决的问题。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。