Skip to content

实现iSCSITarget的两种方法(一)

2013-12-17 23:05:29   来源:华军科技数据恢复

如何实现一个iSCSITarget(软件法)
iSCSIInitiator可用软件方式实现,同样的iSCSITarget也行,不过优劣特点也相近,即是偏成本取向且不易达到专属硬件的效能。且要更注意的是,iSCSIInitiator软件确实多半采随附的放送策略,而iSCSITarget软件则不同,多数的iSCSITarget都要收费,仅少数免费,如UNH-iSCSI项目中除了iSCSIInitiator软件开发也有iSCSITarget软件开发,虽免费但也多半用于测试验证之用,少用于实际的商务运作。此外,有一个iSCSIEnterpriseTarget开放项目能提供iSCSITarget软件,但目前仅在0.4.x版,连1.0正式版都还有段距离。
现阶段真正成熟运用的iSCSITarget多半由商业软件业者提供,如DataCoreSoftware的SANmelody/SANmelodyLite,或FalconStorSoftware的iSCSIServerforWindows,或StringBeanSoftware的WinTarget等,颇为玩味的,三者都是只能安装在Windows伺服操作系统上,这似乎与节费有些违背(纯就操作系统的软件授权费,Windows向来高于Linux、UNIX)。
或许在意效能,或许在意花费(反正软法、硬法都要钱),多数用户仍倾向使用硬件方式来实现iSCSITarget,事实上过去也有业者推出能让泛用服务器转变成SAN或NAS储存设备的软件,但与实际的SAN、NAS储存硬件出货数相较实不成比例,同样的情形也反应在iSCSITarget软件上,软件式RAID也类似,RAID软件的真实运用量远低于RAID硬件。简而言之用户对iSCSIInitiator软件的接受度大于iSCSITarget软件。
另外,iSCSITarget有许多种类型,撇开iSCSIRouter/Gateway/Bridge等非储存角色不谈,储存上常见的有iSCSIDiskArray与iSCSITapeLibrary,对国内设计者而言只有iSCSIDiskArray具有意义,因为国内几乎没有业者在发展以磁带机为主的相关应用。信息硬件产品中只要牵涉到高度机械性的部分国内业者就会全面束手,小至软盘机、中至光驱、大至磁带机皆是。
上述的软件实现法,都属于资管、网管人员自身就可完成的方式,只要找一部泛用型服务器并对应安装软件即可。然而也有些软件方案并非供信息人员所用,而是供网储系统设计者所用,此即是嵌入式的伺服软件方案,过去Microsoft就有WSS(WindowsStorageServer),WSS包含嵌入式的Windows操作系统以及NAS伺服应用程序,设计者运用此套软件便可快速实现一台NAS,不过!硬件业者若要量产使用WSS的NAS储存硬设备,Microsoft将逐台收取授权费。而依据Microsoft的展望规划,日后将比照现有NAS作法,推出专供实现iSCSI储存设备的新版WSS。
当然!除Microsoft外,其它iSCSITarget软件业者也多半欢迎储存硬件业者的接触以促成嵌入式合作,例如2005年10月三星电子(SamsungElectronics)推出的ZSS-100iSCSI储存设备,即是以DataCore的SANmelody内嵌而实现,且ZSS-100的硬件组件相当平凡常见,如3.6GHz的Pentium4、SATA硬盘(多颗合计的原生总容量达1TB)等,并无特别过人之处。
相同的类例,HP的ProLiantDL100StorageServer与DL100G2(第二代)是使用WSS所形成的NAS,然也提供选用功能,可追加iSCSI功能于其上,等于一部储存设备兼具NAS与iSCSI功效,其中iSCSI功效是将FalconStoriSCSIServerforWindows进行内嵌而达成。
附注:还有两种特别的商业版iSCSITarget软件,如WasabiSystems的StorageBuilder1500i,此是将iSCSITarget软件搭配嵌入式操作系统(推测为BSD),一并存于IDE接口的CompactFlash记忆卡内,只要将此卡插置于一般x86硬件,即可让该硬件转变成iSCSITarget。另一则是RocketDivision的StarWind与StarPort,前者为iSCSITarget软件,后者为iSCSIInitiator软件,使用于Windows操作系统上,但作用不在仿真硬盘,而在仿真光盘。

QLogic的ISP3010芯片仅为TOE而不具iSOE,可当一般GbENIC之用,亦可加速存取NAS,而ISP4010芯片则为iSOE,可加速对iSCSITarget的存取。
如何实现一个iSCSITarget(硬件法)
接着是硬件实现法,我们完全锁定在如何实现一个iSCSIDiskArray上,但即便如此,实现方式也依然是形形色色、百家争鸣。
首先是从头设计到尾,前述用于iSCSIHBA中的芯片在iSCSITarget中也都适用,也统统要用,包括GbENIC(TCP/IP)芯片、iSCSI芯片、IPSec芯片等,而且用量也比iSCSIHBA多,iSCSIHBA可能用1∼2颗GbE芯片或iSCSI芯片,但iSCSITarget会用到2∼4颗,理由是一部iSCSITarget/DiskArray要服务多个iSCSIInitiator/iSCSIHBA,传输量较大,所以要多个相同并行组态以增进效能,另外也可充当备援组件,增加运作的坚稳可用性。
当然!上述这些芯片也可以部分舍弃不用,但道理一样:请改采软件方式来弥补,且代价是消耗部分的CPU运算力。在这些之外,iSCSIDiskArray的重点当然是RAID控制芯片(RAIDController),透过RAID芯片及其支持接口以连接各式硬盘。
要提醒的是,虽然设计目标为iSCSI,但不表示我们只能用SCSI硬盘或SAS硬盘,其实也可使用ATA硬盘、SATA硬盘,或FC硬盘等,这并不相抵触,重点只在于RAID芯片支持何种硬盘接口,RAID芯片与CPU连接,CPU与iSCSI芯片连接,过程中CPU会进行运作中所需的各种数据转换,这也是iSCSITarget的设计实现不必限定非使用SCSI/SAS硬盘的缘故。
如果认为各环节都自主设计太久太累,那可以考虑以半成品为基础再行往上发展,例如iStorNetworks所提供的GigaStorATX系统板,该板用上iStor所自研的特用芯片:iSNP8008(iSNP=IPStorageNetworkAccessProcessor)、8个1GbE网埠(iSCSI传输,另有支持10GbE的系统板)、16个SATA埠(可接16颗SATA硬盘)、4GB高速缓存,并已具备RAID0,1,10,5等数组组态,只要再搭配硬盘与些许设计,便可快速实现一部iSCSIDiskArray。
Back To Top
Search