InfiniBand的版本演进、基础观念、传量传速

来源:百度文库 编辑:神马文学网 时间:2024/04/27 11:40:09
2005年3月7日 9:51:15
InfiniBand标准
随着计算能力向数据中心的集中,消除性能瓶颈和改进系统管理变得比以往更加至关重要。I/O子系统中是造成很多这类问题的根源。InfiniBand 是一种被很多人认为可以消除由今天脆弱而又不堪重负的I/O架构带来的烦恼的一种新I/O技术。
InfiniBand贸易协会(InfiniBand Trade Association,IBTA)发布了以该协会名称命名的I/O 规范的1.0版本。这个拥有180名组员的组织包括所有业界的主要系统、 半导体和外设制造商。该协会是去年两项竞争性I/O标准 ——未来I/O(Future I/O)和下一代I/O(Next Generation I/O)合并的结果。随着这项标准的发布,IBTA成员将开始设计和生产将在明年出现在市场上的InfiniBand就绪产品。
不仅限于I/O
InfiniBand将主要用于取代服务器上的“外围部件互连局部总线”(PCI)。 它提供了PCI所不具备的更多的功能和性能。尽管PCI的可靠性和高速度已经得到证明,并且随着PCI-X 的发布, 它的速度将会继续提高(达到1Gbps), 但是它仍落后于InfiniBand的通道设计。
例如,在使用InfiniBand系统时,设计者和信息技术经理可以不再将I/O永远当做是服务器的一部分,特别是,不再认为I/O局限于机箱的内部。
在使用InfiniBand标准的情况下,远程存储、网络以及服务器之间的连接可以通过将所有的设备利用一条由InfiniBand交换机和链路组成的集中的、统一的光纤连接起来实现。InfiniBand将利用这种方式解决象PCI 这类基于总线的架构的距离问题。现在PCI距CPU主板的距离是以英寸甚至厘米来计算的。InfiniBand 的通道设备使I/O设备在使用铜线时可以放在距服务器17米远的地方,而在使用单模光纤时这一距离甚至可达10公里。
由于消除了对内部I/O总线系统的需要,结构设计师将重新考虑如何设计服务器的机箱。分析人员说,他们认为服务器的占地面积可以减少多达60%,从而通过利用更加优化的机器来取代体积庞大的服务器,直接使拥挤的数据中心受益。
由于不再规定服务器的PCI插槽的数量,多数系统将只配置一个InfiniBand 主机通道适配器(Host Channel Adapter,HCA )。 HCA 负责将计算机与一个基于通道的InfiniBand交换机连接起来,而这台交换机将计算机与大规模存储系统、路由器以及其他配置InfiniBand目标通道适配器(Target Channel Adapter,TCA)外设连接在一起。这台交换机通过光纤提供点对点连接。
目前,如果你需要向一台服务器增加更多的存储容量而你又没有空闲的PCI 插槽可用的话,你必须关闭服务器,添加PCI扩展板,连接存储设备, 然后在操作系统上配置这部磁盘阵列,最后再重新启动服务器。而在使用InfiniBand的情况下,你只需将磁盘阵列的TCA连接到InfiniBand交换机上, 通道适配器中的智能性完成其余的事,不会中断服务器的运行。
通道适配器是可以在不中断服务器CPU运行的情况下处理所有I/O功能的智能设备。例如,当InfiniBand的光纤线路初始化时,它会发现光纤线路中的所有的HCA和TCA,并为它们分配逻辑地址。它通过一种轮询算法跟踪所有的设备。在向光纤线路上添加新的通道适配器时,轮询算法使它能够找到这些新适配器。
连接到任何地方
InfiniBand规范中包括一些选项,根据这些选项,通道适配器可以包括1条、4条或12条满足不同性能需求的链接。这三种链接选项分别可以处理500Mbps、2Gbps和6Gbps双向数据传输速率。
InfiniBand使用IPv6(Internet协议第 6 版)中的扩展地址。传输的数据包包括InfiniBand 全球路由首标中的(Global Route Header)源(HCA)和目的(TCA)地址,这些地址使InfiniBand交换机可以立即将数据包直接交换到正确的设备上。
你可将InfiniBand交换机串联起来提供故障转移保护。PCI 总线一直是服务器中的潜在单点故障,而InfiniBand的外部位置和通道架构使你可以建立自动的备份与恢复机制:迄今为止这在总线系统上是不可能实现的。
InfiniBand 将使应用开发人员放开手脚,开发出速度更快的软件,因为开发人员可以使应用程序不必再经过CPU就可直接调用I/O设备。
例如,PCI 总线上的一个简单的打开或关闭文件的请求必须经过微处理器来完成文件操作。而在使用InfiniBand系统的条件下, 应用程序可以直接调用管理文件的存储系统,从而使CPU避免了不必要的中断。
为服务器I/O提速的新规范
InfiniBand贸易协会将发布第一个用于其宽带总线架构的规范。该规范将为实现群集服务器之间更高速的通信铺平道路,帮助消除服务器与网络资源之间存在的I/O瓶颈。
对于客户来说,InfiniBand将意味着在实现网络、存储和群集连接时,不再需要将多个适配器插入到服务器上。相反,与符合InfiniBand规范的交换机的连接将提供一种虚拟的宽带通道,从而使用户避免了安装和维护复杂的I/O配置。其结果是以一种更简单的方式使服务器处理器与外设、存储设备以及其他服务器连接,获得更高的性能。
在产品方面,IBM将宣布一款预定于明年下半年上市、用于为InfiniBand交换机提供动力的芯片。Banderacom公司计划推出一种芯片架构以支持InfiniBand存储设备、服务器和网络产品。
甚至基于先进的PCI-X的服务器也将面临1Gbps的总线速度限制,这是推动人们对InfiniBand需要的原因。InfiniBand技术将支持可以传送500Mbps到6Gbps的链接以及吞吐量高达2.5Gbps的交换光纤背板。
理论上,通过使用支持这项技术的产品,网络上具有地址的设备的数量可达64000部。
Intel公司企业产品部营销经理说,通过将多个InfiniBand网络连接起来,具有地址的设备数量几乎是无限的。
InfiniBand将支持铜质电缆和光缆链路,从而降低高端服务器的入门水平,使之更容易适应网络上基于事务的传输流。
然而,InfiniBand不仅能用于服务器。安装在网络上连接设备的中央InfiniBand I/O交换机也可以用于群集服务器,用于服务器之间高速互联。
IBM公司计划宣布三种InfiniBand技术,包括驱动InfiniBand交换机的专用集成电路芯片、将InfiniBand交换机光纤网络与服务器连接的主机通道适配器,以及用于连接I/O设备(如连接到交换机光纤上的网络或存储设备)的目标通道适配器(Target Channel Adpapter)。
Banderacom公司将宣布Ibandit——一种为InfiniBand通道适配器提供基础的InfiniBand半导体架构。该公司还计划宣布与生产软件以及为Internet设备提供服务的公司的合作,以开发和提供包括支持Banderacom公司的Ibandit架构在内的InfiniBand传输软件。包括一些新兴的公司也正在开发InfiniBand技术。
与此同时,推出的新成立的工作组可以决定第三方产品如何利用InfiniBand一起工作。
对于客户来说,这意味着他们可以将不同厂商的服务器连接在一起以及部署多厂商存储和网络设备。
光明的未来
IDC公司预测,这个市场的总份额将在2004年前达到约20亿美元。这个市场为供应商提供了开发和安装包括服务器、交换机和其他设备在内的InfiniBand技术的机会。
这意味着在2004年发送的大约六百万台服务器中,有四百万台将具有InfiniBand功能。
但是,InfiniBand必须与支持着网络、服务器和存储设备的现有行业标准共存并帮助现有标准。
InfiniBand的成功在很大程度上取决于能否与现有PCI光纤、Ethernet以及光纤通道共存。
InfiniBand还可以提高可靠性。例如,如果服务器的PCI总线出现故障的话,服务器就瘫患了。然而这种情况不会发生在InfiniBand上。由于InfiniBand的实现方式,它可以提供多条连接路径。如果损失一条线路或连接的话,其他连接仍可以被访问,这一点与大型机可以访问多个分区类似。
Intel公司认为,InfiniBand将向用户提供与带来光明的电力网相似的格栅网计算功能。如果一个资源不可使用的话,可以连接另一资源来代替它,补充带宽的需要。
InfiniBand最终将取代的是老式的共享总线技术,这种技术需要关键的服务器和网络部件来分担今天数据中心中很紧缺的资源。
InfiniBand:还会有多少人想起我?
2005年10月27日 Zxm(整理)
前言:InfiniBand——速起速落
如果说IT(Information Technology;信息技术)界要颁发“最速黯淡奖”,那么笔者可能会提名“InfiniBand”,理由是InfiniBand的规格及标准规范自1999年开始起草,2000年正式发表,之后主力业者纷纷退出,再经过一、二年的前期推展与市场观察,以及PCI Express的出现,几乎注定了InfiniBand的发展界限。
InfiniBand虽自1999年启动,但其实有更远早的渊源,最初来自Compaq,更严格说是来自康柏(Compaq)于1997年所收并的天腾计算机(Tandem),Tandem知名的专属架构计算机:NonStop Himalaya(永不停顿,喜马拉雅)是一种以大量平行容错集群(Failover Cluster)所建立的系统,1994年Tandem为此系统添入了新的设备联机技术:ServerNet,ServerNet能让主机核心(处理器、内存)与主机I/O(硬盘、适配卡)间以长缆线方式连接,并以高速、低延迟的特性进行传输,如此核心与I/O在运作上依旧保持一体性,但实体配置却可分离,在无此技术之前,主机核心与I/O多是实行单一完整实体的设计,今日绝大多数的服务器依然是此种设计。
此番说明各位似乎不容易了解,但若改用生活譬喻就可以轻松体会,过去的箱型冷气、窗型冷气都是一体性设计,而近年来出现了分离式冷气,分离式冷气让空调配置更具弹性,但两分离设备间依旧有冷媒管相连,运作上仍是完整一体,而实机配置却可弹性分离。ServerNet所扮演的,正类似分离式冷气中的冷媒管,都具有实体相连、运作融合的任务及效用。
InfiniBand的前身:ServerNet、FIO、NGIO
正因为ServerNet有如此绝佳妙用,过去仅供Tandem的NonStop系统所独享独用,但在Compaq收并Tandem后,也将ServerNet技术用于其原有的PC Server上,以此实现超快速的PC集群系统,同时Nokia、Ericsson也对此卓越技术相当锺意,可让网络通讯设备也受益,因此先后于1998年向Compaq购买此一技术的运用授权,当时ServerNet就已有600Mbps的高速表现,同一时间PCI最快仅532.8MB/Sec(64-bit、66.6MHz),1GB/Sec的PCI-X于1999年才提出,且ServerNet是机外长距联机,PCI仅限于机内连接。

