GFS2 依赖于RHCS 的 scsi-target-utils ,需要在本文场景中的管理节点和高可用节点分别进行设置,在管理节点中设置共享磁盘并发布,在高可用节点中发现管理节点共享的磁盘并挂载到本地
使用fdisk -l 命令查看在1.2 步骤添加的磁盘,即列表中的 /dev/sdb 。

可看到该磁盘上没有任何分区,需要对其进行分区设置。在本文场景中把 /dev/sdb 的全部空间划分给一个分区。分区后通过 fdisk -l 查看,可以看到空间全部划分给了 /dev/sdb1 ,该分区将会作为共享磁盘共享给两个高可用节点。

启动 target 服务(tgtd )并设置该服务为自动启动。
service tgtd start
chkconfig tgtd on
通过tgtadm 命令创建一个名称RHGFS 的共享磁盘。
tgtadm --lld iscsi --mode target --op new --tid 1 -T iqn.2014-11.com.gbt:RHGFS
在上面命令中,--lld 为驱动类型,这里必须指定为iscsi ,--mode 为操作模式,这里的target 表示是对共享磁盘进行操作,--op 是操作类型,new 代表创建,--tid 是能够唯一标识共享磁盘的一个序号,通常从1 开始,这里设置为1 ,-T 参数指定共享磁盘的具体信息,该信息是遵循一定规则的,通常为 iqn.YYYY-MM.YourCompanyName:TargetLabel 这样的形式,其中的YourCompanyName 一般是公司名称的反序写法,通常是服务器hostname 中localdomain 部分的反序,TargetLabel 是一个唯一名称,用于标识共享磁盘。
创建完成共享磁盘后,可以查看其状态,也是使用tgtadm 命令。
tgtadm --lld iscsi --mode target --op show
下面是上述操作的结果截屏:

上述操作只是创建了共享磁盘的标识,该标识并未指定具体要共享出去的物理设备,需要继续进行下面的操作。
tgtadm --lld iscsi --mode logicalunit --op new --tid 1 --lun 1 -b /dev/sdb
上面命令中,操作模式变成了logicalunit ,同时还通过--lun 参数指定共享磁盘的LUN (Logical Unit Number )号,通过-b 参数指定对应的物理设备。这里要注意的是,--tid 参数的值必须与上面创建共享磁盘时的--tid 参数的值相同。
再次查看共享磁盘,其信息已经发生了变化。

在2.1.2 中创建完成的共享磁盘到目前为止还不能为任何节点所用,需要对其进行发布,还是使用tgtadm 命令操作。
tgtadm --lld iscsi --mode target --op bind --tid 1 -I 172.16.20.137
tgtadm --lld iscsi --mode target --op bind --tid 1 -I 172.16.20.137
上面命令中,操作类型变成了bind ,即把共享磁盘发布出去,-I 参数指定的IP 地址即是要把该共享磁盘发布给的节点。在本文场景中,名称为RHGFS 的共享磁盘共发布给了两个节点。
再次查看共享磁盘,可以看到该共享磁盘已经发布给了两个节点。

至此,共享端的操作全部完成,后面需要高可用节点来找到和使用这里发布出去的共享磁盘。
高可用节点要想通过GFS2 使用管理节点上发布的共享磁盘,需要经过发现、登录、本地化几个步骤。下面以r6601.gbt.com 节点(下文简称为r6601 节点,其IP 地址为172.16.20.137 )为例进行说明。
虽然管理节点已经向两个高可用节点发布的共享磁盘,但在高可用节点上却不能立即看到。
在r6601 节点上通过fdisk -l 查看磁盘,是看不到管理节点上发布的共享磁盘的。

在r6601 节点找到 /etc/iscsi 目录下找到initiatorname.iscsi 文件,在其最后添加下面一行内容:
InitiatorAlias=r6601.gbt.com
启动 iscsi 服务并设置该服务为自动启动。
service iscsi start
chkconfig iscsi on
通过iscsiadm 命令去发现发布给r6601 的的共享磁盘。
iscsiadm -m discovery -t sendtargets -p 172.16.20.139:3260

命令执行完成后,可以看到发现了在管理节点上发布的标识号为1 且名称为RHGFS 的共享磁盘。
上面仅是发现了发布给自己的共享磁盘,但还不能对该共享磁盘有任何控制,需要通过iscsiadm 登录到该发布,之后就可以在本地挂载和使用这个共享磁盘了。
iscsiadm –m node -T iqn.2014-11.com.gbt:RHGFS -p 172.16.20.139:3260 -l
通过fdisk -l 可以在本地看到远程的共享磁盘。

启用高可用节点上的集群逻辑卷管理服务。
lvmconf --enable-cluster
service clvmd start
chkconfig clvmd on
在共享磁盘上创建物理卷、卷组。
pvcreate -ff /dev/sdb1
vgcreate gfsvg /dev/sdb1
vgdisplay

使用当前卷组的全部空间(通过 -l 254 实现)创建逻辑卷。
lvcreate -l 254 -n gfslv gfsvg
注意,在这里执行lvcreate 步骤时会报错,这时需要到另外一个高可用节点r6602.gbt.com 上执行2.2.1 和2.2.2 两个步骤,并执行上面的pvcreate 和vgcreate 两个命令,之后再在r6601 上执行上述lvcreate 就可以成功了。
通过lvscan 命令查看,能看到刚创建的逻辑卷就成功了。

这里,在r6602 节点上通过lvscan 也可以看到相同的逻辑卷。
使用mkfs.gfs2 格式化共享磁盘。格式化命令如下:
mkfs.gfs2 -p lock_dlm -t rc66:sdgfs -j 2 /dev/mapper/gfsvg-gfslv
上述命令中,把本地化处理完成的共享磁盘进行格式化,-p 参数指定GFS 的锁机制,通常为lock_dlm ,-t 参数指定格式化后用于在所有高可用节点间互相共享的名称,格式为ClusterName:ResourceAlias ,这里的ClusterName 在后面的高可用集群配置中使用,-j 参数代表journal 的个数,指的是允许有多少个高可用节点来访问该共享磁盘。

在本地创建目录,把上面格式化后的共享磁盘挂载到该目录,注意mount 命令需要指定 -t gfs2 参数。本文场景中的本地目录为/mnt/GFS 。
在r6602 节点上也执行上面的mkfs.gfs2 和mount 命令,要注意这两个命令的参数值要与r6601 上的命令完全相同。
在r6601 的/mnt/GFS 目录下创建一个文件,在r6602 的同名目录下也可以看到该文件。
在r6601 和r6602 两个节点中,任何一个对文件进行了改动,另外一个节点都可以看到对方改动的内容。
至此,GFS2 的设置全部完成了。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69980677/viewspace-2764231/ ,如需转载,请注明出处,否则将追究法律责任。