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 �CL 容量大小 -n 逻辑卷名卷组名
Logical volume “lv-host21”created
确认新建的逻辑卷
[root@racscsi home] lvdisplay /dev/卷组/逻辑卷名
2)创建软RAID磁盘阵列
为服务器添加三块磁盘,每块的容量均为10G,然后使用mdadm管理工具来创建RAID设备。使用 /dev/sdc /dev/sdd / /dev/sde三块磁盘构建R
[root@racscsi home] mdadm -Cv /dev/RAID名称 -a yes�Cn3 �Cl5 /dev/sd[cde]
[root@racscsi home] mdadm �CQ /dev/RAID名称
上述命令操作中,命令选项-C表示新建RAID设备,-v输出详细信息,-a=yes表示若对应的设备文件不存在则自动创建,-n3表示由三块磁盘组成,-l5表示使用RAID级别为5,-Q用来查询设备信息。
为了重建或恢复软RAID设备方便,建议将此阵列配置保存为/etc/mdadm.conf。
[root@racscsi home] mdadm �CD /dev/RAID名称 | grep UUID
[root@racscsi home] vim /etc/mdadm.conf
添加
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 �Cnatp | grep tgt
[root@racscsi home]# tgtadm �CL iscsi �Co new �Cm target �Ct1 �CT ian.2013-09.com.benet:lvm
[root@racscsi home]# tgtadm �CL iscsi �Co new �Cm target �Ct2 �CT ian.2013-09.com.benet:raid
查看创建的iscsi对象
[root@racscsi home]# tgtadm �CL iscsi �Co show �Cm 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: (可简写为 �Cm lu)
以前面准备的逻辑卷lv-host21和raid5阵列/dev/md0为例,分别挂到tid为1、2的target,指派给客户机192.168.1.2和192.168.1.3使用
[root@racscsi home]# tgtadm �CL iscsi �Co mew �Cm lu �Ct 1 �Cl1 �Cb /dev/vo10/lv-host21
[root@racscsi home] tgtadm �CL iscsi �Co bind �Cm target �Ct1 I 192.168.1.2
[root@racscsi home] tgtadm �CL iscsi �Co mew �Cm lu �Ct 2 �Cl1 �Cb /dev/md0
[root@racscsi home]# tgtadm �CL iscsi �Co bind �Cm target �Ct2 - I 192.168.1.3
[root@racscsi home]# tgtadm �CL iscsi �Co show �Cm target
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 �Clevel 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 �Ctsendtargets �Cp 192.168
.1.1 //iscsi服务器ip
连接iscsi设备(连接--login) (关闭―logout)
[root@rac2home]# iscsiadm �Cm node �CT iqn.2013-09.com.benet:lvm
--login
查看scsi设备列表
2、使用iscsi存储设备
1)为磁盘规划分区
只有当iscsi服务器分配给客户机的LUN是一整块物理磁盘。而且此硬
盘中已经包含有分区表、文件系统的时候,客户机才可以直接访问其中的文
件系统,否则应对新连接的iscsi设备进行分区。
查看新磁盘分区信息
[root@rac2Desktop]# fdisk �Cl /dev/sdb
划分分区
[root@rac2Desktop]# fdisk /dev/sdb
(P-查看分区) (n-新建分区)(P-主分区) (e-扩展分区)(l-逻辑分区)
(d-删除分区)(t-更改分区类型) (w-保存分区操作)(q-不保存)
更新分区表
[root@rac2Desktop]# partprobe /dev/sdb
[root@rac2Desktop]# fdisk �Cl /dev/sdb
2)创建文件系统(格式化)
[root@rac2Desktop]# mkfs �Ct 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号
获取UUID号
[root@rac2Desktop]# blkid /dev/sdb1
客户机在已挂载基于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