iSCSI+GFS实现网络存储(2)

二、安装iscsi-initiator-utils,在节点机上安装

#yum install iscsi-initiator-utils

安装需要的软件包

[root@gfs1 ~]# yum install -y cman gfs-utils kmod-gfs kmod-dlm cluster-snmp lvm2-cluster rgmanager

指定initiator alias name

#echo "InitiatorAlias=gfs1" >> /etc/iscsi/initiatorname.iscsi

创建cluster.conf配置文件,安装完成后并没有此文件,需自己创建:

#vi /etc/cluster/cluster.conf

<?xml version="1.0"?>

<cluster config_version="1">

##这一行定义了cluster的名称,其中config_version是表示该配置文件被配置的次数

##(在RedHat Cluster中,各个节点是同配置版本数值也就是配置次数最高的配置文件进行学习同步报)

<clusternodes>

<clusternode votes="1" nodeid="1">

##这一行定义了cluster节点的名称,节点id以及投票权,节点名一般就是节点的主机名

<fence>

<method>

<device nodename="gfs1"/>

</method>

</fence>

</clusternode>

<clusternode votes="1" nodeid="2">

<fence>

<method>

<device nodename="gfs2"/>

</method>

</fence>

</clusternode>

<clusternode votes="1" nodeid="3">

<fence>

<method>

<device nodename="gfs3"/>

</method>

</fence>

</clusternode>

</clusternodes>

<fencedevices>

<fencedevice agent="fence_manual"/>

<fencedevice agent="fence_manual"/>

<fencedevice agent="fence_manual"/>

</fencedevices>

<rm>

<failoverdomains/>

<resources/>

</rm>

</cluster>

(fence也是RedHat Cluster的产物,没有它GFS也没法工作,fence的作用就是当一个节点宕掉(和cluster断掉联系)后,其他的正常节点会通过fence设备来把宕掉的设备fence掉,把宕掉的设备踢出cluster保证整个cluster的正常运行,而fence设备一般是服务器自带硬件设备,如hp的ilo口,IBM和dell的ipmi等等,由于服务器硬件的不同,导致不同的fence设备的配置方法不同,我这里为虚拟机没有fence设备,因此采用fence_manual的方法来手工设置,手工fence的功能是:当一个节点宕掉后我们需要在正常的节点上输入命令:“# fence_ack_manual -n 宕掉的节点名 ” 来把cluster的主机隔离掉,才能让正常的节点正常工作。现在本人对cluster.conf了解的也并不是非常的熟悉,故不能给出更详细的解答,不过可以输入命令:man 5 cluster.conf查看帮助文件。在各个节点机上都需创建此cluster.conf文件。)

(注:配置文件并不是非常的标准,自己根据需要还可以添加更多的内容与修改,这里只是一个简单的例子)

启动iscsi daemon

#service iscsi start

#chkconfig iscsi on

利用iscsiadm命令探测iscsi device:

# iscsiadm -m discovery -t sendtargets -p 192.168.1.240:3260

192.168.1.240:3260,1 iqn.2011-01.com.chinaitv:rhcs-storage

登入iscsi target

#iscsiadm -m node -T iqn.2011-01.com.chinaitv:rhcs-storage -p 192.168.1.240:3260 -l

Logging in to [iface: default, target: iqn.2011-01.com.chinaitv:rhcs-storage, portal: 192.168.1.240,3260]

Login to [iface: default, target: iqn.2011-01.com.chinaitv:rhcs-storage, portal: 192.168.1.240,3260]: successful

登入成功后,利用fdisk -l可以发现多处两个硬盘分区。

iSCSI+GFS实现网络存储


(若想退出则使用:iscsiadm -m node -T iqn.2011-01.com.chinaitv:rhcs-storage -p 192.168.1.240:3260 -u)

在该节点上创建一个名为gfsvg的 LVM 卷组

#pvcreate -ff /dev/sdb

#vgcreate gfsvg /dev/sdb

列出VG大小:

#vgdisplay gfsvg |grep "Total PE "

Total PE 717

创建lv

# lvcreate -l 717 -n gfs gfsvg

Logical volume "gfs" created

# cman_tool status | grep "Cluster Name"

cman_tool: Cannot open connection to cman, is it running ?

原因是没有启动服务,启动服务:

# service cman start

在该节点上创建一个GFS卷,格式化GFS 文件系统,通过命令:

gfs_mkfs -p lock_dlm -t ClusterName:FSName -j Number BlockDevice

格式化gfs文件格式:

-p 这个参数后边跟的是gfs锁机制,一般情况下就用lock_dlm

-t 后边是ClusterName:FSName

其中ClusterName是cluster名,就是cluster.conf配置文件中指定的cluster名,FSName是给新格式化好的gfs分区的名字

-j 代表是journal的个数,一般情况是2个除非一些特殊情况否则不用再单作调整

BlockDevice 就是要被格式化的设备名称。

下面是一个格式化GFS命令的实例:

#gfs_mkfs -p lock_dlm -t GFSCluster:gfs -j 3 /dev/gfsvg/gfs

iSCSI+GFS实现网络存储


载入相应的gfs模块,并查看lv是否成功

# modprobe gfs
# modprobe gfs2
# chkconfig gfs on
# chkconfig gfs2 on

# chkconfig clvmd on

# /etc/init.d/gfs restart
# /etc/init.d/gfs2 restart
# /etc/init.d/clvmd restart

# lvscan

ACTIVE '/dev/gfsvg/gfs' [2.80 GB] inherit ##表示成功

把新建的逻辑磁盘挂载到本地:

#mount -t gfs /dev/gfsvg/gfs /opt

#df -h

iSCSI+GFS实现网络存储


进入/opt目录,建立新文件(之后到新节点上挂载,以作验证是否gfs创建并挂载成功)

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/ppyjy.html