一、iSCSI发展路线图
  2001年初:由IBMCisco2001年制定iSCSI技术,两家并且分别推出了支持iSCSI的产品—I
BM IP Storage 200iCisco SN5420 Router
  200112月:NetApp公司推出了自家的IP SAN,它采用的是自行开发的VLD协议(Virtual Local Disk),存储上属于Block over IP方式。
    20032月:SNIA(Storage Networking Industry Associate,存储网络工业协会)终于正式制定通过了iSCSI标准。而业界莫不把此标准化视为iSCSI发展历程中的最关键因素,自此开始,有愈来愈多的厂商开始进一步开发合乎业界标准的相关产品,iSCSI也开始受到业界目光的青睐。 
  20035月:微软Windows Server 2003 中,正式开始支持iSCSI,并提供iSCSI Initiator驱动程序的下载。微软此项深具推波助澜的作法,带动了整个iSCSI业界的发展。所以接下来,不论各类作业平台或软硬件的支持会愈来愈齐备。
  200410月:HP发布的IP Storage 500/1500
  2005年:自从标准化及微软支持解决了iSCSI最大的发展瓶颈之后,iSCSI的全面普及也只是时间早晚的问题而已。但业界对其开始普及的时间点一直莫衷一是。一般调查机构多半认为该时间点应在2006年,但各家厂商却异口同声地认为2005年就有机会看到市场大幅起飞。
  二、 iSCSI技术
  SANStorage Area Network的缩写)意为存储区域网络,是真正的专注于企业级的存储。SAN采用一个分离的网络(从传统的局域网中分离)连接所有的存储器和服务器,这个网络可以采用高性能的实现技术,如光纤通道(Fiber Channel),可以容纳SCSI等协议,使数据块的移动更为有效,也便于用户自由增加磁盘阵列、磁带库或服务器等设备。现在的SAN基本都是通过Fibre Channel来实现的,Fibre Channel,简称FIBRE CHANNEL,又称光纤通道,是利用专用设备进行数据高速传输的一种网络标准,主要用于连接服务器的干线(backbones),并把服务器连接到存储设备上。采用高速的FIBRE CHANNEL作为传输媒介的SAN具有光纤信道在距离、性能和连接性等方面的优势,如果结合光纤通道交换机,则
可以提供高达2Gb/s的数据传输速率,使独立于应用服务器网络系统之外的SAN几乎拥有了无限的存储能力。 但是利用FIBRE CHANNEL实现的SAN虽然性能优越,扩展性极佳,但价格却贵得惊人,管理起来也非常困难,让一般用户难以承受。也是许多企业不得不忍痛放弃SAN的原因。iSCSI(互联网小型计算机系统接口)是一种在Internet协议网络上,特别是以太网上进行数据块传输的标准,是一种集成了IPSCSI的技术。它最大的特点就是让标准的SCSI命令能够在TCP/IP网络上的主机系统(启动器)和存储设备(目标)之间传送。与光纤通道相比,iSCSI具有许多优势,用‘iSCSI=低廉+高性能这个等式来表示再恰当不过了。iSCSI是基于IP协议的技术标准,实现了SCSITCP/IP协议的连接,那些以局域网为网络环境的用户只需要少量的投入,就可以方便、快捷地对信息和数据进行交互式传输和管理。相对于以往的网络接入存储,iSCSI的产生解决了开放性、容量、传输速度以及兼容性等许多问题,让用户可以通过现有的TCP/IP网络来构建存储区域网,能够更容易地管理SAN存储。iSCSI结构见图1
1 iSCSI体系结构
  这里就SANiSCSI做一比较,基本两者同属运行块协议的SAN架构,只不过前者透过FIBRE CHANNEL,后者由IP传输数据罢了,而两者在管理及应用上也大同小异。这里在此还是尽量做一番归纳整理,以供参考,见表-1
              表-1 iSCSISAN综合对比
