1.ISCSI概念(Internet Small Computer System Interface)
iSCSI是一种在Internet协议上,特别是以太网上进行数据块传输的标准,它是一种基于IP Storage理论的新型存储技术,该技术是将存储行业广泛应用的SCSI接口技术与IP网络技术相结合,可以在IP网络上构建SAN存储区域网,简单地说,iSCSI就是在IP网络上运行SCSI协议的一种网络存储技术.
ISCSI结合了业内SCSI和TCP/IP2个最通用的协议。由于IP网的特点,这也改变了企业存储设置的布局,因为在企业进行存储设置布局实施时,可以把SCSI存储设备分布在不同地方,无地理性限制的优越性不是现在的FC-SAN(布局集中)所能比拟的。通过IP-SAN和FC-SAN路由器将IP-SAN和FC-SAN融合起来,使得这项技术得到更好的发展,他们不仅能完成自己的工作,而且还能数据共享、镜像备份。
优点:无地域限制;连接服务器数量没有限制;在线扩容或者动态部署;
2.存储相关术语
SCSI:小型计算机系统接口(Small Computer System Interface)
一种用于计算机和智能设备之间(硬盘、软驱、光驱、打印机、扫描仪等)系统级接口的独立处理器标准。 SCSI是一种智能的通用接口标准。它是各种计算机与外部设备之间的接口标准。(http://baike.baidu.com/view/5739.htm#sub611524)
FC:光纤通道(Fibre Channel)
DAS:直连式存储(Direct-Attached Storage)
将存储设备通过光纤通道或者SCSI接口直接连接到某台计算机上
优点:一般服务器地理位置分散或者很难远程连接互访的时候比较适合DAS
缺点:必须通过服务器进行连接互访,会相对多的占用服务器cpu、io等资源
NAS:网络接入存储(Network-Attached Storage)
通过网络交换机等网络设备连接存储设备来建立一个存储系统,客户端可以通过tcp直接连接,通过ftp等方式直接访问,访问数据变得容易,局限性在于网络带宽限制了NAS的网络传输能力
SAN:存储区域网络(Storage Area Network)
通过交换机、路由器之类的网络设备将磁盘阵列等存储设备与服务器相连接建立高速网络的子网
比如scsi san、fc san…
现在的一些san,其实现数据通信的主要要求大致为:数据存储系统的合并;数据备份;服务器群集;复制;紧急情况下的数据恢复
3.ISCSI架构
3.1)控制器架构
ISICI结构和FC光线存储结构相同(专用的数据传输芯片、专用的RAID数据校验芯片、专用的高性能cache缓存和专用的嵌入式系统平台)。
优点:具有较高的安全性和和稳定性。(内部基于无线缆的背板链接方式,完全消除了链接上的单点故障)
缺点:核心处理器全部采用硬件,制造成本较高,因而售价也很高。
适用环境:可以用于对性能的稳定性和高可用性具有较高要求的在线存储系统,例如:中小型数据库系统、大型数据库备份系统、远程容灾系统等。
控制器架构的一些特点:1、是否双控;2、缓存:有双控制器缓存镜像、缓存断电保护功能;3、数据校验:采用专用硬件校验和数据传输芯片;4、内部结构:内部基于无线缆的背板链接方式。
3.2)连接桥架构
连接桥架构分为2个部分:前端协议转换设备(一般为阴间设备,只有协议转换功能)和后端存储(一般采用SCSI磁盘阵列和FC存储设备)。即ISCSI依赖于存储设备,存储设备有什么样的功能,整个ISCSI就有什么样的功能了。现在的ISCSI技术越来越成熟,这种连接桥架构的ISCSI也将退出市场。
3.3)PC架构
PC结构是指将存储设置建立在PC服务器上。一个普通的、性能优良、可支持多块磁盘的PC即可,再安装上一款ISCSI管理软件(客户端主机可以安装的ISCSI软件-ISCSI initiator),使这台PC变成ISCSI存储设备,最后通过PC服务器的以太网卡对外提供ISCSI传输服务。
PC+iSCSI Target软件方式是一种低价低效比的解决方案,另外还有一种基于PC+NIC的高阶高效性iSCSI方案。
pc->iscsi target->ip->router->iscsi存储设备
4.ISCSI存储连接方式
4.1)以太网卡+initiator
这种方式成本低,但是消耗客户端部分资源,适合用在低I/O和低带宽性能要求的应用环境
4.2)TOE(TCP Offload Engine)+initiator
利用TOE网卡可以将网络数据流量处理工作全部交由硬件来处理,相对4.1)开说节省很多客户端资源,大幅度提高数据的传输速度。
4.3)HBA
HBA适配器可以做到主机和交换机、主机和存储之间的高效数据交换,是3种存储连接方式中数据传输性能最好的一种,我们可以在中华IC芯片网上看到HBA硬件价格也很高,如果主机较多,这种方式不太适合。
5.ISCSI实现原理
initiator -- scsi—>iscsi—>tcp/ip—>internet—>tcp/ip—>iscsi->scsi—target
target -- scsi—>iscsi—>tcp/ip—>internet—>tcp/ip—>iscsi->scsi-- initiator
iscsi协议在这里做了些什么?发送端将scsi命令封装到tcp/ip包中,通过网络发送出去,接收端接到tcp/ip包后,将其解析为scsi命令并执行,执行完成后又将scsi命令封装成tcp/ip包返回给发送端。这样对我们使用者来说,使用远端设备就像在使用本地的scsi设备一样。
6.ISCSI搭建IP存储网络
pc服务器一般选择普通、性能良好、支持多块硬盘的主机
名称 | 操作系统 | ip地址 | 安装软件 |
target主机 | linux | 192.168.0.101 | ISCSI Enterprise Target |
initiator主机 | linux | 192.168.0.102 | iscsi-initiator-utils |
initiator主机 | windows xp | 192.168.0.103 | initiator-2.08 |
Iscsitarget下载地址为:http://iscsitarget.sourceforge.net
#tar -xzvf iscsitarget-1.4.20.1.tar.gz
#cd iscsitarget-1.4.20.1
#make
#make install
# 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.2001-04.com.example:storage.disk2.sys1.xyz
iqn.yyyy-mm.
其中:
iqn:表示“iSCSI Qualified Name”,简称iqn。
yyyy-mm:表示年份-月份。这里是2001-04。
reversed domain name:表示倒过来的域名,这里是com.example。
identifier:表示识别代码,这里是storage.disk2.sys1.xyz。
设定 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服务:
# service iscsi-target start
ISCSI Initiator下载地址:
http://www.microsoft.com/WindowsServer2003/technologies/storage/iscsi/default.mspx
fdisk -l
参考:
iSCSI:http://baike.baidu.com/view/120148.htm#sub120148