文章目录
节点准备
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
如果文章对你有帮助,欢迎点击上方按钮打赏作者
暂无评论