利用ISCSI存储技术构建IP存储网络(实战篇)(3)

四、在Linux上配置iSCSI Initiator
 下面的操作是在Initiator的Linux主机上进行,即IP为192.168.12.26主机。
1 安装Linux版本iSCSI Initiator
现在的主流Linux发行版本默认都自带了iSCSI Initiator,即Open-iSCSI,如果系统没有安装,只需通过光盘找到iscsi-initiator-utils-6.2.0.871-0.16.el5.i386.rpm包,通过rpm方式安装即可,当然也可以通过yum进行自动安装,操作如下:
[root@ Initiator iscsi]#yum install iscsi*
安装完成后,会生成/etc/iscsi主程序配置目录,其它相关文件的安装位置为:
/etc/iscsi/iscsid.conf
/etc/rc.d/init.d/iscsi
/etc/rc.d/init.d/iscsid
/sbin/iscsi-iname
/sbin/iscsiadm
/sbin/iscsid
/sbin/iscsistart
/var/lib/iscsi
/var/lib/iscsi/ifaces
/var/lib/iscsi/isns
/var/lib/iscsi/nodes
/var/lib/iscsi/send_targets
/var/lib/iscsi/slp
/var/lib/iscsi/static
/var/lock/iscsi
接下来需要启动Initiator服务,操作如下:
[root@ Initiator iscsi]# service iscsi start
 

2 iSCSI Initiator目录功能介绍
? /sbin/iscsiadm命令
 在iSCSI Initiator安装完成后,会生成/sbin/iscsiadm命令,此命令是用来管理(更新、删除、插入、查询)iSCSI配置数据库文件的命令行工具,用户能够用它对iSCSI nodes、sessions、connections和discovery records进行一系列的操作。
? /var/lib/iscsi/send_targets目录
 在此目录下,会生成一个或多个以iSCSI存储服务器IP和端口命名的文件夹,文件名为“iSCSI Target IP,端口号”(例如“192.168.12.246,3260”)。
? /var/lib/iscsi/nodes目录
 在此目录下,会生成一个或多个以iSCSI存储服务器上的Target名命名的文件夹,在该文件夹下有一个文件名为“iSCSI portal IP,端口号” (例如“192.168.12.246,3260”)的配置参数文件,该文件是iSCSI initiator登录iSCSI target时要使用的参数,而这些参数的设置是从/etc/iscsi/iscsi.conf中的参数继承而来的,可以通过iscsiadm命令对某一个参数文件进行更改。
 

3 在linux上执行iSCSI  Target发现
 可以使用如下指令向 iSCSI Target 主机查询划分了哪些lun:
iscsiadm -m discovery --type sendtargets --portal IP
 或者
iscsiadm -m discovery -t sendtargets -p IP
例如:
[root@ Initiator iscsi ]# iscsiadm -m discovery -t sendtargets -p 192.168.12.246:3260                                         
192.168.12.246:3260,1 iqn.2001-04.com.example:storage.disk2.sys1.xyz
可以看出,“iqn.2001-04.com.example:storage.disk2.sys1.xyz”就是iSCSI Target的名称。由于在配置iSCSI Target时,没有做任何限制,因此所有的客户端主机都允许连接iSCSI Target共享出来的磁盘。
需要说明的是:当成功执行一次Target发现后,iSCSI Initiator就会将查询纪录写到/var/lib/iscsi/send_targets对应目录下。因此,对于Target发现只需执行一次即可。
接着通过iscsiadm指令与iSCSI Target 主机建立连接,也就是登录iSCSI Target:
iscsiadm -m node -T <target-name> -p <ip-address>:<port> --login
或者
iscsiadm -m node -T [target-name] -p [ip-address] -l
这里的“-T”后面跟target名称,“ip-address”是target主机的IP地址,“port”是target主机的端口号,默认是3260。
例如:
[root@ Initiator iscsi ]#iscsiadm -m node -T iqn.2001-04.com.example:storage.disk2.sys1.xyz -p 192.168.12.246 -l
Logging in to [iface: default, target: iqn.2001-04.com.example:storage.disk2.sys1.xyz, portal: 192.168.12.246,3260]
Login to [iface: default, target: iqn.2001-04.com.example:storage.disk2.sys1.xyz, portal: 192.168.12.246,3260]: successful
如果有多个Target主机时,可以通过如下命令一次登录所有的targets:
[root@ Initiator iscsi ]#iscsiadm -m node --loginall=all
这里需要说明的是,通过执行Target发现操作,其实已经与iSCSI Target 主机建立了连接,此时如果再次执行iscsiadm命令与Target 主机建立连接的话,会提示“iscsiadm: initiator reported error (15 - already exists)”错误,所以需要先断开与iSCSI Target 主机的连接,执行如下指令,断开Initiator 与iSCSI Target 主机的连接:
iscsiadm -m node -T [target-name] -p [ip-address] -u
 例如:
