iSCSI技术是一种由IBM公司研究开发的,是一个供硬件设备使用的可以在IP协议的上层运行的SCSI指令集,这种指令集合可以实现在IP网络上运行SCSI协议,使其能够在诸如高速千兆以太网上进行路由选择。iSCSI的最大好处是能提供快速的网络环境,虽然其性能和带宽跟光纤网络还有一些差距,但能节省企业约30-40%的成本。

  下面我们来看一下在RHEL6.3上如何搭建iscsi-target服务器和客户端如何挂载.

 一、服务端操作

服务端版本:

[root@racscsi home]# uname  -r

2.6.32-279.el6.x86_64

[root@racscsi home]# cat /etc/redhat-release

Red Hat Enterprise Linux Server release 6.3 (Santiago)

安装iscsi server软件包。

用RPM的方式安装。

[root@racscsi home]# rpm -ivh scsi-target-utils-1.0.24-2.el6.x86_64.rpm

warning: scsi-target-utils-1.0.24-2.el6.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY

Preparing...                ########################################### [100%]

package scsi-target-utils-1.0.24-2.el6.x86_64 is already installed

用yum命令安装(需自己配置YUM源)

[root@racscsi home]#yum -y install scsi-target-utils

启动服务并且添加到开机自启动。

[root@racscsi home]# /etc/init.d/tgtd start

Starting SCSI target daemon: [ OK ]

[root@racscsi home]# chkconfig tgtd on


使用fdisk命令创建几个分区,或者通过外部存储映射共享分区。

现在这台服务器已划分好/dev/sdb、 /dev/sdc、 /dev/sdd、 /dev/sde、 /dev/sdf、 /dev/sdg 、/dev/sdh、/dev/sdi分区,用于客户端的挂载

下面我们需要编辑配置文件/etc/tgt/targets.conf,并设置下iSCSI Qualified Name (IQN).

[root@racscsi home]#vim /etc/tgt/ targets.conf

在文件末尾添加如下内容

<target iqn.2008-09.com.example:asm>  #iqn名字可任意

   backing-store /dev/sdb                

   backing-store /dev/sdc

   backing-store /dev/sdd

   backing-store /dev/sde

   backing-store /dev/sdf    

   backing-store /dev/sdg

   backing-store /dev/sdh

   backing-store /dev/sdi  

   initiator-address 192.168.10.0/24   #限定允许访问的客户端地址段或具体IP

   write-cache off                     #是否开启或关闭快取

</target>

重启服务,使修改后的配置生效。

[root@racscsi home]#/etc/init.d/tgtd restart

确定iscsi server是否成功。如果显示如下说明配置iscsi server已经成功。

[root@racscsi home]# tgt-admin --show

Target 1: iqn.2008-09.com.example:asm

   System information:

       Driver: iscsi

       State: ready

   I_T nexus information:

       I_T nexus: 1

           Initiator: iqn.1994-05.com.redhat:b363811441a

           Connection: 0

               IP Address: 192.168.10.212

   LUN information:

       LUN: 0

           Type: controller

           SCSI ID: IET     00010000

           SCSI SN: beaf10

           Size: 0 MB, Block size: 1

           Online: Yes

           Removable media: No

           Prevent removal: No

           Readonly: No

           Backing store type: null

           Backing store path: None

           Backing store flags:

       LUN: 1

           Type: disk

           SCSI ID: IET     00010001

           SCSI SN: beaf11

           Size: 2147 MB, Block size: 512

           Online: Yes

           Removable media: No

           Prevent removal: No

           Readonly: No

           Backing store type: rdwr

           Backing store path: /dev/sdb

           Backing store flags:

       。。。。。。。。。。。。   #中间内容省略

       LUN: 8

           Type: disk

           SCSI ID: IET     00010008

           SCSI SN: beaf18

           Size: 5369 MB, Block size: 512

           Online: Yes

           Removable media: No

           Prevent removal: No

           Readonly: No

           Backing store type: rdwr

           Backing store path: /dev/sdi

           Backing store flags:

   Account information:

   ACL information:

       192.168.10.0/24

注意:关闭服务端的IPTABLES,以免客户端无法正常访问


二、客户端挂载

客户端需安装的包iscsi-initiator-utils

