| 
 咨询电话:010-51727811/12/13
当前位置: 首页 > 新闻中心 > 业内新闻 >
实现iSCSI Initiator 的两种方法(二)
时间:2013-06-07 09:37  来源:飞客数据恢复   作者:飞客数据恢复工程师
Alacritech 自研的因特网协议处理芯片(Internet Protocol Processor,IPP):1000x1,此芯片运用该公司特有SLIC(Session-Layer Interface Control)技术,由IPP 芯片来加速TCPIP、iSCSI 等执行,使用此芯片所形成的适配卡Alacritech称为TNIC,其实即是TOE GbE NIC+iSOE iSCSI HBA。 
首先我们先要了解Ethernet 卡的过往,早在1982 年Sun 的第一部工作站出 货时就已具Ethernet 功能,在Ethernet 卡发展的初期,由于计算机CPU 效能(此处的计算机指的是工作站、个人计算机)仍不足,所以当时的Ethernet 卡都有专责处理TCPIP 程序的芯片及电路,不需耗用CPU 效能,然之后计算机CPU 效能跃增,使Ethernet 芯片/网卡开始被设计成只负责部分工作,而非过去的全部工作,舍去处理的部分改由CPU 与执行搭配软件来负责。 
然而今日iSCSI 的出现,倘若是使用iSCSI Initiator 软件,服务器CPU 除了要执行iSCSI 的传送、接收等程序外,就连GbE NIC 的TCPIP 编解工作也是由CPU 来负担,倘若CPU 效能不足,或软件反应不够快(程序撰写不佳,或操作系统架构特性使然),过重的负担就会影响iSCSI 的传输表现。 
因此,要加速iSCSI 传输,第一种作法即是使用iSCSI HBA 卡,iSCSI HBA卡主要是担负iSCSI 程序的处理执行,如此CPU 可以卸下此方面的工作,但仍要执行TCPIP 方面的工作,不过已有加速效用,此称为iSOE(iSCSI Offload Engine)。第二种作法,是使用「较尽责」的GbE NIC 卡(或控制芯片),能完整包办TCPIP 层面的运算,不需CPU 操烦,CPU 可以专心处理iSCSI 程序,此称为TOE(TCPIP Offload Engine),由于仍是个NIC 卡/芯片,所以依然需要iSCSI Initiator 软件的辅助,但一样有加速效果。 
第三种作法则是让iSCSI HBA 卡(芯片)既负责TCPIP 工作也负责iSCSI工作,那么CPU 就更加轻松,也可如第一种作法般地舍去iSCSI Initiator 软件,加速效果也胜过前两者。 
再者,如果是重视iSCSI 传输安全性 者,则希望在TCPIP 环境中再添入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 芯片,等于将TCPIP、iSCSI 等执行工作都一手包办,不需倚赖CPU 参与运算,但若用上IPSec 传输加密则还是要倚赖CPU 来运算,此为第三法。 
然后,QLogic 也提供一颗ISPSEC1000 的辅助芯片,专责处理IPSec 运算,可搭配前述的ISP3010 或ISP4010 使用,若搭配ISP4010 则属于我们前述的第四法,若搭配ISP3010 虽没有前述的对应法,但也只剩iSCSI 收发程序要交由CPU负责,一样要搭配iSCSI Initiator 软件。 
 
Adaptec 的iSCSI HBA 卡:7211F,F 即Fiber 之意,使用1Gbps 以太光纤连接,控制芯片则是由Adaptec 自行研发,能卸载CPU 的TCPIP、iSCSI 等运算负荷,另有7211C,C 即Copper,使用1Gbps 以太铜线。 
上述的四、五法是较常见的几种,但不代表全部,例如Intel 的iSCSI HBA卡:PRO1000 T IP Storage Adapter(2003 年7 月提出,2005 年1 月停供)则又是另一种作法,该卡使用一套IOP310 的IO 处理芯片组(由一颗80200 处理控制芯片与一颗80312 辅助芯片所组成)及一颗82544EI 的GbE MAC 控制芯片,这些都是较中性、泛用取向的芯片,并未针对任何应用调整过功能规格,但以此再搭配软件(驱动程序)执行,一样可以实现iSCSI 效用,不过CPU 负荷的卸载性在此不得而知。 
关于此法,就笔者的观点看,虽然以泛用芯片的搭配组合来实现, 较无设计变更与制造供货的顾虑,但中性的结果却是介于纯软件法与上述其它特有硬件芯片实现法间,软件法属成本取向,特有硬件芯片法则属效能取向,中性芯片 组合在成本与效能上都不易讨好,笔者认为此法日后被实行的机会将相对减少。 
另外还有一种更「高深」的实现法,即是运用10GbE 标准及RDMA 规范中的iSER 协议,此方式是最新锐高阶作法,速度最佳但也最昂贵,关于此我们将在后头更深入说明。 
上述我们只是将「基本」实现法说完,尚未谈到细部与进阶,在细 部方面,目前最容易犹豫的就是接口问题,眼前正处于64-bit PCI 2.22.3(已有3.0 版)、PCI-X 1.02.0、PCI Express 1.1 并存的时刻,虽然往未来看以PCI Express 最具发展,不过业者现在提供的iSCSI 芯片多以PCI-X 1.02.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 埠的平行处理功效。 
 
QLogic 的ISP4010 芯片,以64bit PCIPCI-X 与系统主存储器 相连,ROM 方面使用8-bit 宽、2MB~16MB 的闪存,RAM 方面使用72-bit 宽(含查核位)、16MB~256MB 的SDRAM,另有36-bit 宽(含查核位)、2MB 的额外程序数据存储器(使用SRAM,很明显是扮演快取加速功效),ISP4010 芯片具备TCPIP卸载及GbE 接口。