CS Electronics公司专门产制各种巨量储存(Mass Storage)所需的接口线路,如LVD SCSI、Fibre Channel、Gigabit Ethernet等,同时也包括InfiniBand,图为该公司所制造的InfiniBand 1x联机(Link)接头
当然!ServerNet技术必须持续强化精进才能常保其优势及特点,而且ServerNet技术不仅受用在主机与服务器等运算设备,就连通讯设备、电信设备、甚至储存设备等都有需要,所以Compaq决定扩展延伸此一标准,除自身外也联合HP、IBM等其它高阶服务器业者一同制订,并将后续的强化版本称为FIO(Future I/O,未来I/O)。

CS Electronics公司所产制的InfiniBand 4x联机接头
然而,期望发展更高速、先进的I/O标准并非只有Compaq、惠普(HP)、IBM,另有一阵营也积极研拟,此即是由戴尔(Dell)、英特尔(Intel)、微软(Microsoft)、升阳(Sun)所共同推行的NGIO(Next Generation I/O,次世代I/O),由于FIO与NGIO有相当大的重迭性,遂促使了此两大阵营、七大业者的协议讨论,期望让FIO、NGIO融合为一,避免制订心力的重工(重复施工,指相同目标的心力浪费),及相近用途标准的分歧。
经过密切讨论,终于在1999年8月31日达成协议,确定FIO与NGIO将相互融合,并在讨论过程中即已提议放弃原有的FIO、NGIO等称呼,改用新的一致性称呼,最初命为System I/O,然而此名称仅使用一短暂时间,仅从1999年8月用至同年10月,10月联合制订小组成立后正式命为InfiniBand。
业者各怀鬼胎,相继另行PCI Express、RDMA
IT界至强的七大业者空前连手,自然有着无比的号召,也因此InfiniBand的专责机构:InfiniBand Trade Association(简称:IBTA)吸引了70多家业者会员的加入,看来前程似锦,但实际上却是各怀鬼胎,看似完美阵容的合作终究还是破局。
首先是Wintel的退离,2002年5月Intel、Microsoft退出IBTA,然在此之前Intel早已另行倡议Arapahoe,亦称为3GIO(3rd Generation I/O,第三代I/O),正名后即是今日鼎鼎大名的PCI Express(简称:PCIe),经过一年的InfiniBand、3GIO并行,Intel终究还是选择PCIe而背弃InfiniBand。

