首页 > 代码库 > 高可用结合gfs2,,实现集群文件系统以及集群逻辑卷。

高可用结合gfs2,,实现集群文件系统以及集群逻辑卷。

    为什么要集群文件系统,在什么场景中适用我就用一句话来概括,当多个节点需要读写同一个文件系统时,需要使用集群文件系统,它可以将文件系统持有的锁信息传递到各个节点。


实验一、将iSCSI共享出来的磁盘,做成gfs2文件系统,实现多个节点可挂载同一个文件系统,保证数据同步

实验平台:RHEL6 

环境拓扑:

wKioL1PYUc3zcQxAAAG8ds0pAao715.jpg

ansible配置前面文章有讲到    略

iSCSI服务器配置    略


用控制端让三个节点安装需要的程序包。

  • ansible all -m shell -a ‘yum install cman rgmanager -y‘

  • ansible all -m shell -a ‘yum install gfs2-utils -y‘

  • ansible all -m shell -a ‘yum install iscsi-initiator-utils -y‘

设置各节点时间同步

  • ansible all -m shell -a ‘ntpdate asia.pool.ntp.org‘

  • ansible all -m shell -a ‘date‘

wKioL1PYXuCQF70qAAFjLkiGTQU366.jpg

配置各节点登录到iSCSI-Server

  • ansible all -m shell -a ‘iscsiadm -m discovery -t sendtargets -p 192.168.18.205‘

  • ansible all -m shell -a ‘iscsiadm -m node -T iqn.2014-07.com.tuchao:share1 -p 192.168.18.205:3260 -l‘

登录成功后,用fdisk -l 可以看到iSCSI共享出来的磁盘sdb。

来到admin1.tuchao.com配置高可用。

创建一个集群

  • ccs_tool create gcluster

命令执行成功后,会在/etc/cluster目录下生成一个cluster.conf的文件。

添加节点

  • ccs_tool addnode -n 1 admin1.tuchao.com

  • ccs_tool addnode -n 2 admin2.tuchao.com

  • ccs_tool addnode -n 3 admin3.tuchao.com

将配置文件同步到各个节点

  • scp cluster.conf admin2:/etc/cluster/

  • scp cluster.conf admin3:/etc/cluster/

启动各个节点的cman和rgmanager,并设置开机自启动。

  • ansible all -m shell -a ‘service cman start‘

  • ansible all -m shell -a ‘service rgmanager start‘

  • ansible all -m shell -a ‘chkconfig cman on‘

  • ansible all -m shell -a ‘chkconfig rgmanager on‘

来到节点一对共享的iSCSI磁盘分区格式化,然后每个节点重启系统。

wKiom1PYdPezihSCAAIxdTp-ciI121.jpg

格式化/dev/sdb1为gfs2文件系统

命令帮助:

mkfs.gfs2

    -J  //指定日志区域大小

    -j  //日志区域个数

    -p  //指定锁协议

    -t  //指定锁表名称

  • mkfs.gfs2 -j 3 -p lock_dlm -t gcluster:sdb1 /dev/sdb1

wKiom1PYd37zOOU3AAIyB32L2wE941.jpg

修改fstab指定挂载点将文件同步到各个节点,启动gfs2服务自动挂载。

wKioL1PYefCQXQRdAAHJ77mQslY166.jpg

  • scp /etc/fstab admin2:/etc/

  • scp /etc/fstab admin3:/etc/

  • ansible all -m shell -a ‘service gfs2 start‘

  • ansible all -m shell -a ‘chkconfig gfs2 on‘

wKiom1PYedDz0WMIAAI3hepMV8g846.jpg

这就完成了集群文件系统,大家自行测试效果。

gfs2_grow  //重新检查磁盘边界,与集群逻辑卷扩展配合使用。

gfs2_jadd  //添加一个日志区域

gfs2_tool freeze  //冻结设备

gfs2_tool journals  //显示日志区域


实验二、集群逻辑卷创建与扩展。

首先安装支持的程序包

  • ansible all -m shell -a ‘yum install lvm2-cluster -y‘

修改三个节点的逻辑卷锁类型为集群类型,验并证/etc/lvm/lvm.conf文件。

  • ansible all -m shell -a ‘lvmconf --enable-cluster‘

  • ansible all -m shell -a "grep -i ‘^[[:space:]]*locking_type‘ /etc/lvm/lvm.conf"

wKioL1PYf8-ANFsnAAIF-wUHQ9M252.jpg

启动服务

  • ansible all -m shell -a "service clvmd start"

创建pv,vg,lv,格式化挂载。

  • pvcreate /dev/sdb2

  • vgcreate cvg /dev/sdb2

  • mkfs.gfs2 -j 2 -p lock_dlm  -t gcluster:cllv /dev/cvg/cllv

由于我们这里指定了2个日志区域,只能两个节点挂载,第三个节点挂载的时候会报错。

wKioL1PYgk7S-NtTAAEmuB33PXY771.jpg

增加一个日志区域,再挂载就不会报错了。

  • gfs2_jadd -j 1 /dev/cvg/cllv

扩展集群逻辑卷

wKiom1PYgerwNhG_AAGDtPX5NSQ524.jpg

创建只创建了5G空间,现在再给他加5G。

lvextend -L +5G /dev/cvg/cllv 

gfs2_grow /dev/cvg/cllv

wKiom1PYguiibl5RAAG6PA2f7Fc775.jpg


实验完成

本文出自 “坏人的博客” 博客,转载请与作者联系!