[root@rac2 home]# rpm -ivh iscsi-initiator-utils-6.2.0.872-41.el6.x86_64.rpm

warning: iscsi-initiator-utils-6.2.0.872-41.el6.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY

Preparing...                ########################################### [100%]

  1:iscsi-initiator-utils  ########################################### [100%]

用yum命令安装(需自己配置YUM源)

[root@rac2 home]#yum -y install iscsi-initiator-utils


启动服务并且添加到开机启动。

[root@rac2 Desktop]# /etc/init.d/iscsid start

[root@rac2 Desktop]# chkconfig iscsid on


发现服务器端iscsi server的共享分区。

[root@rac2 Desktop]# iscsiadm --mode discovery --type sendtargets --portal 192.168.10.220

192.168.10.220:3260,1 iqn.2008-09.com.example:asm

已发现


登陆到iscsi server共享的分区。

[root@rac2 Desktop]# iscsiadm -m node -T iqn.2008-09.com.example:asm -p 192.168.10.220 -l

Logging in to [iface: default, target: iqn.2008-09.com.example:asm, portal: 192.168.10.220,3260] (multiple)

Login to [iface: default, target: iqn.2008-09.com.example:asm, portal: 192.168.10.220,3260] successful.


再使用fdisk -l命令查看分区,发现共享出来的分区都已经挂过来了。

[root@rac2 Desktop]# fdisk -l

Disk /dev/sda: 21.5 GB, 21474836480 bytes

255 heads, 63 sectors/track, 2610 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0x000586f0


  Device Boot      Start         End      Blocks   Id  System

/dev/sda1   *           1          39      307200   83  Linux

Partition 1 does not end on cylinder boundary.

/dev/sda2              39         549     4096000   82  Linux swap / Solaris

Partition 2 does not end on cylinder boundary.

/dev/sda3             549        2611    16567296   83  Linux


Disk /dev/sdb: 2147 MB, 2147483648 bytes

67 heads, 62 sectors/track, 1009 cylinders

Units = cylinders of 4154 * 512 = 2126848 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0x00000000



Disk /dev/sdc: 2147 MB, 2147483648 bytes

67 heads, 62 sectors/track, 1009 cylinders

Units = cylinders of 4154 * 512 = 2126848 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0x00000000



Disk /dev/sdd: 2147 MB, 2147483648 bytes

67 heads, 62 sectors/track, 1009 cylinders

Units = cylinders of 4154 * 512 = 2126848 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0x00000000



Disk /dev/sde: 10.7 GB, 10737418240 bytes

64 heads, 32 sectors/track, 10240 cylinders

Units = cylinders of 2048 * 512 = 1048576 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0x00000000



Disk /dev/sdf: 10.7 GB, 10737418240 bytes

64 heads, 32 sectors/track, 10240 cylinders

Units = cylinders of 2048 * 512 = 1048576 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0x00000000



Disk /dev/sdg: 10.7 GB, 10737418240 bytes

64 heads, 32 sectors/track, 10240 cylinders

Units = cylinders of 2048 * 512 = 1048576 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0x00000000



Disk /dev/sdh: 5368 MB, 5368709120 bytes

166 heads, 62 sectors/track, 1018 cylinders

Units = cylinders of 10292 * 512 = 5269504 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0x00000000



Disk /dev/sdi: 5368 MB, 5368709120 bytes

166 heads, 62 sectors/track, 1018 cylinders

Units = cylinders of 10292 * 512 = 5269504 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0x00000000


最后你可以格式化分区,挂载在本地相应目录。如果要实现开机自动挂载,要在fstab文件添加记录。

注意添加_netdev参数,要不你在重启iscsi server后,启动时会报错。

示例: /dev/sdb /crs  ext4  default,_netdev 0 0


补充:

如果在服务端/etc/tgt/targets.conf文件配置了用户名密码,比如

<target iqn.2008-09.com.example:server.target3>

     backing-store  /dev/sdb

     initiator-address 192.168.10.0/24    

     incoming grid  123@passwd          

     write-cacheoff              

</target>


则在客户端/etc/iscsi/iscsid.conf配置文件

需要添加相应的账号和密码

node.session.auth.username = grid

node.session.auth.password = 123@passwd

discovery.sendtargets.auth.username = grid

discovery.sendtargets.auth.password = 123@passwd