1. 前言
本文详细介绍如何在almalinux8.9上部署基于ldiskfs的高可用的lustre容灾集群。系统环境如下:
lustre版本:2.15.4
pacemaker版本:2.0.5
操作系统:almalinux 8.9
内核版本:4.18.0-513.5.1.el8_9.x86_64
2. 集群规划
mgt 192.168.3.11 192.168.3.12
mdt0 192.168.3.11 192.168.3.12
ost0 192.168.3.11 192.168.3.12
client 192.168.3.13
3. lustre集群部署
lustre容灾集群详细部署文档可以参照lustre集群部署2,本文将不再介绍。
4. pacemaker集群部署
pacemaker集群部署文档可以参照pacemaker集群部署,本文将不再介绍。
5. 高可用集群部署
5.1. 创建resourse
5.1.1. 创建mgt资源
pcs resource create \
mgt \
ocf:lustre:Lustre \
target="/dev/disk/by-uuid/95d74a36-996f-403a-84b4-1912bec0143b" \
mountpoint="/lustre/mgt"
5.1.2. 创建mdt0资源
pcs resource create \
mdt0 \
ocf:lustre:Lustre \
target="/dev/disk/by-uuid/6feb0516-e2b1-4075-8b37-de94bb65c93b" \
mountpoint="/lustre/mdt/mdt0"
5.1.3. 创建ost0资源
pcs resource create \
ost0 \
ocf:lustre:Lustre \
target="/dev/disk/by-uuid/0be78e76-3176-40bc-bc1d-1d34ef23c775" \
mountpoint="/lustre/ost/ost0"
5.2. 配置resourse规则
5.2.1. 添加location规则
pcs constraint location mgt prefers node1=INFINITY node2=INFINITY
pcs constraint location mdt0 prefers node1=INFINITY node2=INFINITY
pcs constraint location ost0 prefers node1=INFINITY node2=INFINITY
以上配置的location规则表示:
- mgt资源、mdt0资源、ost0资源在node1和node2之间随机选择(pacmaker默认是随机选择节点)。
INFINITY
表示正无穷,意味着一定会选择该节点,-INFINITY
表示负无穷,意味着一定不会选择该节点。- 数值相等时是随机选择,数值不相等时,优先选择数值大的节点。
5.2.2. 添加colocation规则
pcs constraint colocation add mdt0 with mgt INFINITY
上述配置的colocation规则表示:
- mdt0和mgt资源必须在同一个节点上启动。
- 如果想要让mdt0和mgt资源绝对不能在同一个节点上启动,只要将
INFINITY
变成-INFINITY
。
5.2.3. 添加ordering规则
pcs constraint order \
set mgt sequential=true require-all=true action=start \
set ost0 sequential=false require-all=false action=start \
set mdt0 sequential=false require-all=false action=start
上述配置的ordering规则表示:
- 先启动mgt资源,启顺序是有序且必须全部成功启动。
- 然后启动ost0资源,启动顺序是无序且无需全部成功启动。
- 最后启动mdt0资源,启动顺序是无序且无需全部成功启动。
该规则是将多组ordering set组合成一个ordering,set之间成为了相互依赖关系。如果想要将set独立,只要单独执行pcs constraint order set
即可。
5.3. 配置fence
当pacemaker无法停掉某个服务时,可以通过fence强制将该服务所在的机器关机,然后将该服务在其他机器上再次启动。
5.3.1. 开启stonith-enabled
pcs property set stonith-enabled=true
5.3.2. 创建fence0 resource
pcs stonith create \
fence0 \
fence_ipmilan \
ip="192.168.19.64" \
username="admin" \
password="admin" \
pcmk_host_list = "node0"
pcmk_host_check = "static-list"
fence0
为resource name。fence_ipmilan
为fence agent名字,fence agent的名字可以通过pcs stonith list
命令查看。ip
为ipmi地址。pcmk_host_list
为ipmi管理的服务器地址。
其余参数都是fence_ipmilan
所支持的options,可以通过pcs stonith describe fence_ipmilan
命令查看fence_ipmilan
所有的options。
5.3.3. 创建fence1 resource
pcs stonith create \
fence1 \
fence_ipmilan \
ip="192.168.19.65" \
username="admin" \
password="admin" \
pcmk_host_list = "node1"
pcmk_host_check = "static-list"