[root@ Initiator iscsi ]#iscsiadm -m node -T iqn.2001-04.com.example:storage.disk2.sys1.xyz -p 192.168.12.246  -u
Logging out of session [sid: 2, target: iqn.2001-04.com.example:storage.disk2.sys1.xyz, portal: 192.168.12.246,3260]
Logout of [sid: 2, target: iqn.2001-04.com.example:storage.disk2.sys1.xyz, portal: 192.168.12.246,3260]: successful
 当iSCSI Initiator与iSCSI Target连接成功后,还可以通过如下命令查看iSCSI session信息:
[root@ Initiator iscsi ]#iscsiadm -m session –i
例如:
[root@ Initiator iscsi ]#iscsiadm -m session –i
iSCSI Transport Class version 2.0-871
version 2.0-871
Target: iqn.2001-04.com.example:storage.disk2.sys1.xyz
        Current Portal: 192.168.12.246:3260,1
        Persistent Portal: 192.168.12.246:3260,1
                **********
                Interface:
                **********
                Iface Name: default
                Iface Transport: tcp
                Iface Initiatorname: iqn.1994-05.com.RedHat:fd37f211e3a
                Iface IPaddress: 192.168.12.26
                Iface HWaddress: <empty>
                Iface Netdev: <empty>
                SID: 1
                iSCSI Connection State: LOGGED IN
                iSCSI Session State: LOGGED_IN
                Internal iscsid Session State: NO CHANGE
                ************************
                Negotiated iSCSI params:
                ************************
                HeaderDigest: None
                DataDigest: None
                MaxRecvDataSegmentLength: 262144
                MaxXmitDataSegmentLength: 8192
                FirstBurstLength: 65536
                MaxBurstLength: 262144
                ImmediateData: Yes
                InitialR2T: Yes
                MaxOutstandingR2T: 1
                ************************
                Attached SCSI devices:
                ************************
                Host Number: 32 State: running
                scsi32 Channel 00 Id 0 Lun: 0
                        Attached scsi disk sdb          State: running
 

4 管理共享磁盘
 首先通过fdisk命令查看共享过来的磁盘标识,也可以通过dmesg命令查看系统是否认到了共享的iSCSI磁盘,操作如下:
[root@ Initiator iscsi ]#fdisk -l
Disk /dev/sda: 320.0 GB, 320072933376 bytes
255 heads, 63 sectors/track, 38913 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          13      104391   83  Linux
/dev/sda2              14       38913   312464250   8e  Linux LVM

Disk /dev/sdb: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         609     4891761   83  Linux
/dev/sdb2             610        1305     5590620   83  Linux
 从fdisk输出可知,iscsi共享磁盘标识为/dev/sdb,大小10.7G,下面就可以通过fdisk命令对这个磁盘进行重新分区、格式化、创建文件系统等操作了。

linux

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

转载注明出处:https://www.heiqu.com/wywgyd.html