linux完全安装
对比选项
SAN存储
iSCSI存储
接口
光纤
IP
性能
管理及维护成本
管理方式
集中
集中
传输介质
光纤
双绞线
噪声干扰
访问方式
文件系统
主机文件系统
主机文件系统
电磁影响
传输距离
100公里
无限制
  数据传输方式:同为SANiSCSIFIBRE CHANNEL都采用块协议方式。
  传输速度:就目前的传输速度而言是FIBRE CHANNEL(2Gb)最快、iSCSI(1Gb)次之。
  管理方式:iSCSI采用IP网络的现有成熟架构。所以可延用既有成熟的网络管理机制,不论是建置、管理或维护上,都非常方便及容易。而FIBRE CHANNEL则完全独立于一般网络系统架构,所以需由FIBRE CHANNEL供货商分别提供专属管理工具软件。
  管理及维护成本:一般来说,FIBRE CHANNEL SAN多半需要特定的工具软件来操作管理,所以需要对人员进行一定时间的教育训练,而且费用不低。但由于iSCSI乃透过IP网络来传输数据及分配存储资源,所以只要使用网络现有的管理功能即可,相较起来,的确可以省下大笔管理人力及训练成本。
  传输距离:原则上,二者都支持长距离的数据传输。FIBRE CHANNEL的理论值可达100公里。透过IP网络的iSCSI理论上都没有距离上的限制, iSCSI可以进行长距大量资料的传递。
    噪声碰撞问题:由于iSCSI走的是IP网络,其中当然充斥着来自全球各地的庞大数据及噪声,所以碰撞情形也就在所难免了,如此一来,在数据传输的过程中,就很容易导致延迟的
情形发生,大大影响了传输的效能,甚至数据的正确性。
  三、主流操作系统iSCSI支持
  对于蓄势待发已久的iSCSI而言,迟迟未能全面普及的主要原因之一,就在于各类平台支持性的不够完备。是否能得到各式平台充份支持的关键,则在于协议的标准化上。有了标准化的协议,各类平台解决方案商才能有所依循地推出符合共通标准的支持及产品,如此可观的市场规模才能建立得起来。SNIA协会在20032月正式通过了iSCSI标准, 虽然iSCSI已正式标准化,但不一定代表从此就能快速普及,iSCSI是否能在企业存储市场站稳脚步,仍需看厂商本身的参与态度及开发意愿。表2是主流操作系统对iSCSI支持情况。
  2是主流操作系统对iSCSI支持
操作系统
驱动程序
适配卡
产品名称
Windows 2000
Microsoft software Initiator
Intel PRO/1000T IP适配卡
Alacritech iSCSI HBA SES 1001
Adaptec iSCSI HBA 721C/F
Qlogic SANblade QLA4010
Windows 2003
Intel PRO/1000T IP适配卡
Microsoft software Initiator
Alacritech iSCSI HBA SES 1001
Qlogic SANblade QLA4010
Red Hat Enterprise Linux  AS 4.0
Qlogic SANblade QLA4010
Adaptec iSCSI HBA 721C/F
HP-UX V1/V2
HP-UX software Initiator
Novell Netware 5.1-6.5
Novell software Initiator
SUN Solaris 9
Qlogic SANblade QLA4010
  iSCSI Initiator可分为三种,即软件Initiator驱动程序、硬件的TOETCP Offload EngineTCP卸载引擎) HBA卡及iSCSI HBA卡。就性能而言,软件Initiator驱动程序最差、TOE HBA卡居中、iSCSI HBA卡最佳。但是iSCSI HBA只能运行iSCSI协议,而无法运行NFSNetwork File SystemSUN制定)或CIFSCommon Internet File System,微软制定)等档案系统协议与应用服务器沟通。但Initiator驱动程序及TOE HBA卡则同时支持iSCSINFSCIFS三种协议。
  四、Linux下实现iSCSI
  Linux网络环境iSCSI技术的实现主要有三种方式:
  1. 纯软件方式
  服务器采用普通以太网卡来进行网络连接,通过运行上层软件来实现iSCSITCP/IP协议栈功能层。这种方式由于采用标准网卡,无需额外配置适配器,因此硬件成本最低。但是在这种方式中,服务器在完成自身工作的同时,还要兼顾网络连接,造成主机运行时间加长,系统性能下降。这种方式比较适合于预算较少,并且服务器负担不是很大的用户。目前不论是