CS Electronics公司所产制的InfiniBand 12x联机接头
在Wintel求去后,所有IBTA会员将主导业者寄望在IBM、HP身上,没想到IBM、HP也在不久后退出,并在来年提出RDMA(Remote Direct Memory Access;远程直接内存存取),期望用10Gbps Ethernet,搭配TOE(TCP/IP Offload Engine,TCP/IP负荷卸除引擎)的硬件加速设计,以更标准、低廉的方式达成与InfiniBand相同的功能用途。
为了成就RDMA,业界成立了RDMA Consortium的组织,且RDMA的创始会员也不陌生,即是之前相继退出IBTA的Intel、Microsoft、IBM、HP、及Dell,再加上储存网络化所兴起的EMC、Network Appliance(简称:NetApp),还有Adaptec、Broadcom、Cisco等业者。
RDMA Consortium的目标远大,在RDMA之前iSCSI已获得Internet标准制订机构:IETF(Internet Engineering Task Force)的正式认可,RDMA Consortium不仅比照iSCSI的路线模式交付IETF审核,期望RMDA让成为Internet标准,同时也延伸订立iSCSI Extensions for RDMA(简称:iSER)及相关协议,让RDMA能兼具iSCSI功效。
虽然大厂相继弃舍InfiniBand,但Sun依然拥抱支持,现在是InfiniBand阵营最具份量的业者。而且,似乎只要被Wintel看淡的事物就会有开放原码接手并大力发扬的空间,在SourceForge.Net(简称:sf.net)的自由软件项目网站上就有Linux InfiniBand项目,让Linux 2.4、2.6操作系统能支持使用InfiniBand,另外,也有所谓的Open InfiniBand Stack(简称:OpenIB)项目,将完整开发实现InfiniBand各种功效的软件堆栈,包括驱动程序、软件管理工具、应用协议等。
附带一提的是,市场研究调查机构IDC,曾经在2001年发表InfiniBand的市场预估,认为InfiniBand将在往后数年逐渐成长,2002年新出货的服务器中约有5%的比例会预装、预配属InfiniBand,2003年将达20%,2004年为60%,2005年至80%。如今我们处在2005年回头看4年前的报告,再与现实发展对应比较,实在是天差地别。即便之后修正为2005年将有过半的新出货服务器会配装InfiniBand,与事实比对仍是远偏。
InfiniBand的版本演进、基础观念、传量传速
接着让我们来看看InfiniBand(有时可简称为:IB或IBA,即InfiniBand Architecture)的规格发展历程,InfiniBand的版本发布主要有4次:

老实说IBA也是笔者见过最厚的规格书,且分成卷1及卷2,以1.2版为准,卷1部分就达1,677页、20个章节、10个附录、324张图、526个表,卷2部分也有830页、15个章节、3个附录、218张图、188个表,而在此之前最让笔者称奇的USB 2.0规格书也不过600多页,如今实是小巫见大巫。
至于卷1、卷2的区别何在?卷1部分完全在于IBA的理论层面,包括基础架构、运作原理、机制特性等,卷2则是IBA的实做层面,包括机械构型的定义、电气的规范、实际运行时的组态管理等。换句话说卷1只够了解IBA,要研发设计出IBA产品还需读透卷2。此外13个附录美其名称为附录,但笔者简单审视后发现几乎是必读,否则仍是难以完成真正的应用设计。

InfiniBand的端末节点(End Node)与IBA Switch连接,各IBA Switch相互连接,以及与IBA Router连接,且联机(Link)数目不拘,可再并行扩增,此外还有Subnet Manager负责InfiniBand子网的管控
进一步,我们要了解InfiniBand在其整体架构中的角色安排,InfiniBand是以通道(Channel)为基础的双向、串行式传输,在连接拓朴中是采交换、切换式结构(Switched Fabric),所以会有所谓的IBA交换器(Switch),此外在线路不够长时可用IBA中继器(Repeater)进行延伸。而每一个IBA网络称为子网(Subnet),每个子网内最高可有65,536个节点(Node),IBA Switch、IBA Repeater仅适用于Subnet范畴,若要通跨多个IBA Subnet就需要用到IBA路由器(Router)或IBA网关器(Gateway)。
至于节点部分,Node想与IBA Subnet接轨必须透过配接器(Adapter),若是CPU、内存部分要透过HCA(Host Channel Adapter),若为硬盘、I/O部分则要透过TCA(Target Channel Adapter),之后各部分的衔接称为联机(Link)。上述种种构成了一个完整的IBA。

IBA Router负责连接各InfiniBand子网(IBA Subnet),每个IBA子网最大能有65,536个IBA节点,InfiniBand也支持与IPv4、IPv6的寻址对应,称为IPoIB(IP over InfiniBand),并且已通过IETF组织的审核,成为Internet正式标准
除完善、严谨的架构设计外,IBA的重要价值就在于高速的传量、极低延迟的传输,先说明传量部分,IBA Link的接头设计可有3种组态选择,即1x、4x、12x(也可有8x),更具体说即是并行传输线路的增减,之后再搭配传输速率的倍速调整,共有单倍速SDR(Single Data Rate)、双倍速DDR(Double Data Rate)、四倍速QDR(Quad Data Rate)可用,3种并列宽度与3种传输倍速构成了9种传量组态。

要提醒的是,这只是原生总传量(Raw Rate),由于IBA实行8B10B编码法(笔者倾向写成8b10b,毕竟是以串行方式传输bit数据),每10-bit中有2-bit为频率同步位,频率同步位纯粹表示频率,无法用于传携数据,真正可用仅8-bit(命令控制+实质数据),所以上述的传量组态还必须打8折计算,即2.5Gbps中有0.5Gbps为频率,控制与数据的实传仅为2Gbps。
附注:今日愈来愈多的高速传输实行8b10b编码法,最早是IBM大型主机所用的ESCON及之后的FICON,还有InfiniBand的前身:ServerNet,而今机房内常见的Fibre Channel、Gigabit Ethernet(多半简称GbE,IEEE 802.3z)也都是,就连PC上的PCI Express(PCIe)、Serial ATA(SATA)、DVI,消费性电子的HDMI、IEEE 1394b等亦是。
光是理论上的规划与设计,IBA就可至单一接头120Gbps的传速,而目前的实际技术进展为4x、SDR(即10Gbps),并往单一接头12x及DDR迈进,然而IBA并非只能用单一接头的进步来拓增传量,也可以实行同时多组接头的并用来加速传输,例如1个IBA Link为10Gbps,可同时动用3个IBA Link来达成30Gbps,类似的技术作法其实也被其它接口所抄仿,例如串行式SCSI:SAS(Serial Attached Scsi)也具有相同机制。
了解传量传速后接着是“低延迟的传输”,所谓延迟(Latency)就连今日的小孩、学生都知晓,当他们在玩在线游戏(Online Game)时产生不顺畅的慢动作就会直呼“Lag”,在此Latency与Lag用意相近。标准Ethernet的传输多半大于50mS(毫秒),而InfiniBand却可控制在1mS~3mS内,这必须从频宽管理(QoS)、传输协议机制等层面的设计时就有所考虑,才能实现低延迟、快速反应的传输传递。
更令人激赏的是,InfiniBand的传输方式相当活化弹性,若在设备机内可用印刷电路板的铜质线箔传递(特别是用在工控、电信设备的Backplane背板上),若在机外可用铜质缆线传递,或需要更远的传递也可改用光纤,若用铜箔、铜缆最远可至17m,而光纤则可至10km,同时IBA也支持热插拔,及具有自动侦测、自我调适的Active Cable活化智能性连接机制。

