linux搭建gfs系统 iscsi+GFS 实现网络存储(2)
iSCSI(Internet SCSI)是2003年IETF(InternetEngineering Task Force,互联网工程任务组)制订的一项标准,这种指令集合可以实现在IP网络上运行SCSI协议,使其能够在诸如高速千兆以太网上进行路由选择。 SCSI(Small Computer System Interface)是块数据传输协议,在存储行业广泛应用,是存储设备最基本的标准协议。iSCSI协议是一种利用IP网络来传输潜伏时间短的SCSI 数据块的方法,iSCSI使用以太网协议传送SCSI命令、响应和数据。iSCSI可以用我们已经熟悉和每天都在使用的以太网来构建IP存储局域网。通过 这种方法,iSCSI克服了直接连接存储的局限性,使我们可以跨不同服务器共享存储资源,并可以在不停机状态下扩充存储容量。
iSCSI的工作过程:当iSCSI主机应用程序发出数据读写请求后,操作系统会生成一个相应的SCSI命令,该SCSI命令在iSCSI Initiator层被封装成iSCSI消息包并通过TCP/IP传送到设备侧,设备侧的iSCSI Target层会解开iSCSI消息包,得到SCSI命令的内容,然后传送给SCSI设备执行;设备执行SCSI命令后的响应,在经过设备侧iSCSI Target层时被封装成iSCSI响应PDU,通过TCP/IP网络传送给主机的iSCSI Initiator层,iSCS Initiator会从iSCSI响应PDU里解析出SCSI响应并传送给操作系统,操作系统再响应给应用程序。要实现iSCSI读写,除了使用特定硬设 备外,也可透过软件方式,将服务器仿真为iSCSI的发起端(Initiator)或目标端(target),利用既有的处理器与普通的以太网络卡资源实现iSCSI的连接。
本文均已软件方式在Centos5.5虚拟机上实现gfs功能!
一、在192.168.1.240上安装iscsi的target端:
[root@iscsi-storage ~]#yum install scsi-target-utils (注意:scsi前面没有字母i)
(使用centos默认的yum源,将会安装软件scsi-target-utils-0.0-6.20091205snap.el5_5.3)
[root@iscsi-storage ~]#yum install libibverbs-devel libibverbs librdmacm librdmacm-devel
如果没有安装以上软件,则/var/log/messages里将会有以下报错:
iscsi-storage tgtd: libibverbs.so: cannot open shared object file: No such file or
directory – iser transport not used
iscsi-storage tgtd:librdmacm.so: cannot open shared object file: No such file or directory – iser
transport not used
磁盘sda装着系统,磁盘sdb用来存储,对其进行分区。
[root@iscsi-storage ~]# fdisk /dev/sdb
本人分成/dev/sdb1 3G , /dev/sdb2 7G.
分区完成后不用格式化分区,执行命令partprobe让系统重新读取分区表,而不用重启系统。
[root@iscsi-storage ~]# partprobe
scsi-targe-utils装完后的服务名为tgtd,启动它,并设置为开机启动。
[root@iscsi-storage ~]# service tgtd start
Starting SCSI target daemon: Starting target framework daemon
[root@iscsi-storage ~]# chkconfig tgtd on
接下来建立target device. 在centos5中使用tgtadm指令来设置而不是4当中的 vi /etc/ietd.conf.
tgtadm命令的参数有点难记,但是scsi-target-utils套件中包含了利用tgtadm指令建立target device的步骤,我们可以参照文件来设置:/usr/share/doc/scsi-target-utils-0.0/README.iscsi
本人欲新增iqn名为iqn.2011-01.com.chinaitv:rhcs-storage的target device.
=====================================================================================
iqn (iSCSI Qualified Name)格式通常如下:
格式
意义
范例
yyyy-mm
年份-月份
2011-01
reversed domain name
把域名名称反过来写,通常把公司的域名反过来写
com.chinaitv
identifier
识别字,通常注明这个存储空间的用途
rhcs-storage
=====================================================================================
新增target device命令如下:
# tgtadm --lld iscsi --op new --mode target --tid 1 -T iqn.2011-01.com.chinaitv:rhcs-storage
执行后,利用如下命令来查看target device:
#tgtadm --lld iscsi --op show --mode target
将起初新建的分区加入target device。
# tgtadm --lld iscsi --op new --mode logicalunit --tid 1 -lun 1 -b /dev/sdb1
查看加入target device后的输出内容:
# tgtadm --lld iscsi --op show --mode target
设置可以访问存取此target device的initiator节点。本机允许gfs1 gfs2 gfs3存取,设置如下:
#tgtadm --lld iscsi --op bind --mode target --tid 1 -I 192.168.1.231
#tgtadm --lld iscsi --op bind --mode target --tid 1 -I 192.168.1.232
#tgtadm --lld iscsi --op bind --mode target --tid 1 -I 192.168.1.233 (I为大写的i)
(如果允许所有的initiators存取的话,可以将ip换成ALL,如下:
#tgtadm --lld iscsi --op bind --mode target --tid 1 -I ALL
如果需要移除则需将bind换成unbind即可,例如
#tgtadm --lld iscsi --op unbind --mode target --tid 1 -I 192.168.1.233)
本次操作只使用sdb1来试验存储,因此只加入sdb1,如果需将多个分区用来存储的话可以如下操作:
tgtadm --lld iscsi --op new --mode target --tid 1 -T iqn.2011-01.com.chinaitv:rhcs-storage
tgtadm --lld iscsi --op new --mode target --tid 2 -T iqn.2011-01.com.chinaitv:rhcs-storage2
tgtadm --lld iscsi --op new --mode logicalunit --tid 1 -lun 1 -b /dev/sdb1
tgtadm --lld iscsi --op new --mode logicalunit --tid 2 -lun 1 -b /dev/sdb2
tgtadm --lld iscsi --op bind --mode target --tid 1 -I ip
tgtadm --lld iscsi --op bind --mode target --tid 2 -I ip