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

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

一、服务端操作

服务端版本:

[root@racscsihome]# cat /etc/redhat-release

RedHat Enterprise Linux Server release 6.3 (Santiago)


一、构建iscsi服务器(SAN)

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

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

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

[root@racscsihome]# chkconfig tgtd on


1、准备存储设备

下面将创建一个逻辑卷、一个软RAID,分别给不同主机使用。准备给iscsi的服务器的存储设备部需要格式化,因为不是在服务器上使用,格式化、挂载等操作可以由客户机来完成。

1)创建卷组、逻辑卷

将硬盘转换成物理卷

[root@racscsi home] pvcreate /dev/sdb

Physical volume “/dev/sdb/”successfully created

创建卷组

[root@racscsi home] vgcreate 卷组名称 /dev/sdb

Volumegroup “vo10” successfully created

创建逻辑卷

[root@racscsihome] lvcreate –L 容量大小 -n 逻辑卷名卷组名

Logical volume “lv-host21”created

确认新建的逻辑卷

[root@racscsi home] lvdisplay /dev/卷组/逻辑卷名

194331745.jpg

2)创建软RAID磁盘阵列

为服务器添加三块磁盘,每块的容量均为10G,然后使用mdadm管理工具来创建RAID设备。使用 /dev/sdc /dev/sdd / /dev/sde三块磁盘构建R

[root@racscsi home] mdadm -Cv /dev/RAID名称 -a yes–n3 –l5 /dev/sd[cde]

194347192.jpg

[root@racscsi home] mdadm –Q /dev/RAID名称

194400487.jpg

上述命令操作中,命令选项-C表示新建RAID设备,-v输出详细信息,-a=yes表示若对应的设备文件不存在则自动创建,-n3表示由三块磁盘组成,-l5表示使用RAID级别为5,-Q用来查询设备信息。

为了重建或恢复软RAID设备方便,建议将此阵列配置保存为/etc/mdadm.conf。

[root@racscsi home] mdadm –D /dev/RAID名称 | grep UUID

194412498.jpg

[root@racscsi home] vim /etc/mdadm.conf

添加

194423977.jpg

2创建iscsi对象(Target)

使用tgtadm工具创建iscsi对象,主要命令选项如下。

-L、--lld: 指定驱动类型,如“-L iscsi”表示iscsi存储。

-o、--op:指定操作类型,如“-onew” 表示创建、“-o delete”删除

-m、--mode:指定管理目标,如“-m target”表示iscsi对象

-t、--tid:指定对象ID号,如“-t 1”表示第一个对象

-T、--targetname:指定iscsi对象的名称,主意应符合“iqn.”规范

以下操作将依次创建两个iscsi存储对象,ID号分别为1、2,识别标记分别为lvm、raid。

[root@racscsi home]# service tgtd start

[root@racscsi home]# netstat –natp | grep tgt

[root@racscsi home]# tgtadm –L iscsi –o new –m target –t1 –T ian.2013-09.com.benet:lvm

[root@racscsi home]# tgtadm –L iscsi –o new –m target –t2 –T ian.2013-09.com.benet:raid

查看创建的iscsi对象

[root@racscsi home]# tgtadm –L iscsi –o show –m target |more

3为客户机分配存储空间(LUN)发布

-l、--lun:指定LUN的ID号,如“-l 1”表示第一个LUN

-b、--backing-store:指定块设备位置,如“-b /dev/vo10/lv-host21”

-I、--initiator-address:指定客户机地址,如“-I 192.168.1.2”

-m、logicalunit: (可简写为 –m lu)

以前面准备的逻辑卷lv-host21和raid5阵列/dev/md0为例,分别挂到tid为1、2的target,指派给客户机192.168.1.2和192.168.1.3使用

[root@racscsi home]# tgtadm –L iscsi –o mew –m lu –t 1 –l1 –b /dev/vo10/lv-host21

[root@racscsi home] tgtadm –L iscsi –o bind –m target –t1 I 192.168.1.2

[root@racscsi home] tgtadm –L iscsi –o mew –m lu –t 2 –l1 –b /dev/md0

[root@racscsi home]# tgtadm –L iscsi –o bind –m target –t2 - I 192.168.1.3

[root@racscsi home]# tgtadm –L iscsi –o show –m target

194438699.jpg

4保存tatget和LUN配置

修改文件/etc/tgt/targets.conf,将traget、LUN信息保存为静态配置,以便在重启tgtd服务后仍然有效。

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

在文件末尾添加如下内容

<targetiqn.20013-09.com.benet:lvm>

backing-store/dev/vo10/lv-host21

initiator-address192.168.1.0/24 #限定允许访问的客户端地址

</target>

<targetiqn.20013-09.com.benet:raid>

backing-store/dev/md0

initiator-address192.168.1.3

</target>

[root@racscsi home]# chkconfig –level 35 tgtd on

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

[root@racscsi home]# service tgtd restart

二、客户机挂载

[root@rac2home]#yum -y install iscsi-initiator-utils lsscsi

1.发现并连接iscsi设备

[root@rac2home]# service iscsi start

[root@rac2home]# iscsiadm -m discovery –tsendtargets –p 192.168

.1.1 //iscsi服务器ip

194451308.jpg

连接iscsi设备(连接--login) (关闭—logout)

[root@rac2home]# iscsiadm –m node –T iqn.2013-09.com.benet:lvm

--login

194507226.jpg

查看scsi设备列表

194521981.jpg

2使用iscsi存储设备

1)为磁盘规划分区

只有当iscsi服务器分配给客户机的LUN是一整块物理磁盘。而且此硬

盘中已经包含有分区表、文件系统的时候,客户机才可以直接访问其中的文

件系统,否则应对新连接的iscsi设备进行分区。

查看新磁盘分区信息

[root@rac2Desktop]# fdisk –l /dev/sdb

194533649.jpg

划分分区

[root@rac2Desktop]# fdisk /dev/sdb

(P-查看分区) (n-新建分区)(P-主分区) (e-扩展分区)(l-逻辑分区)

(d-删除分区)(t-更改分区类型) (w-保存分区操作)(q-不保存)

更新分区表

[root@rac2Desktop]# partprobe /dev/sdb

[root@rac2Desktop]# fdisk –l /dev/sdb

2)创建文件系统(格式化)

[root@rac2Desktop]# mkfs –t ext3 /dev/sdb

3)挂载文件系统

[root@rac2Desktop]# mkdir /opt/data

[root@rac2Desktop]# mount /dev/sdcl /opt/data

2、保存iscsi连接配置

开机自动挂载

[root@rac2Desktop]# chkconfig --level 35 iscsi on

[root@rac2Desktop]# vim/etc/fstab

/dev/sdb1 /opt/data ext3 defaults,_netdev 0 0 //添加

或者把/dev/sdb1换成唯一的UUID号

194544378.jpg

获取UUID号

[root@rac2Desktop]# blkid /dev/sdb1

194557415.jpg

客户机在已挂载基于iscsi设备的文件系统情况下,第一次关机或重启时

主意先断开iscsi连接(--logout),或停止iscsi服务否则可能出现短时

的系统假死现象。


补充:

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

<target iqn.20013-09.com.benet:server.target3>

backing-store /dev/sdb

initiator-address192.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