此图为InfiniBand传输协议的结构分析图,很明显PCI Express的协议结构与其“高度相似”,且两者都采用8B10B编码法
若再进一步了解与比较,各位将逐渐发现:PCI Express有非常高程度的IBA技术身影,不仅是现有已经定案的PCI Express是实行与IBA相同的8b10b编码法,就连技术用词与比喻描述也相近,两者都使用Lane/Lanes(传道)的称呼,甚至PCI Express的后续提升方向也积极向IBA“学习”,包括可形成设备间的缆线连接,如PCIe External Cabling,以及传输上的虚拟化机制,如Virtual Lane(简称:VL)、Virtual Interface(简称:VI)就列入PCIe v2.0的基础规格提案中,这些对PCIe而言都还处在提案、研拟的草版摸索阶段,但在InfiniBand上都早已成熟发布。
InfiniBand急剧泡沫化,专精业者纷纷走避、转型
从IT七大厂联合到纷纷弃退也不过3年时间,当初因看好InfiniBand前景而成立、投入的其它业者却也因此必须走避、改行,部分业者也就因此被购并或歇业。
2002年,IBA芯片业者兼IBA Switch业者:OmegaBand,2001年秋放弃自行研发IBA芯片,但仍持续IBA Switch,之后也于2002年正式歇业。
2002年,IBA软件业者:Vieo重新定位成数据管理软件方案业者,虽仍持续支持InfiniBand,但改专注开发能让信息基础建设自适性管理的软件。
2002年,发展IBA Switch、IBA HCA的RedSwitch公司由Agilent所收并,之后Agilent也推行一阵IBA产品,但大体也在2003、2004年期间喊停。
2003年,IBA芯片设计业者:JNI由AMCC收并,且不再发展IBA方案。
2003年,推展IBA Switch的业者:Paceline Systems卖给Motorola Computer Group,并放弃发展InfiniBand。
2003年,IBA Switch业者:InfiniSwitch,与IBA管理软件业者:Lane15合并,之后仍称InfiniSwitch,随后也被InfiniCon收并。
2004年,IBA芯片的设计业者:Banderacom改名成NetEffect,并放弃IBA芯片的后续研发,全力转向10Gbps Ethernet、RDMA的方案芯片。
2005年,IBA Switch、IBA HCA业者:Topspin被Cisco所收并,眼前将持续IBA产品业务,但主要也是提供IBA与GbE、FC网关转接的方案,而非主推纯IBA方案。
2005年,从事IBA HCA、IBA Switch的InfiniCon Systems公司改名为SilverStorm Technologies(银色风暴),但依然有从事IBA产品及业务,更名的动机官方说法是为了更专注于高效商务运算方案,然也承认不希望被刻板定位成纯IBA方案业者。
从“超新星”迅速变“黑洞”,专精于IB业者营运相当惨烈,在此还不论QLogic、Alacritech、Troika Networks等业者撤收IB产品线,并多数转向SAN产品、GbE产品、或iSCSI产品,以及几乎无讯消失的Libra Networks。如今再回头看当年的称呼:Future I/O、Next Generation I/O,未来、新世代、次世代等用词对应至今日InfiniBand的发展际遇,似乎反成为一种讽刺。
不过,有劣败也必然有优胜,IB领域的硕果仅存者大致只有Mellanox Technologies、Voltaire、SBS Technologies、Cisco Systems/Topspin Communications、SilverStorm Technologies、PathScale等。

Mellanox的24端口Infiniband交换机(上)与惠普的48端口Gigabit Switch交换机协同组网集群
在这些业者中,IBA芯片主要的研发设计业者为Mellanox,Mellanox除销售自研的IBA芯片外也销售IBA HCA适配卡,但IBA Switch方面仅销售芯片以及提供IBA交换器的参考设计范例,不亲自涉入IBA Switch的产品,这或许是为了与IBA Switch业者间保持良善关系的必要立场。
至于Cisco/Topspin则专注在IBA HCA、IBA Switch及其整体方案,Topspin虽有自行研发IBA芯片(另也向Mellanox购买),但策略上仅供自用而不外售。SBS则是因自身长年专注在国防、工控等嵌入式电子应用方案,IBA技术也多用在此应用领域。PathScale主要是提供集群布建方案,但只提供IBA HCA,且有用上自行研发的IBA专用芯片(ASIC),正好与只专注研发IBA Switch/Router的Voltaire相辅相成。而SilverStorm则同时提供IBA HCA与IBA Switch。
严格而论,只有Mellanox、SilverStorm、Voltaire称的上是在IBA领域获得成功,Cisco/Topspin则因合并不久还有待后续观察,其余业者在IBA方面其实依旧是可进可退,甚至可说是可有可无。附带一提的是,高阶主机板业者亦有涉入IBA,如美国SuperMicro,以及Iwill艾崴、Tyan泰安、Arima华宇等。
附注:从业者所取的公司名称可知,在InfiniBand大为看好时“Infini,无穷、无限”字根被频繁使用,包括IBM自有的InfiniBand技术亦另称InfiniBlue,InfiniBlue为IBM的注册商标。
IBA在HPC、Cluster领域找到一片天,但好景恐难长
IBA原希望成为运算、通讯、储存等设备的机内、机外标准接口,不过IBA一起头就先丧失通讯设备的机内运用可能,因为通讯设备业者多半已属意实行Rapid I/O,使IBA只能先将目标订于运算及储存设备,但也适逢网络型储存、储域网络(Storage Area Network;SAN)的快速兴起,使光纤信道(Fibre Channel;FC)获得成长普及,之后IBA转向运算设备,原可望取代PCI,然而PCI-X已先行卡位,且PCI-X提出后的不到两年时间Intel再提出接替PCI-X的PCIe,使得IBA用于设备机内的可能微乎其微,就连Intel的主要竞争业者:Sun、AMD等也倾向在运算设备机内使用HyperTransport/HTX,而非IBA。
所以IBA只能朝机外高速连接的领域发展,虽然PCI、PCIe、Rapid I/O等都尚无机外连接方案,但不幸的是FC亦在外接方面开展迅速,IBA必须与FC争抢地盘,FC传输表现虽输IBA,但价格却相对低廉,加上相近时间内Ethernet从1Gbps进展至10Gbps,且其光纤传输(IEEE 802.3ae)、铜线传输(IEEE 802.3an)标准也先后于2002年、2005年正式定案,这也让IBA的持续发展多所推挤、阻碍。
所幸的是,近年来整柜、整箱式设计的顶级硬设备发展逐渐走缓,过去业者可以说服用户购买初始成本较高的硬件系统,以备未来随业务需求成长而直接原机追加扩充,而今用户连较高的初始成本也不愿预先支出,只希望硬件价格、空间、用电都能呈简单线性成长、扩增,此需求迫使硬件业者改发展砖块化、模块式的设备型态,并让各模化设备以高速机外连接达到互连沟通、延展扩充,以及一体性运作,这使得IBA有些机会。

