CentOS7基于pacemaker+corosync集群(如何使用gfs2和clvmd实现数据一致性及在线扩容问题)

节点准备

    IP              主机名
    192.168.1.51    node1
    192.168.1.52    node2
    192.168.1.40    storage     ##环境已经准备好啦,设备也共享出来了,此实验中不需要任何操作此机器,如何配置此参看https://wsfnk.com/archives/349.html

配置集群

第一:修改各节点主机名,hosts,关闭selinux和firewalld

第二:在所有node节点安装集群软件
    yum install pcs fence-agents-all -y #安装pcs会附带安装pacemaker,corosync,quota

第三:在各个node节点启动pcsd
    systemctl enable pcsd.service       #设置开机自动启动
    systemctl start pcsd.service        #立即启动

第四:集群各个node节点之间进行认证
    #为两个node节点账户设置密码(账户是hacluster),密码必须要一致
    passwd hacluster

    #配置认证(下面表示认证通过)
    pcs cluster auth node1 node2        #后面接的是主机名

[root@node1 ~]# pcs cluster auth node1 node2
Username: hacluster
Password: 
node1: Authorized
node2: Authorized

第五:创建一个名为webcluster的集群
    pcs cluster setup --name webcluster node1 node2     #在node1和node2上创建一个群集,只需要在一个node上执行

    #pcs在执行以上命令时会生产corosync.conf及修改cib.xml文件,corosync.conf问corosync的配置文件,cib.xml为pacemaker的配置文件。这两个配置文件是集群的核心配置,重装系统时建议做好这两个配置文件的备份。

第六:启动群集
    pcs cluster start --all     #启动群集
    pcs cluster enable --all    #设置集群自动启动
    pcs cluster status      #查看集群状态

安装gfs2,与clvmd

第一:在各个node节点上安装gfs2,与clvmd工具
    yum install -y lvm2-cluster gfs2-utils

    lvmconf --enable-cluster
    #重启节点
    reboot

在各个node节点上配置挂载ISCSI设备
参看此文章https://wsfnk.com/archives/360.html

配置使用gfs2文件系统,实现数据一致性

#第一:查看所挂载的磁盘id,并进行配置(以下步骤,只需在一个node节点上执行即可)
    cat /proc/partitions 
[root@node1 ~]# cat /proc/partitions
major minor  #blocks  name

   8        0   33554432 sda
   8        1    1048576 sda1
   8        2   32504832 sda2
  11        0    1048575 sr0
 253        0   30400512 dm-0
 253        1    2097152 dm-1
   8       16    4193060 sdb
   8       17    4192036 sdb1

    ll /dev/disk/by-id | grep sdb

[root@node1 ~]# ll /dev/disk/by-id | grep sdb
lrwxrwxrwx 1 root root  9 10月 25 10:01 scsi-23237636464633731 -> ../../sdb
lrwxrwxrwx 1 root root 10 10月 25 10:01 scsi-23237636464633731-part1 -> ../../sdb1

    pcs stonith create scsi-shooter fence_scsi devices=/dev/disk/by-id/scsi-23237636464633731-part1 meta provides=unfencing
    pcs property set no-quorum-policy=freeze

    pcs stonith show scsi-shooter

#第二:添加所需的资源。 它可以设置在一个节点上。 (以下步骤,只需在一个node节点上执行即可)
    pcs resource create dlm ocf:pacemaker:controld op monitor interval=30s on-fail=fence clone interleave=true ordered=true

    pcs resource create clvmd ocf:heartbeat:clvm op monitor interval=30s on-fail=fence clone interleave=true ordered=true

    pcs constraint order start dlm-clone then clvmd-clone
    pcs constraint colocation add clvmd-clone with dlm-clone
    pcs status resources

#第三:创建卷与GFS2共享存储和格式。 它可以设置在一个节点上。 在本例中,它设置在深发展和 创建分区,设置使用fdisk LVM类型 。 
    pvcreate /dev/sdb1
    vgcreate datavg /dev/sdb1
    lvcreate -n lvdata1 -L 1.5G datavg

    mkfs.gfs2 -p lock_dlm -t webcluster:san -j 2 /dev/datavg/lvdata1

#第四:添加共享存储集群资源。 它可以设置在一个节点上。
    pcs resource create fs_gfs2 Filesystem \
device="/dev/datavg/lvdata1" directory="/mnt" fstype="gfs2" \
options="noatime,nodiratime" op monitor interval=10s on-fail=fence clone interleave=true

    pcs resource show

    pcs constraint order start clvmd-clone then fs_gfs2-clone

    pcs constraint colocation add fs_gfs2-clone with clvmd-clone

    pcs constraint show

#第五:确保GFS2文件系统是安装在一个活跃的节点,也确保GFS2坐骑将搬到另一个节点如果当前活动节点将下来。
    df -hT

在线扩展逻辑卷(在其中任何一个node节点上执行就行)

    lvs #先查看
[root@node1 tmp]# lvs
  LV      VG       Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  lv_root VolGroup -wi-ao---- 28.31g                                                    
  lv_swap VolGroup -wi-ao----  3.20g                                                    
  lvdata1 datavg   -wi-ao----  1.50g

    扩展
    lvextend -L +300M /dev/datavg/lvdata1
    resize2fs /dev/datavg/lvdata1           #你会发现此命令报错,那是因为使用了gfs文件系统,这个命令不是管理gfs的,

    再次查看
[root@node1 tmp]# lvs
  LV      VG       Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  lv_root VolGroup -wi-ao---- 28.31g                                                    
  lv_swap VolGroup -wi-ao----  3.20g                                                    
  lvdata1 datavg   -wi-ao----  1.79g

    查看df挂载情况(发现还是没有变成1.79)
[root@node1 tmp]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root
                       28G  887M   26G   4% /
tmpfs                 939M   32M  908M   4% /dev/shm
/dev/sda1             477M   28M  425M   7% /boot
/dev/mapper/datavg-lvdata1
                      1.5G  388M  1.2G  26% /tmp

    需要同步gfs(此操作,只需要在其中任何一个节点执行就可以了,因为数据一致性问题已经解决了)
    gfs2_grow /dev/datavg/lvdata1

    再次查看(发现,已经正常了)
[root@node1 tmp]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root
                       28G  887M   26G   4% /
tmpfs                 939M   32M  908M   4% /dev/shm
/dev/sda1             477M   28M  425M   7% /boot
/dev/mapper/datavg-lvdata1
                      1.8G  388M  1.4G  22% /tmp
声明:本文为原创,作者为 辣条①号,转载时请保留本声明及附带文章链接:https://boke.wsfnk.com/archives/310.html
谢谢你请我吃辣条谢谢你请我吃辣条

如果文章对你有帮助,欢迎点击上方按钮打赏作者

最后编辑于:2022/12/11作者: 辣条①号

现在在做什么? 接下来打算做什么? 你的目标什么? 期限还有多少? 进度如何? 不负遇见,不谈亏欠!

暂无评论

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

arrow grin ! ? cool roll eek evil razz mrgreen smile oops lol mad twisted wink idea cry shock neutral sad ???

文章目录