一、iSCSI的概念
iSCSI是一种在Internet协议上,特别是以太网上进行数据块传输的标准,它是一种基于IP Storage理论的新型存储技术,该技术是将存储行业广泛应用的SCSI接口技术与IP网络技术相结合,可以在IP网络上构建SAN存储区域网,简单地说,iSCSI就是在IP网络上运行SCSI协议的一种网络存储技术。iSCSI技术最初由Cisco和IBM两家发起,并且得到了广大IP存储技术爱好者的大力支持。这几年迅速的发展壮大了起来。
对于中小企业的存储网络来说,iSCSI是个非常好的选择,首先,从技术实现来讲,iSCSI是基于IP协议的技术标准,它允许网络在TCP/IP协议上传输SCSI命令,实现了SCSI和TCP/IP协议的连接,这样用户就可以通过TCP/IP网络来构建存储区域网,它只需要不多的投资,就可以方便、快捷地对信息和数据进行交互式传输和管理。但是在iSCSI出现之前,构建存储区域网的唯一技术是利用光纤通道,而这要花费很大的建设成本,一般中小企业是无法承担的,其次iSCSI技术解决了传输效率、存储容量、兼容性、开放性、安全性等诸多问题,在使用性能上绝对不输给商业的存储系统或者光纤存储网络。
iSCSI的优势主要表现为:首先,iSCSI沿用TCP/IP协议,而TCP/IP是在网络方面最通用、最成熟的协议,且IP网络的基础建设非常完善,同时,SCSI技术是被磁盘、磁带等设备广泛采用的存储标准,这两点使iSCSI的建设费用和维护成本非常低廉;其次,iSCSI支持一般的以太网交换机而不是特殊的光纤通道交换机,从而减少了异构网络带来的麻烦;最后,iSCSI是通过IP封包传输存储命令,因此可以在整个Internet上传输,没有距离的限制。
二、FC SAN与IP SAN
当iSCSI技术出现后,通过IP技术搭建的存储网络也就应运而生,SAN技术也就出现了两种不同的实现方式,即FC SAN与IP SAN。简单说,以光纤搭建的存储网络就是FC SAN,以iSCSI技术搭建的存储网络叫做IP SAN。
作为SAN的两种实现方式,FC SAN与IP SAN也各有优劣,下面从几个方面分别阐述:
 在数据传输方式上,FC SAN与IP SAN都是采用块协议方式来完成的。这是它们的相同点。
 在传输速度上,就目前的传输速度而言是FC SAN(2Gb)最快、iSCSI(1Gb)次之。
 在传输距离上,FC SAN理论上可以达到100公里,而事实上当传输超过50公里后,就会出现瓶颈。透过IP网络的iSCSI理论上都没有距离上的限制, iSCSI可以进行无限长度的数据传输。
 在管理以及维护成本上,架设FC SAN网络需要投入很多硬件费用,并且需要特定的工具软件来操作管理,而IP SAN构建成本低廉,由于iSCSI是通过IP网络来传输数据及分配存储资源,所以只要在现有的网络上进行管理和使用即可。这样就可以省下大笔管理费用以及培训成本。
         其实IP SAN也面临着一些不可回避的困扰:
         首先,基于IP SAN的网络存储还没有得到用户的充分肯定,其次,IP SAN存储需要专门的驱动和设备,不过幸运的是一些传统的光纤适配器厂商都发布了iSCSI HBA设备,同时Inter也推出了专用的IP存储适配器,而Microsoft、HP、Novell、SUN、AIX、Linux也具有了iSCSI initiator软件,并且免费的提供给用户使用。最后,在安全方面,IP SAN虽有一套规范的安全机制,但是尚未得到用户的认可。
这些问题和困扰是妨碍iSCSI发展的强大阻力,但是iSCSI的前途是光明的,相信在未来的存储世界里,IP SAN绝对会拥有一席之地。
三、 iSCSI的组成
一个简单的iSCSI系统大致有以下部分组成:
 iSCSI initiator或者iSCSI HBA
 iSCSI target
 以太网交换机
 一台或者多台服务器
一个完整的iSCSI系统拓扑结构如图1所示:

 图1
 