InfiniBand具有传输通道的虚拟化能力,此称为Virtual Lane(简称:VL),可将实体传输进行更细腻的频宽资源分拆与隔离独立运用,目前PCI Express 2.0正积极“学习”此一技术机制
此一模块化迭组风气遍行整个IT硬件界,包括IBM的eServer EXA服务器、HP的Alpha服务器、Overland的Neo磁带柜、EMC的Symmetrix DMX800网络型储存设备、CLARiiON网络型储存设备、HDS的WMS/AMS网络型储存设备、乃至于UNISYS的ClearPath Libra大型主机、Cray的XD1超级计算机等,都因应要求而实行模块化的延展架构。事实上许多高速网络交换器早就实行此种设计。
可惜的是,上述这些模块化发展的硬设备,各业者都倾向实行自有独家设计的机外高速联机,而非开放标准的IBA,很明显是受各业者门户之见所阻碍。不过,同样的模块设计也吹向高效运算(High Performance Computing;HPC)领域,HPC领域的超级计算机日益在意造价成本,目前满足此需求的最佳作法即是实行集群(Cluster)组态,即是用一致且大量的独立运算计算机,并透过机外联机使之融合为一,联机也必须尽可能高速。
所以,IBA终于在集群式超级计算机上找到发挥,由于FC只至2Gbps、4Gbps,10Gbps Ethernet尚不够成熟,延迟控制也尚待精进,放眼望去最合适的便是IBA,IBA低延迟、能以10Gbps为基准单位进行倍增传输,使得全球前五百大效能的超级计算机中(参见Top500.org网站)有相当多套系统都使用上IBA,或至少是IBA与其它高速联机的搭配混用。
然而,金字塔至顶的五百大超级计算机毕竟是少数,其用量规模难以长期支撑IBA产业及其生态永续发展,必须往更普遍的集群运算应用开拓,然而从顶级往中下层面推行,依然遭遇到与FC、GbE冲突的课题,同时也要面对一些业者的专属特用技术,如Quadrics的QsNet,或Myricom的Myrinet。
结尾:IBA的六大隐显竞争者!
前面曾提过,即便InfiniBand专心致力于机外高速联机接口的发展,也都要面临诸多的相近威胁,这包括10GbE、FC/10GFC、PCIe External Cabling、QsNet、Myrinet等,然而实际的威胁程度又是如何呢?
纯就笔者的观点看,首要威胁依然是10GbE,除了速度达10Gbps外,也可弹性选择光纤或铜缆联机,这些过去都是InfiniBand独享专拥的特色,如今10GbE虽无法超越,但已可追平。不过,10GbE依然有诸多环节不如InfiniBand,不光是传输延迟的反应问题,也包括实质数据传量偏少、传输过程中对CPU运算的倚赖度过高、数据复制搬移程序过繁复等。
要补足这些缺失,所以才提出TOE与RDMA,在Ethernet传输过程中,需要CPU参与运算的部分包括TCP/IP封包的编解运算(约占40%)、传输过程中的数据缓冲复制运算(约占20%)、操作系统参与传输的软件执行运算(包括内存数据搬移,中断服务因应等,约占40%),TOE即在解决编解运算的负荷占用,RDMA则在解决操作系统参与的负荷占用,但即便如此依然有20%左右的占用不易去省。
相对的IBA对CPU的参与倚赖仅在3%、4%,两者差距甚远,严格说TOE与RDMA即是要拉近10GbE与IBA的差距,少去TOE与RDMA的协助,10GbE依然难以与IBA相提并论,然而IBA亦有RDMA机制,这些都使得10GbE只能接近IBA而无法超越。倘若无法超越,那么就必须在价格上取得优势,不过10GbE的硬件亦相当昂贵,不见得比IBA低廉,何况IBA已在超级计算机领域获得严苛验证。
除了具体技术表现10GbE最逼近IBA外,还有另一项“精神”层面的影响迫使IBA不得不将10GbE视为首要大敌,这即是“Ethernet自出道以来从未败过的无敌战绩!”,Ethernet发展历程中击败过无数对手,包括IBM的Token Ring、DEC的DECnet、Apple的AppleTalk等,甚至无线转化成的WiFi也击退五大厂联合的Bluetooth,如今不仅用iSCSI与FC竞争,也用RDMA与IBA抗衡,战果确实有逐渐扩大的可能,尤其IT产业讲究的是用量规模与规格生态的整体良性循环提升,此方面Ethernet拥有最高优势。

现有企业机房是在SAN领域使用FC,在Internet/LAN领域使用Ethernet/GbE,在Cluster领域使用IBA,此外Oracle近年来力推的商务用集群系统:RAC(Real Application Cluster),在效能上也推荐使用IBA
其次是FC,现有FC为4Gbps,积极从1Gbps/2Gbps进展至4Gbps也是为了摆脱1GbE的价格竞争所不得不为,而FC阵营的下一个目标订在10Gbps,很明显有推挤IBA的意味。不过,从4Gbps提升到10Gbps必然是一大挑战,且FC不似IBA在传输介质上可弹性选择铜缆或光纤,一律只能实行光纤。
然而FC也有其优势,其用量、价格、业者生态都较IBA强健,传输延迟甚至可低于1mS,胜过IBA的1mS~3mS,所以IBA在面对10GbE外,也须将现有的4GFC与未来的10GFC视为威胁。至于PCIe External Cabling,目前仍处在草版阶段,即便正式底定,其Repeater、Switch、Router、Gateway等配套都还有待发展,所以威胁又低于FC,但由于PCIe有机内主流的优势地位,因此也不能小觑。

IBA整体方案业者:SilverStorm(前InfiniCon)公司力倡用IBA Switch作为企业机房与数据中心的骨干网络,而非只为集群需求而用,用IBA统合FC与GbE。近年来IBA正积极摆脱仅在HPC/Cluster领域使用,期望进入商务主流运算领域,以刺激其用量规模
另外Myrinet、QsNet,此两者面对IBA的最大优势只在于低廉,且不如IBA的开放标准立场,Myrinet与QsNet都是业者的独门特规,所以IBA只须加紧调降价格即可因应威胁,然而正因为价格因素使Myrinet、QsNet在HPC市场也颇受欢迎,IBA也一样必须留意。
最后,笔者认为可能还有一个“隐藏”对手,那就是Cray的RapidArray,RapidArray是针对Cray自有的XD1超级计算机所研发的大连接量、高传量、低延迟的光纤联机,RapidArray每一个Link能有2GB/Sec传输,此已超越IBA现有单一Link的10Gbps表现,且每部XD1(亦视为一个节点)可有2或4个Link。

专精于超级计算机领域的业者:Cray,针对其XD1的模块化超级计算机而开发了RapidArray的高速光纤联机系统,RapidArray的各项技术表现皆超越InfiniBand,只可惜是业者专属技术,而非开放标准
更重要的是,RapidArray的延迟超低,当其它规格都在计较mS层次的延迟时间,RapidArray的延迟已快到仅1.7uS(微秒),不过这是指两节点间的延迟时间,RapidArray在连接拓朴上允许直接连接(Direct Connect)或层树状(Fat Tree)连接,直接连接其实也多采立方矩阵方式相连,所以随着树状层次的增多,或传输所经节点数的增多,其延迟时间也会拉长,然总体而言RapidArray依然比IBA先进、优异,只可惜RapidArray也是单一业者的独门秘方,随XD1超级计算机一并提供,倘若Cray政策转变,允许单独输出RapidArray技术,则IBA将大受威胁。
前言:网络底层技术进步让iSCSI迅猛发展
谈及“iSCSI”,相信在今日的IT界已是无人不知、无人不晓,但各位可曾知道iSCSI也有一段酝酿沈潜的乏问期?事实上,早在2001年6月IBM就发表了IP Storage 200i的iSCSI存储设备,同时Cisco也呼应推出SN5420的iSCSI路由器(用于异地备援),但市场及用户反应却极有限。
虽然IBM在发表iSCSI方案产品后,也将iSCSI的技术规格提案交付给IETF审议,期望让iSCSI成为Internet的标准,但在2001年~2002年间的审议作业阶段,iSCSI仍被人视为是IBM自行提出的特规专属方案,直到2003年2月IETF敲定通过iSCSI,并颁布为RFC 3720。iSCSI才正式成为中立超然的网络化存储标准。
不过,2003年初的标准通过,也未立即反应至市场,原本IDC推估2003年的iSCSI市场规模为2亿1,600万美元,结果同为IDC之后的实际调查却只有1,800万美元,相对的Fibre Channel SAN却高达100亿美元,iSCSI虽开始受注视而摆脱乏问,但商机依旧清淡。
然而iSCSI的发展可说是愈来愈走俏,在成为IETF标准后,隔月Microsoft也随即表明支持iSCSI,并在同年年中释出支持的驱动程序(Microsoft iSCSI Initiator 1.0),这对国内硬件业者可说是一大鼓舞,因为国内硬件业者一向等Microsoft表态后才有跟进意愿。接着2004年iSCSI的支持产品数明显增加,今后数年更是不可限量,甚至在中程发展上已威胁Fibre Channel(以下简称:FC),远程更可能波及InfiniBand(以下简称:IB)。
所以,国内的存储系统设计者,必须积极评估及研究iSCSI技术及其设计方式,以因应即将到来的高成长需求,对此本文以下将列举与讨论数种iSCSI应用的实现法,望能对各位在参考评估时提供些许帮助。

