Lustre集群部署-基于ldiskfs的高可用集群
1. 前言
本文详细介绍如何在almalinux8.9上部署基于ldiskfs的lustre主备模式的高可用集群。系统环境如下:
lustre: 2.15.4
pacemaker: 2.0.5
linux os: almalinux 8.9
linux kernel: 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
pacemaker 192.168.3.11 192.168.3.12
corosync 192.168.3.11 192.168.3.12
3. lustre集群部署
lustre容灾集群详细部署文档可以参照Lustre集群部署-基于ldiskfs的多机集群,本文将不再介绍。
4. pacemaker集群部署
Lustre本身没有自动容灾机制,需要借助第三方集群管理工具pacemaker来实现高可用。pacemaker集群部署文档可以参照pacemaker集群部署,本文将不再介绍。
5. 高可用集群部署
5.1. 安装lustre resource agent
dnf install lustre-resource-agents
可以通过pcs resource agents ocf:lustre:Lustre查看lustre resource agent是否已经安装。
5.2. 创建resourse
5.2.1. 创建mgt资源
pcs resource create \
mgt \
ocf:lustre:Lustre \
target="/dev/disk/by-uuid/95d74a36-996f-403a-84b4-1912bec0143b" \
mountpoint="/lustre/mgt"
5.2.2. 创建mdt0资源
pcs resource create \
mdt0 \
ocf:lustre:Lustre \
target="/dev/disk/by-uuid/6feb0516-e2b1-4075-8b37-de94bb65c93b" \
mountpoint="/lustre/mdt/mdt0"
5.2.3. 创建ost0资源
pcs resource create \
ost0 \
ocf:lustre:Lustre \
target="/dev/disk/by-uuid/0be78e76-3176-40bc-bc1d-1d34ef23c775" \
mountpoint="/lustre/ost/ost0"
5.3. 配置resourse规则
5.3.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.3.2. 添加colocation规则
pcs constraint colocation add mdt0 with mgt INFINITY
上述配置的colocation规则表示:
- mdt0和mgt资源必须在同一个节点上启动。
- 如果想要让mdt0和mgt资源绝对不能在同一个节点上启动,只要将
INFINITY变成-INFINITY。
5.3.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.4. 配置fence
当pacemaker无法停掉某个服务时,可以通过fence强制将该服务所在的机器关机,然后将该服务在其他机器上再次启动。
5.4.1. 开启stonith-enabled
pcs property set stonith-enabled=true
5.4.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.4.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"