抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

RHCA436-基于CentOS8pacemaker+corosync 集群逻辑卷

一、概念

  • LVM

普通lVM,当在一个节点创建了LVM,LVM信息是不能实时同步到其他节点的

  • HA-LVM

如果格式化的文件系统时ext4或者xfs,则使用HA-LVM,该LVM同时只能再一个节点挂载使用,因为ext4和xfs没有锁机制,如果同时挂载,可能会导致脑裂

  • shared-LVM

如果格式化的文件系统时GFS2集群级文件系统,则可以使用CLuster-LVM,可以同时再所有节点挂载使用

二、HA-LVM配置

1.准备工作

[student@workstation ~]$ lab start lvm-ha

2.修改配置文件

vim /etc/lvm/lvm.conf
system_id_source = "uname"
说明:用于区分卷组所在的主机

3.创建逻辑卷

pvcreate /dev/mapper/storage1
vgcreate clustervg /dev/mapper/storage1
lvcreate -L 1G -n halv clustervg
mkfs.xfs /dev/clustervg/halv

4.创建逻辑卷资源

pcs resource describe LVM-activate
pcs resource create halvm LVM-activate vgname=clustervg vg_access_mode=system_id --group halvmfs
说明:
vg_access_mode=system_id 表示集群用system_id区分lvm运行哪个节点
lvm systemid

5.创建文件系统资源

pcs resource create xfsfs Filesystem device=/dev/clustervg/halv directory=/halvm fstype=xfs --group=halvmfs

6.查看集群状态

[root@nodea ~]# pcs resource status
* Resource Group: halvmfs:
* halvm (ocf::heartbeat:LVM-activate): Started nodeb.private.example.com
* xfsfs (ocf::heartbeat:Filesystem): Started nodeb.private.example.com

7.查看nodeb节点挂载情况

[root@nodeb ~]# vgs
VG #PV #LV #SN Attr VSize VFree
clustervg 1 1 0 wz--n- <10.00g <9.00g
[root@nodeb ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
halv clustervg -wi-a----- 1.00g
[root@nodeb ~]# df -h
...
/dev/mapper/clustervg-halv 1014M 40M 975M 4% /halvm

8.测试

[root@nodea ~]# pcs resource move halvmfs
[root@nodea ~]# pcs resource status
* Resource Group: halvmfs:
* halvm (ocf::heartbeat:LVM-activate): Started nodea.private.example.com
* xfsfs (ocf::heartbeat:Filesystem): Started nodea.private.example.com
[root@nodea ~]# df -h
...
/dev/mapper/clustervg-halv 1014M 40M 975M 4% /halvm

9.清除环境

[student@workstation ~]$ lab finish lvm-ha

三、LVM share volume group 配置

1.准备工作

[student@workstation ~]$ lab start lvm-shared

2.在所有节点安装软件包

yum -y install lvm2-lockd dlm
dlm: 分布式锁
clvmd:clvmd 守护进程是 CLVM 的核心。clvmd 守护进程在每个集群计算机上运行,并更新 LVM 元数据,让集群的每个计算机上的 LVM 信息都保持一致
设定 clvmd 和 dlm 相依性及启动顺序。必须在 dlm 之后启动clvmd,且必须在 dlm 所在的同一节点中运行。

3.配置集群分布式锁

[root@nodea ~]# pcs resource create dlm ocf:pacemaker:controld op monitor interval=30s on-fail=fence --group=locking
[root@nodea ~]# pcs resource create lvmlockd ocf:heartbeat:lvmlockd op monitor interval=30s on-fail=fence --group=locking
[root@nodea ~]# pcs resource
* Resource Group: locking:
* dlm (ocf::pacemaker:controld): Started nodea.private.example.com
* lvmlockd (ocf::heartbeat:lvmlockd): Started nodea.private.example.com

4.配置clone,让资源运行在集群所有节点

[root@nodea ~]# pcs resource clone locking interleave=true
interleave=true, 这个设置为false的时候, constraint的order顺序的受到其他节点的影响, 为true不受其他节点影响
[root@nodea ~]# pcs status --full
Full List of Resources:
* Clone Set: locking-clone [locking]:
* Resource Group: locking:0:
* dlm (ocf::pacemaker:controld): Started nodec.private.example.com
* lvmlockd (ocf::heartbeat:lvmlockd): Started nodec.private.example.com
* Resource Group: locking:1:
* dlm (ocf::pacemaker:controld): Started nodeb.private.example.com
* lvmlockd (ocf::heartbeat:lvmlockd): Started nodeb.private.example.com
* Resource Group: locking:2:
* dlm (ocf::pacemaker:controld): Started nodea.private.example.com
* lvmlockd (ocf::heartbeat:lvmlockd): Started nodea.private.example.com

5.创建逻辑卷,所有节点都会生效

1.创建pv
[root@nodea ~]# pvcreate /dev/mapper/mpatha
2.创建共享的卷组
[root@nodea ~]# vgcreate --share sharevg /dev/mapper/mpatha
3.在其他节点执行
ssh root@nodeb
vgchange --lock-start sharevg
ssh root@nodec
vgchange --lock-start sharevg
--lock-start: Start the lockspace of a shared VG in lvmlockd
4.创建一个共享锁的逻辑卷
[root@nodea ~]# lvcreate --activate sy -L 1G -n sharelv1 sharevg

6.创建逻辑卷资源

[root@nodea ~]# pcs resource create sharelvm1 LVM-activate vgname=sharevg lvname=sharelv1 activation_mode=shared vg_access_mode=lvmlockd --group=LVMshared
vg_access_mode=system_id HA-LVM
vg_access_mode=lvmlockd shared-LVM

7.克隆逻辑卷资源

[root@nodea ~]# pcs resource clone LVMshared interleave=true

8.设置资源先后启动顺序,先启动locking-clone,再启动LVMshared-clone

[root@nodea ~]# pcs constraint order start locking-clone then LVMshared-clone

9.设置两个资源组运行在同一个节点

[root@nodea ~]# pcs constraint colocation add LVMshared-clone with locking-clone
[root@nodea ~]# pcs constraint
Location Constraints:
Ordering Constraints:
start locking-clone then start LVMshared-clone (kind:Mandatory)
Colocation Constraints:
LVMshared-clone with locking-clone (score:INFINITY)
Ticket Constraints:
[root@nodea ~]# pcs resource status
* Clone Set: locking-clone [locking]:
* Started: [ nodea.private.example.com nodeb.private.example.com nodec.private.example.com ]
* Clone Set: LVMshared-clone [LVMshared]:
* Started: [ nodea.private.example.com nodeb.private.example.com nodec.private.example.com ]

评论