iSCSI是以Ethernet/Internet为实体基础环境,以TCP/IP为运作协定,再往上加搭的SCSI数据传输及SCSI控制指令,使硬盘资源及运用达到通透于LAN/WAN分享的目的
附注: iSCSI具有Internet SCSI、IP Storage、IP SAN、SCSI over IP、SCSI protocol over the Internet等含意。
附注: iSCSI正式商品化是在2001年,但先期研究可回推至1996年,当时由IBM研究以Ethernet为基础的SAN技术,包括SCSI/TCP、SCSI/IP、SCSI/Ethernet等,1998年IBM完成SCSI/TCP技术的雏形品(Prototype),之后于1998~99年间将SCSI/TCP技术与NFS技术进行比较测试,发现SCSI/TCP在CPU的运算占用上比NFS少上3、4倍,且这个阶段已用上TOE技术(将于后述),1999~2000年IBM与Cisco共同研拟日后将交付IETF审议的iSCSI草版规格。同时2000年开始IETF也成立ips(IP Storage)工作小组,进行iSCSI核心协议的研拟。以及由SNIA组织制订iSCSI所需的相关API。
iSCSI相关规格标准
在开始之初,笔者要先向各位提醒,除了RFC 3720的iSCSI基础主体规格外,也有许多与其关连的标准规范必须多所了解,包括:
RFC 3721-iSCSI Naming and Discovery(iSCSI命名与探搜)
RFC 3722-String Profile for iSCSI Names(iSCSI命名的字符串型态)
RFC 3723-Securing Block Storage Protocols over IP(IP环境中进行区块层级的存储传输所实施的安全防护)
RFC 3783-SCSI Command Ordering Considerations with iSCSI(iSCSI的SCSI指令顺序考虑)
RFC 3347-iSCSI Requirements and Design Considerations(iSCSI需求与设计考虑)
RFC 4018-Finding iSCSI Targets and Name Servers using Service Location Protocol version 2(SLPv2)(使用SLPv2协议来探搜iSCSI目标及名称服务器,关于iSCSI目标将于后述)
RFC 4171-Internet Storage Name Service(iSNS)(将SNS的存储名称服务协议运用于TCP/IP环境,SNS、iSNS皆用于探搜网络上的存储装置)
RFC 4173-Bootstrapping Clients using the iSCSI Protocol(客户端装置运用iSCSI协议进行开机,即客户端装置的机内并无硬盘,透过iSCSI实现远程遥控式开机)

IBM早在1996年即进行iSCSI的技术研究,并于2001年推出iSCSI商业化产品:IP Storage 200i存储设备,外观与IBM的NAS产品无异,且有塔型(Tower)、机架型(Rack)两款,图为塔型机种,200i于2003年停产,2004年由IBM TotalStorage DS300接替
上述主要是主体规格的补充、在TCP/IP环境下能用何种方式进行iSCSI装置的探搜、辨识、登入,以及传输编密、远程开机等,除此之外,iSCSI也必须支持现有Internet上常用的权限验证机制及标准,包括:
RFC 1510-Kerberos v5
RFC 1994-Challenge Handshake Authentication Protocol(CHAP)
RFC 2025-Simple Public Key Mechanism(SPKM1/SPKM2)
RFC 2945-Secure Remote Password(SRP)
附注: 要达到IP型态的SAN,不一定要用iSCSI(以TCP/IP为基础来传递SCSI指令),也有两种以FC基础环境为出发的作法,即FCIP(RFC 3821,Fibre Channel over TCP/IP)与iFCP(RFC 4172,A Protocol for Internet Fibre Channel Storage Networking),前者以建议传输隧道(tunnel)的方式实现,后者则以各装置皆IP化寻址实现,不过各有缺点,前者效能与稳定不佳,后者支持业者过少,且要同时传输FCP协议与IP协议,过度耗占频宽,因此两种作法都仅被小量使用,如用在异地备援(Disaster Recovery,DR)的远程数据传输上(在超出长波光纤的10km以上距离时)。
iSCSI架构中的角色及专词用语
接着我们要了解iSCSI架构中的角色与专词,iSCSI的存储设备称为iSCSI Target(或称iSCSI Target Device),例如iSCSI磁盘阵列柜、iSCSI磁带柜等,而iSCSI卡称为iSCSI HBA(Host Bus Adapter),与FC卡称呼相同,但与Ethernet卡称呼不同,一般称网络卡为NIC(Network Interface Card),也与IB卡称呼不同,IB卡称为HCA(Host Channel Adapter)。
当然,iSCSI允许使用一般Ethernet NIC卡(网络卡,为了效率多半是GbE以上等级)与Ethernet Switch(交换器),若使用一般GbE卡,则还需要搭配软件才能让GbE卡收发iSCSI协议,此软件称为iSCSI Initiator,事实上iSCSI HBA的角色也等同于iSCSI Initiator。
此外还有iSCSI Router(路由器),不过,目前似乎只有Cisco一家提供,这是在需要以iSCSI进行异地备援传输时才会使用。至于iSCSI Gateway(网关器)则在接口转换时才需要,例如让iSCSI网络与FC网络接轨,就需要iSCSI-to-FC Gateway,或将网络型的iSCSI转换成本地端的传统SCSI,这时则用iSCSI-to-SCSI Gateway,iSCSI Gateway也不见得用硬件方式实现,用CPU执行特定的转换程序,效用与角色等同于iSCSI Gateway。
很明显的,一般的设计需求会集中在iSCSI Initiator(iSCSI Initiator Software、iSCSI HBA)及iSCSI Target(iSCSI Disk Array、iSCSI Tape Library)两者,至于iSCSI Switch即Ethernet Switch,无须更动,而iSCSI Router则较少运用。

