我在模拟ES集群网络分区,ES版本6.8.23,使用6台服务器(同一网段)搭建了6节点集群,配置如下:
cluster.name: my-cluster
#node-1到node-6
node.name: node-1
http.port: 9200
network.host: 0.0.0.0
discovery.zen.ping.unicast.hosts: ["node1ip:9300", "node2ip:9300","node3ip:9300","node4ip:9300","node5ip:9300","node6ip:9300"]
discovery.zen.minimum_master_nodes: 3
node.master: true
node.data: true
第一次搭建好集群后,node-1为主节点,然后模拟网络分区:在节点1-3上的防火墙上配置禁止节点4-6访问9300端口(节点之间默认通信端口),在节点4-6的防火墙上配置禁止节点1-3访问9300端口,产生两个小集群,node1-3形成一个集群主节点是node1,node4-6形成一个集群主节点是node6,然后模拟恢复网络分区,这两个小集群仍然独立没有形成6节点大集群,为啥呢? 此时在node4-6集群中,停掉node4,node5/6加入到node1-3的集群形成5节点集群。
第二次模拟网络分区,先把node4启动后形成6节点集群,继续根据上述方式修改防火墙策略模拟网络分区,现象和上述不一样,集群一直是6节点大集群,集群状态绿色,正常对外提供服务,为啥没有变两个小集群? 此时停掉node4,形成5节点集群,集群状态黄色。此时停掉node5和6,集群为红色。然后把node4-6启动,形成一个小集群主节点是node6。