集群管理

RH436 学习笔记(二)_集群管理

RH436 学习笔记(二)_fence机制_02

standby 状态用于停机维护。

RH436 学习笔记(二)_RH436_03

仲裁机制

当集群达到2 个节点或以上,需要仲裁机制

跨地域机房之间做HA集群,通常情况下,距离小于100km,延迟小于2ms,可以双活,同时提供业务;距离大于100km,延迟大于2ms,只能做主备,用于容灾。

RH436 学习笔记(二)_RH436_04

如上图,这是一个双活集群,当北京数据中心其中一个节点故障时,集群是能够继续提供业务的;当北京数据中心两个节点都故障的时候,廊坊数据中心是不能够继续提供业务的,需要一个仲裁节点和一个数据中心都能工作才能提供业务。

RH436 学习笔记(二)_RH436_05

如果是北京数据中心与廊坊数据中心之间的心跳网络链路故障了,会发生脑裂现象,两个数据中心互相认为对方故障了,开始抢夺资源。为了解决这个问题,才引出一个新的概念:仲裁机制。

vote:票数解决方案

默认情况下,如果你没有指定,它会给每个节点投票,总票数是4

得票数>=半数以上的票数才能存活

RH436 学习笔记(二)_仲裁机制_06

在主备集群的情况下,主故障了,备端通常需要人工拉活,集群无法准确地判断出故障点;

现在有一些容灾软件,它提前把主备端的存储添加到容灾存储里面,出现故障时一键恢复,但是一键恢复这个动作也是需要人工来操作的,而且也是需要运维人员经常性地去做灾难演练。

RH436 学习笔记(二)_集群管理_07

RH436 学习笔记(二)_RH436_08

quorate 这个单词翻译过来叫法定人数,我们在集群里面翻译成专业术语:仲裁;这个状态是Yes,表示满足仲裁条件,集群得以存活。

RH436 学习笔记(二)_集群管理_09

这里分别是:

  • 期待票数:4
  • 最高期待票数:4
  • 总票数:4
  • 仲裁票数:3
  • 当前是否满足仲裁条件:满足了

RH436 学习笔记(二)_RH436_10

  • Nodeid:节点id
  • Votes:票数
  • Qdevice:是否是仲裁设备?NR表示不是仲裁设备
  • Name:节点名称

把noded 关机后:

RH436 学习笔记(二)_学习笔记_11

RH436 学习笔记(二)_RH436_12

再把nodec 关机:

RH436 学习笔记(二)_RH436_13

RH436 学习笔记(二)_fence机制_14

集群停止工作了。

RH436 学习笔记(二)_仲裁机制_15

RH436 学习笔记(二)_仲裁机制_16

双活集群情况下,上图是业内常见做法,仲裁设备也算一票,放在第三方数据中心。

如果没有仲裁设备,我也不想另外去配置一个仲裁设备怎么办?

静态优先级

优先站点

默认:节点ID low 为优先站点

RH436 学习笔记(二)_RH436_17

默认情况下,是没有配置静态优先级的,我们可以来设置这个规则。

RH436 学习笔记(二)_RH436_18

RH436 学习笔记(二)_fence机制_19

RH436 学习笔记(二)_集群管理_20

RH436 学习笔记(二)_fence机制_21

RH436 学习笔记(二)_仲裁机制_22

RH436 学习笔记(二)_RH436_23

RH436 学习笔记(二)_仲裁机制_24

RH436 学习笔记(二)_fence机制_25

我们把节点加入到一个集群,它就会在这个集群的多播域内,下面这个是集群的配置文件,我们用命令对集群做的配置会保存在这里:

RH436 学习笔记(二)_RH436_26

RH436 学习笔记(二)_仲裁机制_27

在其他节点上查看这个文件,配置都是同步的。

如果我在nodea 上编辑配置文件,直接把这个参数改为0,其他节点是不会同步更新的:

RH436 学习笔记(二)_集群管理_28

需要敲这条命令手工同步:

RH436 学习笔记(二)_fence机制_29

RH436 学习笔记(二)_RH436_30

现在把这两个参数加上

RH436 学习笔记(二)_学习笔记_31

RH436 学习笔记(二)_仲裁机制_32

RH436 学习笔记(二)_学习笔记_33

现在把nodec和noded关机,集群依然能正常工作。

把集群恢复,如果把nodea和nodeb关机呢?

RH436 学习笔记(二)_学习笔记_34

这就是静态优先级,只有低的node id 存活集群才能正常工作。

RH436 学习笔记(二)_学习笔记_35

恢复集群,再写参数,重启集群,nodea 关停:

RH436 学习笔记(二)_fence机制_36

关停nodeb:

RH436 学习笔记(二)_集群管理_37

再把nodec 关停,发现集群不工作了。

这时再把noded 关停,把nodea 开启,留下node id 最小的,集群仍然不能工作,一个节点确实不行。

RH436 学习笔记(二)_集群管理_38

RH436 学习笔记(二)_仲裁机制_39

RH436 学习笔记(二)_仲裁机制_40

fence机制

RH436 学习笔记(二)_RH436_41

RH436 学习笔记(二)_集群管理_42

这是一般其他厂商的做法,fence 机制在集群只有两个节点的时候很好地发挥作用,默认是重启故障节点,有自动恢复的可能,这是红帽独有的做法。

RH436 学习笔记(二)_fence机制_43

RH436 学习笔记(二)_仲裁机制_44

RH436 学习笔记(二)_学习笔记_45

除了支持服务器管理卡的fence,还有scsi fence、libvirt fence、一些云主机厂商提供的fence 等等...

RH436 学习笔记(二)_集群管理_46

RH436 学习笔记(二)_fence机制_47

RH436 学习笔记(二)_学习笔记_48

RH436 学习笔记(二)_RH436_49

RH436 学习笔记(二)_学习笔记_50

RH436 学习笔记(二)_RH436_51

RH436 学习笔记(二)_仲裁机制_52