-
- 如何保证mysql数据的一致性? ------------------- 共享存储
如果node1出现问题了, 共享存储换到node2上,心跳线就是为了检测节点是否有问题的。
但是会出现一个问题: 比如: 当node1出现问题了, node1并不认为自己有问题,因为node1认为node2和node3有问题,出现抢占资源的问题即 脑裂。
为了解决脑裂的问题:
有一个fence设备/stonith 所有节点连接到fence,一旦心跳线发现node1有问题,会通知 fence,fence会切断node1的电源,避免抢占资源。
即:在某些情况下,可能需要关闭节点以保护共享数据或完成资源恢复。为此,Pacemaker 附带了一个屏蔽子系统,stonithd。STONITH 是 “Shoot The Other Node In The Head” 的首字母缩写,通常通过一个远程电源开关实施。在 Pacemaker 中,STONITH 设备已建模为资源,以便轻松监视这些设备是否出现故障。而 stonithd 则负责了解 STONITH 拓扑,以便其客户端只需请求受屏蔽的节点,由它来执行其余操作。
-
- 资源的定义:
比如: 1. VIP 2. mysql 3. 共享存储---------打包成 服务组
-
- 资源的约束条件:
- colocation: 保证所有的资源都在同一台节点运行
- location: 实现资源优先在哪个节点上运行
- order: 定义资源的启动顺序
- group的定义:
- 资源的约束条件:
一个group定义代表了 colocation,里面 服务是在同一台节点运行的
group中定义的资源的顺序就是资源的启动顺序
group1 |
|
|
vip |
storage |
mysql |
-
- 从微观上了解HA
-
- 集群之间消息交换的方式:
openais
corosync--从openais中单独分出来的
heatbeart
CRM 集群资源管理
DC 指定协调器
CIB 集群信息库 xml : 每个节点上的CIB都是一样的
-
- 如果一个节点出现了问题,CIB就会更新,PE 策略引擎来决策哪个节点继续接服务,PE会通知DC , DC会让节点2的CRM来接管服务,CRM会让LRM 本地资源管理器执行 资源代理RA---(RA就是一系列的启动脚本:1. LSB---/etc/init.d/下面的各种脚本 2. OCF---开放集群框架 3. systemd)
-
- 集群软件有哪些?
RHCS-----已经取消了
###pacemaker + corosync 来实现高可用
heatbeart---不建议使用