Microsoft WindowsIBM AIXHP-UXLinuxNovell Netware等各家操作系统,皆已陆续提供这方面的服务,在价格上,比起前两种方案,远为低廉,甚至完全免费。但由于Initiator驱动程序工作时会耗费大量的CPU使用率及系统资源,所以性能最差。在此建议,最好是采用1GHz以上CPU的主机,如此才能获得较佳的效能表现,如果公司主机CPU1GHz以下,那么最好不要采用。至于在各类协议的支持上,Initiator驱动程序可以同时支持iSCSINFSCIFS协议。当然现在大多数服务器CPU都可以满足这个要求。这里免费的iSCSI Initiator驱动程序,才可以将一般Gigabit网卡仿真成iSCSI Initiator。然后再透过iSCSI桥接器将一般SCSI接口的存储配备仿真成iSCSI Target,如此就形成一个iSCSI-SAN
  2. iSCSI TOE网卡实现方式
  在这种方式中,服务器采用特定的TOE网卡来连接网络,TCP/IP协议栈功能由智能网卡完成,而iSCSI层的功能仍旧由主机来完成。这种方式较前一种方式,部分提高了服务器的性能。在三种iSCSI Initiator中,价格比iSCSI HBA便宜,但比软件Initiator 驱动程序贵,性能也居于两者之间。目前市面上IntelTOETCP Offload EngineTCP卸载引擎) HBA价格在150美金左右。
3. iSCSI HBA卡实现方式
  使用iSCSI存储适配器来完成服务器中的iSCSI层和TCP/IP协议栈功能。这种方式使得服务器CPU无需考虑i
SCSI以及网络配置,对服务器而言,iSCSI存储器适配器是一个HBA(存储主机主线适配器)设备,与服务器采用何种操作系统无关。该方式性能最好,但是价格也最为昂贵。在三种iSCSI Initiator中,价格最贵,但性能最佳。目前价格已由一开始的1000美金左右,下降跌至500美元左右。对于有高效能应用需求的企业,最好采用iSCSI HBA卡,如此才能获得最好的性能。
  考虑到笔者使用Linux服务器使用2.4G Intel 至强处理器,而且网络负载不大,本文使用第一种方式,拓朴结构见图2.
  2 网络拓朴结构
  说明:iSCSI 储存设备架构:
  型号为PROMISE Vtrak 15200 ,使用 iSCSI 机型;
  使用硬盘1 颗为 spare disk,其余4 颗做成 RAID-5
  IPiSCSI 储存设备的 IP 地址设置为 192.168.11.201
  连接到储存设备的账号与密码分别为: myaccount/iscsimy1Spw
  Linux 服务器:
  系统: Red Hat 9 Linux核心 ( 2.4.20-8mp )
  IP Red Hat 9 Linux服务器IP地址设置为 192.168.10.3
  硬件:Dell PowerEdge 16000SC2.4G Intel 至强处理器,512MB DDR ECC内存)基础型服务器。用于邮件服务器(商业版本的sendmail3Rsoft)。
  1.准备工作
  因为安装iSCSI驱动需要配合核心来编译,所以会使用到内核源代码,此外,也需要编译器 ( compiler ) 的帮助,因此,先确定您的 Linux 系统当中已经下列软件的存在 kernel-source kernelgccperlApache 打开一个终端,使用命令检查: