菲议存储:实现 iSCSI Target的两种方法

如何实现一个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。


Stor 的GigaATX 系统板是专为加速iSCSI Target 设计所提出,该系统板上使用iStor 自研的iSNP8008 处理器。

另一种半成品作法是用LSI Logic 的iMegaRAID iSCSI 套件,这套件包含软硬两部分,硬件方面是一张LSI Logic 的MegaRAID SATA 300-8X 或300-8XLP的磁盘阵列控制卡,用来形成SATA 磁盘阵列,软件部分则是LSI Logic 的iMegaRAID RAS Software,将控制卡装入一部使用Linux 操作系统的计算机,且该计算机已具备GbE NIC 功能,再安装上iMeagaRAID 软件,即可完成一部iSCSI Disk Array。

严格来说,LSI Logic 提供的方式不太能算是硬件作法,应是软件作法,只是该软件相依于该公司自有的磁盘阵列控制卡上,非配装该卡才能发挥,其余部分都是以纯软件方式实现,例如iSCSI 运算、TCP/IP 运算等,只要iMegaRAID 软件舍弃与自家控制卡的相依性,而能适用于任何数组控制卡,就是一个地道的软件iSCSI 方案。说穿了,此法只是让LSI Logic 用来增加既有RAID 控制卡的价值与运用范畴。

不过,使用现成的iSCSI HBA 卡、现成的RAID 卡,甚至使用泛用的主机板等,确实是较快便的实现法,进而将研发心力更专注在韧体、驱动程序、嵌入式操作系统等层面,但相对的也必须牺牲硬件层面的最佳化设计。


用一部x86 计算机,安装Linux 操作系统及一张GbE NIC,再安装上LSI Logic 的磁盘阵列控制卡:MegaRAID SATA 300-8x,以及LSI Logic 的iSCSI Target 软件:iMegaRAID RAS,即可让x86 计算机摇身变成iSCSI Disk Array。

如果认为以半成品来进行设计还是过于麻烦,也还有更轻松行事的方式,甚至完全只要手工就能完成,无须任何电子工程设计,如ATTO Technology 的iPBridge 系列的iSCSI 桥接器,提供iSCSI-to-SCSI 与iSCSI-to-FC 的桥接,可让过去采直接附连(Direct Attached,如SCSI、FC 接口)的磁盘阵列柜(Disk Array,JBOS、DAS)或磁带设备(Autoloader、Tape Library)转变成iSCSI Target。

又如SANRAD 的V-Switch 系列(iSCSI Gateway,也称iSCSI Bridge)也是直接取用既有DAS、JBOD 等直接附连式储存设备,重新转化成iSCSI,以保障企业用户在既有储存设备上的投资。也因为只要手动转接与相关调设,所以资管、网管者可自行完成转化程序。

iSCSI 外的更精进路线:10GbE、iWARP

要不是GbE 的技术及价格成熟,否则iSCSI 也不会到临,因为以100Mbps的Ethernet 来执行iSCSI 在效率上可说是完全不可行。

有了GbE 后,虽然1Gbps 的iSCSI 依旧逊于1Gbps FC(理由是TCP/IP 协定的频宽占量多过FC 的FCP 协议,且Ethernet 协议有较大的传输延迟),但也逐渐逼近,迫使FC 将入门级从1Gbps 调升为2Gbps,好与1Gbps iSCSI 有所区隔,并往上追加4Gbps FC,以维持其效能领先地位。

不过,Ethernet 并非只及1Gbps,10Gbps 也已经实现,40Gbps 也已经列入规划进程,所以也有业者提出让iSCSI 使用10Gbps 而非拘限在1Gbps,一举超越现有2Gbps、4Gbps 的FC,例如iVivity 的iDiSX 2000 芯片(iDiSX 2000 是I-Disks2000 的谐音),即是以单纯的10GbE 芯片,并搭配iSCSI 软件来实现iSCSI,

属于高阶高效性iSCSI 方案。

另外,只将高速Ethernet 用于「储存网络化」也过于可惜,所以也有众多业者发起iWARP,不仅可实现储存的网络化,也能实现I/O 的网络化,这在过去多半要倚赖IB(InfiniBand)才能达成,但iWARP 就是希望用更共通的Ethernet标准来实现,进而取代。从许多迹象可看出iWARP 取代IB 的意图,例如两者都具有RDMA(Remote Direct Memory Access)机制,简化网络两端的内存数据交换程序,从而加速。

同时,RDMA 也可搭配iSER(iSCSI Extension to RDMA)协议,达到与iSCSI一模一样的储存网化功效,等于是iSCSI 的超集,既能将「储存资源及运作」网络化,也能将「I/O 资源及运作」网络化。目前NetEffect 的NE01 系列芯片即是针对iWARP 运用所开发,并提出所谓的ECA(Ethernet Channel Adapter),从名称上即可知有与IB 较量的意味,因为IB 卡称为HCA(Host Channel Adapter)或TCA(Target Channel Adapter),严格而论具iWARP 硬件加速及分担卸载功效的10GbE 网卡,当称为RNIC(RDMA NIC)。


Voltaire 为InfiniBand 的交换、路由设备大厂,但也支持RDMA 及iSER 协议,此也等于支持iWARP/iSCSI,图为iSCSI 与iSER 的协议架构。

此外Broadcom 提出所谓的C-NIC(Converged NIC)聚合型网卡理念,即是在一颗NetXtreme II 系列的GbE 控制芯片内同时具备以太网络、储存网化、I/O网化等功效,传统以太网部分具有TOE 运算,储存网化则具备iSCSI 运算、I/O网化则具备RDMA 运算,大幅卸除CPU 的辅助运算,使CPU 占用率降至20%以下。

关于C-NIC 理念,Broadcom 目前的代表性芯片为BCM5706(PCI/PCI-X 接口)与BCM5708S(PCIe 接口),其中BCM5706 为第一代,BCM5708S 为第二代,第二代还将传输率从1Gbps 提升至2.5Gbps,虽是专属超规作法,但却更贴近与符合C-NIC 的需要,毕竟一个网埠具备三种功效,若没有更高的频宽作为支持,反会造成三种网化功效互迁就或互干扰的影响。而且Broadcom 也于2005年7 月收并Siliquent Technologies,该公司专注于10GbE 芯片的技术,预计此一收并将有助于Broadcom 的C-NIC 方案从2.5Gbps 提升至10Gbps。

不过,现在10GbE 的相关芯片仍偏贵,也必须使用光纤,铜线规格仅初步定案,仍待更完整,且据知铜线无法如过往GbE 般保持在100m,距离可能会缩短。所以,前言10GbE几乎必用光纤,如此将与FC愈来愈像,且目前FC芯片比10GbE芯片低廉,加上FC 未来也计划迈向10Gbps,所以10Gbps 的Ethernet 与FC 还有番价格效能比的争斗,甚至也要与10Gbps 的IB 争斗。

本文版权归DoSTOR及作者本人所有,未经许可,不得转载。