本帖最后由 清风慕竹 于 2019-11-2 10:55 编辑
(1)什么是脑裂当两(多)个节点同时认为自已是唯一处于活动状态的服务器从而出现争用资源的情况,这种争用资源的场景即是所谓的“脑裂”。
(2)脑裂产生的原因 数据“脑裂”通常是由于存储网络发生故障,数据的多个副本出现了隔离,无法及时相互同步信息,并且副本各自孤立地写入更新了不同的数据,导致副本之间数据存在不一致。简单的来说自己认为自己是老大。 (3)脑裂产生的过程 第一步:正常情况下,虚拟机运行在主机A上,数据会同时写入到A主机和B主机上的两个副本中,两个副本上的数据完全一致; 第二步:当主机之间的存储网络出现中断,主机A和主机B相互隔离,无法正常同步数据。此时虚拟机可以继续在主机A上运行,但其新产生的数据只能往主机A的磁盘上写入更新。主机B上的数据处于旧状态,数据出现不一致,但是这个时候还未发生数据脑裂情况; 第三步:主机B经过心跳探测,无法与主机A取得通信,认为主机A发生故障。这时虚拟机的高可用(HA)机制生效,主机B上重新拉起了该虚拟机,即出现了“双实例”——两个相同的虚拟机。两个虚拟机各自往自己所运行位置上的主机写入新的数据。这时候,两台主机上的副本出现不一致,并且是各自都存在对方不存在的数据,即出现了数据脑裂。 (4)预防措施 第一、添加冗余的心跳线,尽量减少“裂脑”发生机会。 第二、设置仲裁机制。例如设置参考IP。 |