在此图中,iSCSI服务器用来安装iSCSI driver,也就是安装iSCSI initiator,Storage Router可以是以太网交换机或者路由器,iSCSI存储设备可以是iSCSI磁盘阵列,也可以是具有存储功能的PC服务器。下面详细介绍一下iSCSI initiator与iSCSI target的含义:
四、iSCSI initiator
iSCSI initiator是一个安装在计算机上的一个软件或是一个硬件设备,它负责处理同iSCSI存储设备进行通信。
iSCSI服务器与iSCSI存储设备之间的连接方式有两种:第一种是基于软件的方式,也就是iSCSI initiator,在iSCSI服务器上安装initiator后,Initiator软件可以将以太网卡虚拟为iSCSI卡,进而接受和发送iSCSI数据报文,从而实现主机和iSCSI存储设备之间的iSCSI协议和TCP/IP协议传输功能。这种方式只需以太网卡和以太网交换机,无需其它设备,因此成本是最低的,但是iSCSI包文和TCP/IP包文转换需要消耗iSCSI服务器的一部分cpu资源,只有在低I/O和低带宽性能要求的应用环境中才能使用这种方式。
第二种是硬件iSCSI HBA(Host Bus Adapter)卡方式,即为硬件iSCSI initiator,这种方式需要购买iSCSI HBA卡,然后安装在iSCSI服务器上,从而实现iSCSI服务器与交换机之间、iSCSI服务器与存储设备之间的高效数据传输。与第一种方式相比,硬件iSCSI HBA卡方式不需要消耗iSCSI服务器的CPU资源,同时硬件设备是专用的,所以基于硬件的iSCSI initiator可以提供更好的数据传输和存储性能。但是,iSCSI HBA卡价格比较昂贵,因而,要在性能和成本之间进行权衡。
iSCSI initiator软件一般都是免费的,Centos和RHEL对iSCSI Initiator支持非常不错,现在的Linux发行版本都默认已经自带了iSCSI Initiator。
五、iSCSI target
一个可以被用于存储数据的iSCSI磁盘阵列或者具有iSCSI功能的设备都可以被称为“iSCSI target”,因为对于大多数操作系统来说,都可以用一些软件将系统转变为一个“iSCSI target”,本章我们重点讲述的就是如何构建一个PC构架的iSCSI存储系统,所谓PC构架就是选择一个普通的、性能优良的、可支持多块磁盘的PC(一般为PC服务器),选择一款相对成熟稳定的iSCSI target软件,将iSCSI Target软件安装在PC服务器上,这样普通的PC服务器就转变成一台iSCSI存储设备,并通过PC服务器的以太网卡对外提供iSCSI数据传输服务。
目前大多数iSCSI target软件都是收费的,例如DataCore Software的SANmelody,FalconStor Software的iSCSI Server for Windows等,这些都是windows平台的,不过,也有一些linux平台开源的iSCSI target软件,例如iSCSI Enterprise Target,在下面章节会重点介绍这个软件。
利用iSCSI target软件,可以将服务器的存储空间分配给客户机使用,客户机就可以像使用本地硬盘一样使用iSCSI磁盘,包括对其进行分区,格式化,读写等。并且每个客户端都可以往iSCSI磁盘写数据,互不干扰,且不会破坏存储服务器的数据。同时,iSCSI target软件对用户权限控制非常灵活,支持配置文件。
六、搭建iSCSI存储系统的建议
 我们知道,iSCSI是使用TCP/IP协议进行通信的,因此,将iSCSI两端连接起来,仅仅需要一个以太网络就可以了,由此可知,iSCSI的存储性能和这个以太网络有直接关系,所以最好在iSCSI网络中使用千兆以太网交换机,劣质的网络设备会严重的影响存储系统的性能,也就是说,要为每个服务器配备高质量的千兆以太网交换机,并提供两个连接,对于iSCSI targets,应该为每个独立阵列中的两个独立端口配备交换机,最后,将交换机连接起来,使用这种配置方式,即使两个交换机有一个出现了故障,整个iSCSI存储系统仍然能够正常工作,保证了存储系统的不间断运行。
七、iSCSI的工作原理
要理解iSCSI的工作原理,就必须知道iSCSI的层次结构,根据OSI模型,iSCSI的协议自顶向下一共可以分为三层,如图2所示:
 

图2
 

下面对每个分层进行简单介绍:
 SCSI层:根据客户端发出的请求建立SCSI CDB(命令描述块),并传给iSCSI层;同时接受来自iSCSI层的CDB,并向应用返回数据。
 iSCSI层:对SCSI CDB进行封装,以便能够在基于TCP/IP协议的网络上进行传输,完成SCSI到TCP/IP的协议映射。这一层是iSCSI协议的核心层。本章的内容也是主要针对这一层的配置和管理。
 TCP/IP层:对IP报文进行路由和转发,并且提供端到端的透明可靠传输。
iSCSI协议定义了在 TCP/IP网络发送、接收数据块存储数据的规则和方式。首先,发送端将SCSI命令和数据封装到TCP/IP包中,然后再通过IP网络转发,接收端收到 TCP/IP 包之后,将其还原为SCSI命令和数据并执行,执行完成后,将返回的SCSI命令和数据再封装到 TCP/IP 包中,然后再传回发送端。这样就完成了整个传输过程。
iSCSI整个过程在用户看来是完全透明的,用户使用远端的存储设备就象使用本地的硬盘设备一样。不过这只是理论上的,实际上数据传输速度并不能完全达到本地硬盘的数据传输速度,但差别并不明显,而且这种网络存储模式还有一个优点就是其安全性高,这对于数据集中存储的iSCSI来说显得非常重要。