软件法:如何实现一个iSCSI Target
iSCSI Initiator 可用软件方式实现,同样的iSCSI Target 也行,不过优劣特点也相近,即是偏成本取向且不易达到专属硬件的效能。且要更注意的是,iSCSI Initiator 软件确实多半采随附的放送策略,而iSCSI Target 软件则不同,多数的iSCSI Target 都要收费,仅少数免费,如UNH-iSCSI 项目中除了iSCSI Initiator软件开发也有iSCSI Target 软件开发,虽免费但也多半用于测试验证之用,少用于实际的商务运作。此外,有一个iSCSI Enterprise Target 开放项目能提供iSCSI Target 软件,但目前仅在0.4.x 版,连1.0 正式版都还有段距离。
现阶段真正成熟运用的iSCSI Target 多半由商业软件业者提供,如DataCore Software 的SANmelody/SANmelody Lite,或FalconStor Software 的iSCSI Server for Windows,或String Bean Software 的WinTarget 等,颇为玩味的,三者都是只能安装在Windows 伺服操作系统上,这似乎与节费有些违背(纯就操作系统的软件授权费,Windows 向来高于Linux、UNIX)。
或许在意效能,或许在意花费(反正软法、硬法都要钱),多数用户仍倾向使用硬件方式来实现iSCSI Target,事实上过去也有业者推出能让泛用服务器转变成SAN 或NAS 储存设备的软件,但与实际的SAN、NAS 储存硬件出货数相较实不成比例,同样的情形也反应在iSCSI Target 软件上,软件式RAID 也类似,RAID 软件的真实运用量远低于RAID 硬件。简而言之用户对iSCSI Initiator 软件的接受度大于iSCSI Target 软件。
另外,iSCSI Target 有许多种类型,撇开iSCSI Router/Gateway/Bridge 等非储存角色不谈,储存上常见的有iSCSI Disk Array 与iSCSI Tape Library,对国内设计者而言只有iSCSI Disk Array 具有意义,因为国内几乎没有业者在发展以磁带机为主的相关应用。信息硬件产品中只要牵涉到高度机械性的部分国内业者就会全面束手,小至软盘机、中至光驱、大至磁带机皆是。
上述的软件实现法,都属于资管、网管人员自身就可完成的方式,只要找一部泛用型服务器并对应安装软件即可。然而也有些软件方案并非供信息人员所用,而是供网储系统设计者所用,此即是嵌入式的伺服软件方案,过去Microsoft就有WSS(Windows Storage Server),WSS 包含嵌入式的Windows 操作系统以及NAS 伺服应用程序,设计者运用此套软件便可快速实现一台NAS,不过!硬件业者若要量产使用WSS 的NAS 储存硬设备,Microsoft 将逐台收取授权费。而依据Microsoft 的展望规划,日后将比照现有NAS 作法,推出专供实现iSCSI储存设备的新版WSS。
当然!除Microsoft 外,其它iSCSI Target 软件业者也多半欢迎储存硬件业者的接触以促成嵌入式合作,例如2005 年10 月三星电子(Samsung Electronics)推出的ZSS-100 iSCSI 储存设备,即是以DataCore 的SANmelody 内嵌而实现,且ZSS-100 的硬件组件相当平凡常见,如3.6GHz 的Pentium 4、SATA 硬盘(多颗合计的原生总容量达1TB)等,并无特别过人之处。
相同的类例,HP 的ProLiant DL100 Storage Server 与DL100 G2(第二代)是使用WSS 所形成的NAS,然也提供选用功能,可追加iSCSI 功能于其上,等于一部储存设备兼具NAS 与iSCSI 功效,其中iSCSI 功效是将FalconStor iSCSI Server for Windows 进行内嵌而达成。
附注:
还有两种特别的商业版iSCSI Target 软件,如Wasabi Systems 的Storage Builder 1500i,此是将iSCSI Target 软件搭配嵌入式操作系统(推测为BSD),一并存于IDE 接口的Compact Flash 记忆卡内,只要将此卡插置于一般x86 硬件,即可让该硬件转变成iSCSI Target。另一则是RocketDivision 的StarWind 与StarPort,前者为iSCSI Target 软件,后者为iSCSI Initiator 软件,使用于Windows 操作系统上,但作用不在仿真硬盘,而在仿真光盘。
QLogic 的ISP3010 芯片仅为TOE 而不具iSOE,可当一般GbE NIC 之用,亦可加速存取NAS,而ISP4010 芯片则为iSOE,可加速对iSCSI Target 的存取。
硬件法:如何实现一个iSCSI Target
接着是硬件实现法,我们完全锁定在如何实现一个iSCSI Disk Array 上,但即便如此,实现方式也依然是形形色色、百家争鸣。
首先是从头设计到尾,前述用于iSCSI HBA 中的芯片在iSCSI Target 中也都适用,也统统要用,包括GbE NIC(TCP/IP)芯片、iSCSI 芯片、IPSec 芯片等,而且用量也比iSCSI HBA 多,iSCSI HBA 可能用1∼2 颗GbE 芯片或iSCSI 芯片,但iSCSI Target 会用到2∼4 颗,理由是一部iSCSI Target/Disk Array 要服务多个iSCSI Initiator/iSCSI HBA,传输量较大,所以要多个相同并行组态以增进效能,另外也可充当备援组件,增加运作的坚稳可用性。
当然!上述这些芯片也可以部分舍弃不用,但道理一样:请改采软件方式来弥补,且代价是消耗部分的CPU 运算力。在这些之外,iSCSI Disk Array 的重点当然是RAID 控制芯片(RAID Controller),透过RAID 芯片及其支持接口以连接各式硬盘。
要提醒的是,虽然设计目标为iSCSI,但不表示我们只能用SCSI 硬盘或SAS硬盘,其实也可使用ATA 硬盘、SATA 硬盘,或FC 硬盘等,这并不相抵触,重点只在于RAID 芯片支持何种硬盘接口,RAID 芯片与CPU 连接,CPU 与iSCSI芯片连接,过程中CPU 会进行运作中所需的各种数据转换,这也是iSCSI Target的设计实现不必限定非使用SCSI/SAS 硬盘的缘故。
如果认为各环节都自主设计太久太累,那可以考虑以半成品为基础再行往上发展,例如iStor Networks 所提供的GigaStorATX 系统板,该板用上iStor 所自研的特用芯片:iSNP8008(iSNP=IP Storage Network Access Processor)、8 个1GbE 网埠(iSCSI 传输,另有支持10GbE 的系统板)、16 个SATA 埠(可接16 颗SATA 硬盘)、4GB 高速缓存,并已具备RAID 0,1,10,5 等数组组态,只要再搭配硬盘与些许设计,便可快速实现一部iSCSI Disk Array。