QLogic 的ISP3010 芯片仅为TOE 而不具iSOE,可当一般GbE NIC 之用,亦可加速存取NAS,而ISP4010 芯片则为iSOE,可加速对iSCSI Target 的存取。
硬件法:如何实现一个iSCSI Target
接着是硬件实现法,我们完全锁定在如何实现一个iSCSI Disk Array 上,但即便如此,实现方式也依然是形形色色、百家争鸣。
首先是从头设计到尾,前述用于iSCSI HBA 中的芯片在iSCSI Target 中也都适用,也统统要用,包括GbENIC(TCP/IP)芯片、iSCSI 芯片、IPSec 芯片等,而且用量也比iSCSI HBA 多,iSCSI HBA 可能用1∼2颗GbE 芯片或iSCSI 芯片,但iSCSI Target 会用到2∼4 颗,理由是一部iSCSI Target/Disk Array要服务多个iSCSI Initiator/iSCSIHBA,传输量较大,所以要多个相同并行组态以增进效能,另外也可充当备援组件,增加运作的坚稳可用性。
当然!上述这些芯片也可以部分舍弃不用,但道理一样:请改采软件方式来弥补,且代价是消耗部分的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 AccessProcessor)、8 个1GbE 网埠(iSCSI 传输,另有支持10GbE 的系统板)、16 个SATA 埠(可接16 颗SATA硬盘)、4GB 高速缓存,并已具备RAID 0,1,10,5 等数组组态,只要再搭配硬盘与些许设计,便可快速实现一部iSCSI DiskArray。
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 SATA300-8x,以及LSI Logic 的iSCSI Target 软件:iMegaRAID RAS,即可让x86 计算机摇身变成iSCSIDisk 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 争斗。