iSCSI运作架构中的各种角色连接与配置
附注: Intel推出的iSCSI HBA卡称为PRO/1000 T IP Storage Adapter。
附注: 除了iSCSI Initiator能以软件方式实现外,iSCSI Target也能以软件方式实现。且iSCSI Bridge/Gateway/Router也被视为一种iSCSI Target,Bridge与Gateway等皆属转换功效,只是负责的层级不同,一般而言Bridge为低层次转换,Gateway为高层次,然有时也经常混称合用,无太大差别。
如何实现一个iSCSI Initiator?(软件法)
要想实现一个iSCSI Initiator,最简单也最省钱的作法即是在服务器上安装iSCSI Initiator软件,并运用服务器原有的GbE卡来收发iSCSI协议。
不过,使用iSCSI Initiator软件必须多加权衡,由于它运用服务器的CPU来进行iSCSI协议的编解运算,会折损服务器的本务运算效能(即伺服应用服务的运算),一般而言会折损1、2颗CPU的效能,所以不建议在2 CPU的服务器上使用此法,建议在4 CPU以上的服务器才使用,且也要多斟酌效能冲击性,也不建议直接以服务器内唯一的GbE网埠来传发iSCSI协议,因为这将阻碍服务器原有对前端服务的能力(即Internet/LAN与SAN的传输交迭影响),所以多会额外加装第二张GbE网卡,以另一专属区网(SAN)的作法来传输iSCSI。
使用软件式的iSCSI Initiator不单要考虑CPU、NIC的效能折损,也要考虑操作系统支持性及取得成本,操作系统也还要注意硬件架构的差别,同样是Windows,在IA-32(即俗称的i386)硬件上与在x64(即x86-64、AMD64、EM64T)硬件上的驱动程序并不相同,甚至IA-64硬件上的也不同,Solaris也类似,Solaris支持SPARC、IA-32、x64,三者的驱动程序也不相同。
目前iSCSI Initiator多采免费下载或免费随附的策略,Microsoft已针对IA-32、IA-64、x64等不同硬件架构的Windows都提供了iSCSI Initiator软件,新版为2.0,支持更高层次的iSCSI传输错误修正功能(从ERL0提升至ERL1、ERL2,ERL为Error Recovery Level),以及多径传输(Multi-Pathing I/O;MPIO)功能,2.0于2005年6月12日释出,之前的版本为1.0/1.05/1.06,另也可搭配下载iSNS Server 3.0(TCP/IP环境下探搜iSCSI装置之用的伺服应用程序)。
Sun方面也相同,其Solaris Express(快捷版)及Solaris 10 Update 1(类似Service Pack 1)也免费提供iSCSI Initiator软件,包括SPARC(64-bit)、IA-32、x64都支持,且能支持10GbE NIC,并计划将软件的原始程序代码公布于OpenSolaris.org网站。
自由软件阵营也不落后,名为“Linux-iSCSI”的原码开发项目即是撰写Linux 2.4版以上所用的iSCSI Driver(驱动程序,即iSCSI Initiator)及iSCSI Daemon(同于Demon,原意是魔鬼,但在此是指泛UNIX操作系统的背景常驻执行程序),开发过程中也与Open-iSCSI项目合并,目前为4.0.x版。此外还有UNH所释出的“UNH-iSCSI”的开放项目,一样是Linux上的iSCSI Initiator软件,目前为1.6.0版。
附注: UNH是新汉普郡大学(University of New Hampshire)的缩写,该校的研究运算中心(Research Computing Center)附属一个互通实验室(InterOperability Laboratory;IOL),负责各类信息连接标准的测试。
其它如HP HP-UX 11i v1、IBM AIX 5.2、Novell NetWare 6.5等也都支援iSCSI Initiator。至于Mac OS X也有SBE公司能提供Xtend SAN iSCSI Initiator for Mac OS X(收并自PyX公司),但此要付费取得,或随SBE的硬件套件方式一并购买。
至于软件表现的强弱如何?此可透过实际的CPU运算占用(占用百分比愈低愈好)、I/O传输表现(每秒完成多少个I/O处理,即IOPS)来评断,另外要重视支持的GbE层级、错误修正层级,如10GbE优于1GbE,以及ERL2优于ERL1优于ERL0。以及是否支持MPIO,MPIO指的是一部服务器内有一张以上的GbE NIC时,可同时运用多张NIC卡进行传输,以负载平衡(Load Balance)方式尽快完成传递,或在某一NIC卡故障失效时,其工作也可转由其它仍正常运作的NIC卡来接手。
如何实现一个iSCSI Initiator?(硬件法)
软件法的缺点就是耗占原有硬件资源及效能,所以也有众多业者提出硬件实现法,有的是推出iSCSI控制芯片(如SilverBack Systems),然后由硬件设计者购回芯片以做成iSCSI HBA卡,或嵌于主机板上,让主机板直接具备iSCSI硬件支持,或者有的业者虽有自研的iSCSI控制芯片,但视为独门秘方,不对外单售芯片,只售使用上自有芯片实现成的iSCSI板卡(如Adaptec、iStor Networks),或芯片与卡都提供(如Alacritech、QLogic、iVivity)。
与前述的软件实现法相比,硬件法可就相当复杂多样,为避免混淆难懂,须在正式说明前建立好先前概念才行。

Alacritech自研的因特网协议处理芯片(Internet Protocol Processor,IPP):1000x1,此芯片运用该公司特有SLIC(Session-Layer Interface Control)技术,由IPP芯片来加速TCP/IP、iSCSI等执行,使用此芯片所形成的适配卡Alacritech称为TNIC,其实即是TOE GbE NIC+iSOE iSCSI HBA
首先我们先要了解Ethernet卡的过往,早在1982年Sun的第一部工作站出货时就已具Ethernet功能,在Ethernet卡发展的初期,由于计算机CPU效能(此处的计算机指的是工作站、个人计算机)仍不足,所以当时的Ethernet卡都有专责处理TCP/IP程序的芯片及电路,不需耗用CPU效能,然之后计算机CPU效能跃增,使Ethernet芯片/网卡开始被设计成只负责部分工作,而非过去的全部工作,舍去处理的部分改由CPU与执行搭配软件来负责。
然而今日iSCSI的出现,倘若是使用iSCSI Initiator软件,服务器CPU除了要执行iSCSI的传送、接收等程序外,就连GbE NIC的TCP/IP编解工作也是由CPU来负担,倘若CPU效能不足,或软件反应不够快(程序撰写不佳,或操作系统架构特性使然),过重的负担就会影响iSCSI的传输表现。
因此,要加速iSCSI传输,第一种作法即是使用iSCSI HBA卡,iSCSI HBA卡主要是担负iSCSI程序的处理执行,如此CPU可以卸下此方面的工作,但仍要执行TCP/IP方面的工作,不过已有加速效用,此称为iSOE(iSCSI Offload Engine)。第二种作法,是使用“较尽责”的GbE NIC卡(或控制芯片),能完整包办TCP/IP层面的运算,不需CPU操烦,CPU可以专心处理iSCSI程序,此称为TOE(TCP/IP Offload Engine),由于仍是个NIC卡/芯片,所以依然需要iSCSI Initiator软件的辅助,但一样有加速效果。
第三种作法则是让iSCSI HBA卡(芯片)既负责TCP/IP工作也负责iSCSI工作,那么CPU就更加轻松,也可如第一种作法般地舍去iSCSI Initiator软件,加速效果也胜过前两者。
再者,如果是重视iSCSI传输安全性者,则希望在TCP/IP环境中再添入IPSec的加密,然而IPSec一样要耗用CPU来编解运算,若能用特有芯片来承担此一运算,卸除CPU的负担,自然又可以更快,此称为SOE(Security Offload Engine)。当然!若不使用IPSec则与第三法无所差别。
有了上述概念后,在此就以QLogic的iSCSI芯片为例作说明,QLogic的ISP3010芯片只是颗具TOE效果的Ethernet加速芯片,依旧是GbE NIC卡/芯片,搭配iSCSI Initiator软件即可加速iSCSI的传输执行,此即是第二法。
接着,QLogic的ISP4010芯片是个TOE的GbE NIC芯片,也是个iSCSI芯片,等于将TCP/IP、iSCSI等执行工作都一手包办,不需倚赖CPU参与运算,但若用上IPSec传输加密则还是要倚赖CPU来运算,此为第三法。
然后,QLogic也提供一颗ISPSEC1000的辅助芯片,专责处理IPSec运算,可搭配前述的ISP3010或ISP4010使用,若搭配ISP4010则属于我们前述的第四法,若搭配ISP3010虽没有前述的对应法,但也只剩iSCSI收发程序要交由CPU负责,一样要搭配iSCSI Initiator软件。

