什么是ip-span?
ip-span技术由IBM公司研究开发,是一个供硬件设备使用的、可以在IP协议的上层运行的SCSI指令集,这种指令集合可以实现在IP网络上运行SCSI协议,使其能够在诸如高速千兆以太网上进行路由选择。iSCSI技术是一种新储存技术,该技术是将现有SCSI接口与以太网络(Ethernet)技术结合,使服务器可与使用IP网络的储存装置互相交换资料。
ip-span是一种基于TCP/IP 的协议,用来建立和管理IP存储设备、主机和客户机等之间的相互连接,并创建存储区域网络(SAN)。SAN 使得SCSI 协议应用于高速数据传输网络成为可能,这种传输以数据块级别(block-level)在多个数据存储网络间进行。SCSI 结构基于C/S模式,其通常应用环境是:设备互相靠近,并且这些设备由SCSI 总线连接。
ip-span 的主要功能是在TCP/IP 网络上的主机系统(启动器 initiator)和存储设备(目标器 target)之间进行大量数据的封装和可靠传输过程。
完整的iSCSI系统的拓扑结构如下:
从本质上说,ip-span启动器是一个客户端设备,它连接到服务器(在本例中是 iSCSI 目标)提供的某一服务,并发起对该服务的请求。iSCSI 启动器软件需要安装在每个 Oracle RAC 节点(rac1 和 rac2)上。 iSCSI 启动器可以用软件实现,也可以用硬件实现。软件 iSCSI 启动器可用于大部分主要操作系统平台。对于本文,我们将使用 iscsi-initiator-utils RPM 中提供的免费 Linux Open-iSCSI 软件驱动程序。iSCSI 软件启动器通常与标准网络接口卡 (NIC)(大多数情况下是千兆位以太网卡)配合使用。硬件启动器是一个 iSCSI HBA(或 TCP 卸载引擎 (TOE) 卡),它本质上只是一个专用以太网卡,其上的 SCSI ASIC 可以从系统 CPU 内卸载所有工作(TCP 和 SCSI 命令)。iSCSI HBA 可以从许多供应商处购买,包括 Adaptec、Alacritech、Intel 和 QLogic。
ip-span 目标是ip-span 网络的"服务器"组件。它通常是一个存储设备,包含您所需的信息并响应来自(一个或多个)启动器的请求。对于本文,节点rac1 将是ip-span目标。
一、准备工作
CentOS6.4服务器2台(1台用做IP-SAN存储服务器,1台做流媒体服务器)
iSCSITatget软件
iSCSI Initiator
二、安装iSCSI target软件(IP-SAN服务器)
Iscsitarget下载地址为:http://iscsitarget.sourceforge.net [root@iscsi-target iscsi]#tar -xzvfiscsitarget-1.4.20.1.tar.gz [root@iscsi-target iscsi]#cd iscsitarget-1.4.20.1 [root@iscsi-target iscsitarget-1.4.20.1]#make [root@iscsi-target iscsitarget-1.4.20.1]#makeinstall [root@iscsi-target iscsi]# service iscsi-target Usage: /etc/init.d/iscsi-target{start|stop|restart|condrestart|status}
配置ietd.conf文件
iSCSI Enterprise Target的主配置文件为/etc/iet/ietd.conf,打开ietd.conf找到类似如下行:
#Target iqn.2016-03.com.example:storage.disk2.sys1.xyz iqn.yyyy-mm.<reverseddomain name>[:identifier]
其中:
iqn:表示“iSCSI Qualified Name”,简称iqn。
yyyy-mm:表示年份-月份。这里是2016-03。
reversed domain name:表示倒过来的域名,这里是com.example。
identifier:表示识别代码,这里是storage.disk2.sys1.xyz。
配置ietd.conf文件
设定 LUN(Logical Unit Number),找到类似如下行:
#Lun 0 Path=/dev/sdb,Type=fileio,ScsiId=xyz,ScsiSN=xyz
将前面的“#”号去掉,“Lun 0 Path=/dev/sdb ”表示块设备号为0,映射的磁盘为/dev/sdb,“Type”值fileio是默认的,可以用于磁盘、file和LVM ,这里设定的是“fileio”,主要用来对一个磁盘进行存储共享。
至此,简单的iSCSI Target配置完毕,最后启动iscsi-target服务:
[root@iscsi-target iscsi]# service iscsi-targetstart
三、安装iSCSI Initiator(流媒体服务器)
主流Linux发行版本默认都自带了iSCSI Initiator,如果系统没有安装,只需通过光盘查找即可。
这里以centos6.4版本为例,使用iscsi-initiator-utils-6.2.0.871-0.16.el5.i386.rpm包进行安装:
[root@ Initiator iscsi]#rpm –ivh iscsi-initiator-utils-6.2.0.871-0.16.el5.i386.rpm
安装完成后,会生成/etc/iscsi主程序配置目录。
启动Initiator服务,操作如下:
[root@ Initiator iscsi]# service iscsi start
四、在linux上执行iSCSI Target发现
可以使用如下指令向 iSCSI Target 主机查询划分了哪些lun:
iscsiadm -m discovery --type sendtargets --portal IP
或者
iscsiadm -m discovery -t sendtargets -p IP
需要说明的是:当成功执行一次Target发现后,iSCSI Initiator就会将查询纪录写到/var/lib/iscsi/send_targets对应目录下。因此,对于Target发现只需执行一次即可。
Discovery (/var/lib/iscsi/send_targets):在/var/lib/iscsi/send_targets目录下,生成一个target服务器信息文件,文件名为“target服务的IP,端口号”(例如“200.200.10.200,3260”)。此文件用来记录target服务器信息。
Node (/var/lib/iscsi/nodes):在/var/lib/iscsi/nodes目录下,生成一个或多个以target存储服务器上的Target名命名的文件夹,每文件夹下有一个用来记录target服务器上特定Target信息的文件。
五、通过iscsiadm指令与iSCSI Target 建立关联
iscsiadm是用来管理(更新、删除、插入、查询)iSCSI配置数据库文件的命令行工具,用户能够用它对iSCSI nodes、sessions、connections和discovery records进行一系列的操作。
(1)登录iSCSITarget:
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。
(2)断开Initiator与iSCSI Target 主机的连接:
iscsiadm -m node -T [target-name] -p [ip-address] –u
3、通过iscsiadm指令与iSCSI Target 建立关联
(3)查看SiCSIsession和设备信息:
iscsiadm -m session -i iscsiadm –m session –R
如果一个Target下新增了一个卷,在服务器上使用iscsiadm –m session –R命令可以刷新当前连接的session以看到新增的卷
(4)查看有那些target记录在了数据库中:
iscsiadm -m node
(5)查看target存储端相关配置信息
iscsiadm -m node -T iqn.2010-11.net.ixdba:sdc -p192.168.12.246 iscsiadm -m discovery –p 192.168.12.246