本文转载于 http://www.linuxidc.com/Linux/2011-09/43536.htm
CentOS 5上iSCSI+GFS共享存储的实现
[日期:2011-09-22] | 来源:Linux社区 作者:yinglong |
一、安装
系统环境:CentOS release 5.5 – 2.6.18-194.el5xen
安装iscsi-target,存储目标端即存储端
在有共享磁盘的主机上安装iscsi-target
安装iscsi-initiator,存储服务端
在使用共享存储的主机上安装iscsi-initiator,所有GFS节点
安装global file system,全局文件系统
在使用共享存储的主机上安装gfs模块
gfs主要组件有,集群卷管理、锁管理、集群管理、集群配置管理、围栏和恢复。
在这里,假定有3台计算机,它们的IP分别是192.168.0.7 192.168.0.8 192.168.0.24
192.168.0.24 192.168.0.7上各有一块可用磁盘,作为共享磁盘
3台计算机都是GFS节点,即使用共享磁盘
在192.168.0.24上,安装配置iscsi-target,iscsi-initiator,gfs
在192.168.0.7上,安装配置iscsi-target,iscsi-initiator,gfs
在192.168.0.8上,安装配置iscsi-initiator,gfs
1、安装iscsi-target
#yum install scsi-target-utils
#yum install libibverbs-devel libibverbs librdmacm librdmacm-devel
2、安装iscsi-initiator
#yum install iscsi-initiator-utils
3、安装gfs
#yum install -y gfs2-utils cman kmod-gfs kmod-dlm cluster-snmp lvm2-cluster rgmanager
二、配置共享存储
配置iscsi-target
建立target device
配置iscsi-initiator
记录并登录target device
配置GFS共享
利用GFS实现文件共享和同步
1、配置iscsi-target
#/etc/init.d/tgtd start
在192.168.0.24新建分区(fdisk):/dev/sda9
#tgtadm --lld iscsi --op new --mode target --tid 1 -T iqn.2011-09.com.nfschina:nfs-storage24
添加一个新的iscsi-target:iqn.2011-09.com.nfschina:nfs-storage
--tid 目标id
--T 相当于—targetname 目标名
iqn(iSCSI Qualified Name)命名规则:
格式 意义 范例
yyyy-mm 年份-月份 2011-09
Reversed-domain-name 把域名反过来写,通常把公司域名反过来写 com.nfschina
identifier 识别字,通常注明这个存储空间的用途 nfs-storage
#tgtadm --lld iscsi --op new --mode logicalunit --tid 1 --lun 1 -b /dev/sda9
把磁盘分区添加到目标设备。
#tgtadm --lld iscsi - -op show - -mode target 查看目标设备
#tgtadm --lld --op bind –mode target –tid 1 -I initiator-ip
如果需要对所有initiator可存取,则将initiator-ip换成ALL
#tgtadm --lld iscsi --op bind --mode target --tid 1 -I 192.168.0.7
#tgtadm --lld iscsi --op bind --mode target --tid 1 -I ALL
使用相同方法,在192.168.0.7上配置iscsi-target,target名为 iqn.2011-09.com.nfschina:nfs-storage07
2、配置iscsi-initiator
3台计算机均安装配置iscsi-initiator
#/etc/init.d/iscsi start
启动iscsi模块
#iscsiadm -m discovery -t sendtargets -p 192.168.0.24
#iscsiadm -m discovery -t sendtargets -p 192.168.0.7
利用iscsiadm命令探测iscsi device
命令执行完成后,将在本地的记录设备信息:/var/lib/iscsi/nodes/iqn.2011-09.com.nfschina:rhcs-storage08/
下次启动iscsi时将会自动读取信息并登录到该设备,如需取消自动登录,则删掉对应文件夹
#iscsiadm -m node -T iqn.2011-09.com.nfschina:nfs-storage24 -p 192.168.0.24 -l
#iscsiadm -m node -T iqn.2011-09.com.nfschina:nfs-storage07 -p 192.168.0.7 -l
登录到target设备。
登录成功后,利用fdisk -l可以发现多了两个硬盘分区sdb,sdc,这就是iscsi共享的分区。
登出:#iscsiadm -m node -T iqn.2011-09.com.nfschina:nfs-storage -p target-ip -u
3、配置GFS
首先在3台计算机上的/etc/hosts文件末尾添加如下内容
192.168.0.24 gfs1
192.168.0.8 gfs2
192.168.0.7 gfs3
有几个GFS节点就添加几行,每个节点上都要添加
下面以配置gfs1节点为例
#echo ''initiatorAlias=gfs1''>> /etc/iscsi/initiatorname.iscsi
指定initiator别名
创建配置文件:/etc/cluster/cluster.conf,添加如下内容
<?xml version="1.0"?>
<cluster name="GFSCluster" config_version="1">
<clusternodes>
<clusternode name="gfs1" votes="1" nodeid="1">
<fence>
<method name="single">
<device name="node1" nodename="gfs1"/>
</method>
</fence>
</clusternode>
<clusternode name="gfs2" votes="1" nodeid="2">
<fence>
<method name="single">
<device name="node2" nodename="gfs2"/>
</method>
</fence>
</clusternode>
<clusternode name="gfs3" votes="1" nodeid="3">
<fence>
<method name="single">
<device name="node3" nodename="gfs3"/>
</method>
</fence>
</clusternode>
</clusternodes>
<fencedevices>
<fencedevice name="node1" agent="fence_manual"/>
<fencedevice name="node2" agent="fence_manual"/>
<fencedevice name="node3" agent="fence_manual"/>
</fencedevices>
<rm>
<failoverdomains/>
<resources/>
</rm>
</cluster>
#/etc/init.d/gfs start
#/etc/init.d/gfs2 start
启用gfs服务。
#/etc/init.d/rgmanager start
启用集群管理。
#/etc/init.d/cman start
启用集群。
#/etc/init.d/clvm start
启用集群卷管理。
ps:以上至“3、配置GFS” 部分须在每个GFS节点(3台计算机)执行。
下面的配置内容任选一台计算机执行即可。
假定登录节点登录到taget设备后,本地主机多出了/dev/sdb /dev/sdc磁盘
#pvcreate -ff /dev/sdb 通过pvdisplay查看物理卷详情
#pvcreate -ff /dev/sdc
#vgcreate gfsvg /dev/sdb /dev/sdc 通过vgscan探测物理卷组
可以添加多个磁盘到组中 #vgcreate gfsvg /dev/sdb /dev/sdc /sdd
#vgdisplay
查看vg组信息,找到磁盘容量 Total PE 1126
#lvcreate -l 1126 -n gfs gfsvg
在组物理卷组gfsvg上建立逻辑卷gfs
#gfs_mkfs -p lock_dlm -t GFSCluster:gfs -j 3 /dev/gfsvg/gfs
-p后面跟gfs锁管理机制,lock_dlm锁实现了集群读写同步
-t后面是ClusterName:FSName 即/etc/cluster/cluster.conf中的集群名及要给格式化好的gfs分区名字
-j指定日志个数
最后的参数是要格式化的设备名,如新建的逻辑卷名
三、使用GFS共享
配置GFS后,可以在任一节点挂载使用共享卷
GFS支持动态扩容
由于GFS实现了读写同步,因此崩溃时数据已经保存到磁盘,恢复GFS服务即可
1、挂载GFS
#vim /etc/lvm/lvm.conf 修改下项
locking_type = 3
#lvscan
ACTIVE '/dev/gfsvg/gfs' [4.80 GB] inherit
#mount -t gfs /dev/gfsvg/gfs /mountpoint
使用#df -h检查gfs是否挂在成功
#vim /etc/lvm/lvm.conf
locking_type = 1
2、GFS扩容
例如,要将sdc磁盘加入到/dev/gfsvg/gfs共享
#pvcreate -ff /dev/sdd
#vgextend gfsvg /dev/sdd
#lvextend /dev/gfsvg/gfs /dev/sdd
#gfs_grow /dev/gfsvg/gfs
3、GFS恢复
iscsi-target配置是一次性的,重启tgtd或者主机断电重启后会失去所有配置。所以恢复GFS首先要
重新配置iscsi-target。
#/etc/init.d/gfs start
#/etc/init.d/gfs2 start
按顺序启动服务:
#/etc/init.d/rgmanager start
#/etc/init.d/cman start
#/etc/init.d/clvm start
#vim /etc/lvm/lvm.conf ##locking_type = 3
#lvscan
#mount /dev/gfsvg/gfs /mountpoint
#vim /etc/lvm/lvm.conf ##locking_type = 1
四、问题解答
1、不能挂载gfs模块
模块与内核版本不符,重新安装对应版本的gfs.
2、#lvscan
Skipping Cluster Volume group
修改/etc/lvm/lvm.conf locking_type = 3
3、#lvscan
inactive '/dev/gfsvg/gfs' [4.86 GB] inherit
#lvchange -ay /dev/gfsvg/gfs
4、启动cman服务时,不能启动fenced
集群中,fenced设备不能单独使用。
同时启动集群内超过半数的节点可以很快启动成功。
遇到其他问题请及时反馈。
系统环境:CentOS release 5.5 – 2.6.18-194.el5xen
安装iscsi-target,存储目标端即存储端
在有共享磁盘的主机上安装iscsi-target
安装iscsi-initiator,存储服务端
在使用共享存储的主机上安装iscsi-initiator,所有GFS节点
安装global file system,全局文件系统
在使用共享存储的主机上安装gfs模块
gfs主要组件有,集群卷管理、锁管理、集群管理、集群配置管理、围栏和恢复。
在这里,假定有3台计算机,它们的IP分别是192.168.0.7 192.168.0.8 192.168.0.24
192.168.0.24 192.168.0.7上各有一块可用磁盘,作为共享磁盘
3台计算机都是GFS节点,即使用共享磁盘
在192.168.0.24上,安装配置iscsi-target,iscsi-initiator,gfs
在192.168.0.7上,安装配置iscsi-target,iscsi-initiator,gfs
在192.168.0.8上,安装配置iscsi-initiator,gfs
1、安装iscsi-target
#yum install scsi-target-utils
#yum install libibverbs-devel libibverbs librdmacm librdmacm-devel
2、安装iscsi-initiator
#yum install iscsi-initiator-utils
3、安装gfs
#yum install -y gfs2-utils cman kmod-gfs kmod-dlm cluster-snmp lvm2-cluster rgmanager
二、配置共享存储
配置iscsi-target
建立target device
配置iscsi-initiator
记录并登录target device
配置GFS共享
利用GFS实现文件共享和同步
1、配置iscsi-target
#/etc/init.d/tgtd start
在192.168.0.24新建分区(fdisk):/dev/sda9
#tgtadm --lld iscsi --op new --mode target --tid 1 -T iqn.2011-09.com.nfschina:nfs-storage24
添加一个新的iscsi-target:iqn.2011-09.com.nfschina:nfs-storage
--tid 目标id
--T 相当于—targetname 目标名
iqn(iSCSI Qualified Name)命名规则:
格式 意义 范例
yyyy-mm 年份-月份 2011-09
Reversed-domain-name 把域名反过来写,通常把公司域名反过来写 com.nfschina
identifier 识别字,通常注明这个存储空间的用途 nfs-storage
#tgtadm --lld iscsi --op new --mode logicalunit --tid 1 --lun 1 -b /dev/sda9
把磁盘分区添加到目标设备。
#tgtadm --lld iscsi - -op show - -mode target 查看目标设备
#tgtadm --lld --op bind –mode target –tid 1 -I initiator-ip
如果需要对所有initiator可存取,则将initiator-ip换成ALL
#tgtadm --lld iscsi --op bind --mode target --tid 1 -I 192.168.0.7
#tgtadm --lld iscsi --op bind --mode target --tid 1 -I ALL
使用相同方法,在192.168.0.7上配置iscsi-target,target名为 iqn.2011-09.com.nfschina:nfs-storage07
2、配置iscsi-initiator
3台计算机均安装配置iscsi-initiator
#/etc/init.d/iscsi start
启动iscsi模块
#iscsiadm -m discovery -t sendtargets -p 192.168.0.24
#iscsiadm -m discovery -t sendtargets -p 192.168.0.7
利用iscsiadm命令探测iscsi device
命令执行完成后,将在本地的记录设备信息:/var/lib/iscsi/nodes/iqn.2011-09.com.nfschina:rhcs-storage08/
下次启动iscsi时将会自动读取信息并登录到该设备,如需取消自动登录,则删掉对应文件夹
#iscsiadm -m node -T iqn.2011-09.com.nfschina:nfs-storage24 -p 192.168.0.24 -l
#iscsiadm -m node -T iqn.2011-09.com.nfschina:nfs-storage07 -p 192.168.0.7 -l
登录到target设备。
登录成功后,利用fdisk -l可以发现多了两个硬盘分区sdb,sdc,这就是iscsi共享的分区。
登出:#iscsiadm -m node -T iqn.2011-09.com.nfschina:nfs-storage -p target-ip -u
3、配置GFS
首先在3台计算机上的/etc/hosts文件末尾添加如下内容
192.168.0.24 gfs1
192.168.0.8 gfs2
192.168.0.7 gfs3
有几个GFS节点就添加几行,每个节点上都要添加
下面以配置gfs1节点为例
#echo ''initiatorAlias=gfs1''>> /etc/iscsi/initiatorname.iscsi
指定initiator别名
创建配置文件:/etc/cluster/cluster.conf,添加如下内容
<?xml version="1.0"?>
<cluster name="GFSCluster" config_version="1">
<clusternodes>
<clusternode name="gfs1" votes="1" nodeid="1">
<fence>
<method name="single">
<device name="node1" nodename="gfs1"/>
</method>
</fence>
</clusternode>
<clusternode name="gfs2" votes="1" nodeid="2">
<fence>
<method name="single">
<device name="node2" nodename="gfs2"/>
</method>
</fence>
</clusternode>
<clusternode name="gfs3" votes="1" nodeid="3">
<fence>
<method name="single">
<device name="node3" nodename="gfs3"/>
</method>
</fence>
</clusternode>
</clusternodes>
<fencedevices>
<fencedevice name="node1" agent="fence_manual"/>
<fencedevice name="node2" agent="fence_manual"/>
<fencedevice name="node3" agent="fence_manual"/>
</fencedevices>
<rm>
<failoverdomains/>
<resources/>
</rm>
</cluster>
#/etc/init.d/gfs start
#/etc/init.d/gfs2 start
启用gfs服务。
#/etc/init.d/rgmanager start
启用集群管理。
#/etc/init.d/cman start
启用集群。
#/etc/init.d/clvm start
启用集群卷管理。
ps:以上至“3、配置GFS” 部分须在每个GFS节点(3台计算机)执行。
下面的配置内容任选一台计算机执行即可。
假定登录节点登录到taget设备后,本地主机多出了/dev/sdb /dev/sdc磁盘
#pvcreate -ff /dev/sdb 通过pvdisplay查看物理卷详情
#pvcreate -ff /dev/sdc
#vgcreate gfsvg /dev/sdb /dev/sdc 通过vgscan探测物理卷组
可以添加多个磁盘到组中 #vgcreate gfsvg /dev/sdb /dev/sdc /sdd
#vgdisplay
查看vg组信息,找到磁盘容量 Total PE 1126
#lvcreate -l 1126 -n gfs gfsvg
在组物理卷组gfsvg上建立逻辑卷gfs
#gfs_mkfs -p lock_dlm -t GFSCluster:gfs -j 3 /dev/gfsvg/gfs
-p后面跟gfs锁管理机制,lock_dlm锁实现了集群读写同步
-t后面是ClusterName:FSName 即/etc/cluster/cluster.conf中的集群名及要给格式化好的gfs分区名字
-j指定日志个数
最后的参数是要格式化的设备名,如新建的逻辑卷名
三、使用GFS共享
配置GFS后,可以在任一节点挂载使用共享卷
GFS支持动态扩容
由于GFS实现了读写同步,因此崩溃时数据已经保存到磁盘,恢复GFS服务即可
1、挂载GFS
#vim /etc/lvm/lvm.conf 修改下项
locking_type = 3
#lvscan
ACTIVE '/dev/gfsvg/gfs' [4.80 GB] inherit
#mount -t gfs /dev/gfsvg/gfs /mountpoint
使用#df -h检查gfs是否挂在成功
#vim /etc/lvm/lvm.conf
locking_type = 1
2、GFS扩容
例如,要将sdc磁盘加入到/dev/gfsvg/gfs共享
#pvcreate -ff /dev/sdd
#vgextend gfsvg /dev/sdd
#lvextend /dev/gfsvg/gfs /dev/sdd
#gfs_grow /dev/gfsvg/gfs
3、GFS恢复
iscsi-target配置是一次性的,重启tgtd或者主机断电重启后会失去所有配置。所以恢复GFS首先要
重新配置iscsi-target。
#/etc/init.d/gfs start
#/etc/init.d/gfs2 start
按顺序启动服务:
#/etc/init.d/rgmanager start
#/etc/init.d/cman start
#/etc/init.d/clvm start
#vim /etc/lvm/lvm.conf ##locking_type = 3
#lvscan
#mount /dev/gfsvg/gfs /mountpoint
#vim /etc/lvm/lvm.conf ##locking_type = 1
四、问题解答
1、不能挂载gfs模块
模块与内核版本不符,重新安装对应版本的gfs.
2、#lvscan
Skipping Cluster Volume group
修改/etc/lvm/lvm.conf locking_type = 3
3、#lvscan
inactive '/dev/gfsvg/gfs' [4.86 GB] inherit
#lvchange -ay /dev/gfsvg/gfs
4、启动cman服务时,不能启动fenced
集群中,fenced设备不能单独使用。
同时启动集群内超过半数的节点可以很快启动成功。
遇到其他问题请及时反馈。