Adaptec的iSCSI HBA卡:7211F,F即Fiber之意,使用1Gbps以太光纤连接,控制芯片则是由Adaptec自行研发,能卸载CPU的TCP/IP、iSCSI等运算负荷,另有7211C,C即Copper,使用1Gbps以太铜线
上述的四、五法是较常见的几种,但不代表全部,例如Intel的iSCSI HBA卡:PRO/1000 T IP Storage Adapter(2003年7月提出,2005年1月停供)则又是另一种作法,该卡使用一套IOP310的I/O处理芯片组(由一颗80200处理控制芯片与一颗80312辅助芯片所组成)及一颗82544EI的GbE MAC控制芯片,这些都是较中性、泛用取向的芯片,并未针对任何应用调整过功能规格,但以此再搭配软件(驱动程序)执行,一样可以实现iSCSI效用,不过CPU负荷的卸载性在此不得而知。
关于此法,就笔者的观点看,虽然以泛用芯片的搭配组合来实现,较无设计变更与制造供货的顾虑,但中性的结果却是介于纯软件法与上述其它特有硬件芯片实现法间,软件法属成本取向,特有硬件芯片法则属效能取向,中性芯片组合在成本与效能上都不易讨好,笔者认为此法日后被实行的机会将相对减少。
另外还有一种更“高深”的实现法,即是运用10GbE标准及RDMA规范中的iSER协议,此方式是最新锐高阶作法,速度最佳但也最昂贵,关于此我们将在后头更深入说明。

QLogic的ISP4010芯片(点击放大),以64bit PCI/PCI-X与系统主存储器相连,ROM方面使用8-bit宽、2MB~16MB的闪存,RAM方面使用72-bit宽(含查核位)、16MB~256MB的SDRAM,另有36-bit宽(含查核位)、2MB的额外程序/数据存储器(使用SRAM,很明显是扮演快取加速功效),ISP4010芯片具备TCP/IP卸载及GbE接口
上述我们只是将“基本”实现法说完,尚未谈到细部与进阶,在细部方面,目前最容易犹豫的就是接口问题,眼前正处于64-bit PCI 2.2/2.3(已有3.0版)、PCI-X 1.0/2.0、PCI Express 1.1并存的时刻,虽然往未来看以PCI Express最具发展,不过业者现在提供的iSCSI芯片多以PCI-X 1.0/2.0为主,并向下兼容64-bit PCI,PCI Express仍属少数,所以主要多实行PCI-X,64-bit PCI则是因应较过往的服务器需求才需启用。
其次,iSCSI既可使用光纤(Fiber,IEEE 802.3z的1000Base-LX、1000Base-SX)也可使用铜线(Copper,IEEE 802.3z的1000Base-CX及IEEE 802.3ab的1000Base-T),设计时必须先选定,或者在一张卡上两种并存,提供购买用户选用的弹性,或者在同一张iSCSI HBA上提供双埠(Dual Port),好实现前述的MPIO功能,此法与两张单埠iSCSI HBA卡相较更能省成本与插槽数,如QLogic ISP4022芯片即以单颗芯片同时提供两个iSCSI埠的平行处理功效。
如何实现一个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具有意义,因为国内几乎没有业者在发展以磁带机为主的相关应用。信息硬件产品中只要牵涉到高度机械性的部分国内业者就会全面束手,小至软盘机、中至光驱、大至磁带机皆是。

QLogic的ISP3010芯片仅为TOE而不具iSOE,可当一般GbE NIC之用,亦可加速存取NAS,而ISP4010芯片则为iSOE,可加速对iSCSI Target的存取
上述的软件实现法,都属于资管、网管人员自身就可完成的方式,只要找一部泛用型服务器并对应安装软件即可。然而也有些软件方案并非供信息人员所用,而是供网储系统设计者所用,此即是嵌入式的伺服软件方案,过去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操作系统上,但作用不在仿真硬盘,而在仿真光盘。
如何实现一个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。

iStor的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外的更精省路线:AoE(ATA over Ethernet)
以上大体是iSCSI设计的各种实现要则,以下我们将给各位在FC、iSCSI之外的更综观网储(网络化存储)技术趋势介绍,包括AoE、iWARP等。
先说明AoE,企业用户选择iSCSI的动机,可能是希望简化管理(全面导入IP化,以Ethernet管理方式统管一切,不需额外学习Fibre Channel领域的管理法),也可能是希望降低基础建设成本(将昂贵的光纤卡、光纤线、光纤交换器替换成低廉的以太卡、以太铜线、以太交换器),而且以后者因素较高,既然如此,实际上还有比iSCSI更节费的技术方案,此即是AoE(ATA over Ethernet,而非Age of Empires世纪帝国)。
AoE的概念与iSCSI相近,但协议堆栈更简化,iSCSI需要四、五层以上的协议,而AoE却只有三层,协议简易自然使传输更具效率,不过也因为协议过于精简使其运用有所限制,例如AoE已去除TCP层与IP层,只倚赖与运用Ethernet的基础布建,因而失去了路由绕径能力,完全只能在LAN环境内使用,此点与FC相同。另外AoE也去舍IPSec,使安全性较受顾虑。不过,以AoE技术来实现存储资源共享,确实可比iSCSI方式更低廉。
目前Solaris、Linux、FreeBSD等操作系统都已支持AoE,也有Coraid公司推出AoE的Disk Array,算小有推展,但响应与知名仍远不及iSCSI或FC。笔者认为未来Thin Client很适合使用AoE作法,如此可保持数据集中于后端的一致化维护管理优点,同时可大幅强化前端程序执行的流畅性(长久以来用户一直很在意Thin Client的执行流畅性),但此仍需要LAN传输的配套拓宽,以及传输安全性的强化,尤其是安全,近年来积极导入Thin Client的用户不再是重视TCO的大型企业(大体都已实行或评估过),而是重视信息安全的传统企业或中小企业。

AoE强调堆栈协议的简洁,图为AoE堆栈协议与iSCSI堆栈协议的比较,严格来说IPSec与IP应属同层,但因IPSec的加解密程序会增加演算负荷,在此被视为多一层,且Data Sync也有类似含意,舍去TCP与IP的AoE只能在LAN环境内运用,不具有对外路由能力
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-Disks 2000的谐音),即是以单纯的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。

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