抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)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 ]

评论