Alacritech 自研的因特網(wǎng)協(xié)議處理芯片(Internet Protocol Processor,IPP):1000x1,此芯片運(yùn)用該公司特有SLIC(Session-Layer Interface Control)技術(shù),由IPP 芯片來加速TCPIP、iSCSI 等執(zhí)行,使用此芯片所形成的適配卡Alacritech稱為TNIC,其實(shí)即是TOE GbE NIC+iSOE iSCSI HBA。
首先我們先要了解Ethernet 卡的過往,早在1982 年Sun 的第一部工作站出 貨時就已具Ethernet 功能,在Ethernet 卡發(fā)展的初期,由于計(jì)算機(jī)CPU 效能(此處的計(jì)算機(jī)指的是工作站、個人計(jì)算機(jī))仍不足,所以當(dāng)時的Ethernet 卡都有專責(zé)處理TCPIP 程序的芯片及電路,不需耗用CPU 效能,然之后計(jì)算機(jī)CPU 效能躍增,使Ethernet 芯片/網(wǎng)卡開始被設(shè)計(jì)成只負(fù)責(zé)部分工作,而非過去的全部工作,舍去處理的部分改由CPU 與執(zhí)行搭配軟件來負(fù)責(zé)。
然而今日iSCSI 的出現(xiàn),倘若是使用iSCSI Initiator 軟件,服務(wù)器CPU 除了要執(zhí)行iSCSI 的傳送、接收等程序外,就連GbE NIC 的TCPIP 編解工作也是由CPU 來負(fù)擔(dān),倘若CPU 效能不足,或軟件反應(yīng)不夠快(程序撰寫不佳,或操作系統(tǒng)架構(gòu)特性使然),過重的負(fù)擔(dān)就會影響iSCSI 的傳輸表現(xiàn)。
因此,要加速iSCSI 傳輸,第一種作法即是使用iSCSI HBA 卡,iSCSI HBA卡主要是擔(dān)負(fù)iSCSI 程序的處理執(zhí)行,如此CPU 可以卸下此方面的工作,但仍要執(zhí)行TCPIP 方面的工作,不過已有加速效用,此稱為iSOE(iSCSI Offload Engine)。第二種作法,是使用「較盡責(zé)」的GbE NIC 卡(或控制芯片),能完整包辦TCPIP 層面的運(yùn)算,不需CPU 操煩,CPU 可以專心處理iSCSI 程序,此稱為TOE(TCPIP Offload Engine),由于仍是個NIC 卡/芯片,所以依然需要iSCSI Initiator 軟件的輔助,但一樣有加速效果。
第三種作法則是讓iSCSI HBA 卡(芯片)既負(fù)責(zé)TCPIP 工作也負(fù)責(zé)iSCSI工作,那么CPU 就更加輕松,也可如第一種作法般地舍去iSCSI Initiator 軟件,加速效果也勝過前兩者。
再者,如果是重視iSCSI 傳輸安全性 者,則希望在TCPIP 環(huán)境中再添入IPSec的加密,然而IPSec 一樣要耗用CPU 來編解運(yùn)算,若能用特有芯片來承擔(dān)此一運(yùn)算,卸除CPU 的負(fù)擔(dān),自然又可以更快,此稱為SOE(Security Offload Engine)。當(dāng)然!若不使用IPSec 則與第三法無所差別。
有了上述概念后,在此就以QLogic 的iSCSI 芯片為例作說明,QLogic 的ISP3010 芯片只是顆具TOE 效果的Ethernet 加速芯片,依舊是GbE NIC 卡芯片,搭配iSCSI Initiator 軟件即可加速iSCSI 的傳輸執(zhí)行,此即是第二法。
接著,QLogic 的ISP4010 芯片是個TOE 的GbE NIC 芯片,也是個iSCSI 芯片,等于將TCPIP、iSCSI 等執(zhí)行工作都一手包辦,不需倚賴CPU 參與運(yùn)算,但若用上IPSec 傳輸加密則還是要倚賴CPU 來運(yùn)算,此為第三法。
然后,QLogic 也提供一顆ISPSEC1000 的輔助芯片,專責(zé)處理IPSec 運(yùn)算,可搭配前述的ISP3010 或ISP4010 使用,若搭配ISP4010 則屬于我們前述的第四法,若搭配ISP3010 雖沒有前述的對應(yīng)法,但也只剩iSCSI 收發(fā)程序要交由CPU負(fù)責(zé),一樣要搭配iSCSI Initiator 軟件。
Adaptec 的iSCSI HBA 卡:7211F,F(xiàn) 即Fiber 之意,使用1Gbps 以太光纖連接,控制芯片則是由Adaptec 自行研發(fā),能卸載CPU 的TCPIP、iSCSI 等運(yùn)算負(fù)荷,另有7211C,C 即Copper,使用1Gbps 以太銅線。
上述的四、五法是較常見的幾種,但不代表全部,例如Intel 的iSCSI HBA卡:PRO1000 T IP Storage Adapter(2003 年7 月提出,2005 年1 月停供)則又是另一種作法,該卡使用一套IOP310 的IO 處理芯片組(由一顆80200 處理控制芯片與一顆80312 輔助芯片所組成)及一顆82544EI 的GbE MAC 控制芯片,這些都是較中性、泛用取向的芯片,并未針對任何應(yīng)用調(diào)整過功能規(guī)格,但以此再搭配軟件(驅(qū)動程序)執(zhí)行,一樣可以實(shí)現(xiàn)iSCSI 效用,不過CPU 負(fù)荷的卸載性在此不得而知。
關(guān)于此法,就筆者的觀點(diǎn)看,雖然以泛用芯片的搭配組合來實(shí)現(xiàn), 較無設(shè)計(jì)變更與制造供貨的顧慮,但中性的結(jié)果卻是介于純軟件法與上述其它特有硬件芯片實(shí)現(xiàn)法間,軟件法屬成本取向,特有硬件芯片法則屬效能取向,中性芯片 組合在成本與效能上都不易討好,筆者認(rèn)為此法日后被實(shí)行的機(jī)會將相對減少。
另外還有一種更「高深」的實(shí)現(xiàn)法,即是運(yùn)用10GbE 標(biāo)準(zhǔn)及RDMA 規(guī)范中的iSER 協(xié)議,此方式是最新銳高階作法,速度最佳但也最昂貴,關(guān)于此我們將在后頭更深入說明。
上述我們只是將「基本」實(shí)現(xiàn)法說完,尚未談到細(xì)部與進(jìn)階,在細(xì) 部方面,目前最容易猶豫的就是接口問題,眼前正處于64-bit PCI 2.22.3(已有3.0 版)、PCI-X 1.02.0、PCI Express 1.1 并存的時刻,雖然往未來看以PCI Express 最具發(fā)展,不過業(yè)者現(xiàn)在提供的iSCSI 芯片多以PCI-X 1.02.0 為主,并向下兼容64-bit PCI,PCI Express 仍屬少數(shù),所以主要多實(shí)行PCI-X,64-bit PCI 則是因應(yīng)較過往的服務(wù)器需求才需啟用。
其次,iSCSI 既可使用光纖(Fiber,IEEE 802.3z 的1000Base-LX、1000Base-SX)也可使用銅線(Copper,IEEE 802.3z 的1000Base-CX 及IEEE 802.3ab 的1000Base-T),設(shè)計(jì)時必須先選定,或者在一張卡上兩種并存,提供購買用戶選用的彈性,或者在同一張iSCSI HBA 上提供雙埠(Dual Port),好實(shí)現(xiàn)前述的MPIO 功能,此法與兩張單埠iSCSI HBA 卡相較更能省成本與插槽數(shù),如QLogic ISP4022 芯片即以單顆芯片同時提供兩個iSCSI 埠的平行處理功效。
QLogic 的ISP4010 芯片,以64bit PCIPCI-X 與系統(tǒng)主存儲器 相連,ROM 方面使用8-bit 寬、2MB~16MB 的閃存,RAM 方面使用72-bit 寬(含查核位)、16MB~256MB 的SDRAM,另有36-bit 寬(含查核位)、2MB 的額外程序數(shù)據(jù)存儲器(使用SRAM,很明顯是扮演快取加速功效),ISP4010 芯片具備TCPIP卸載及GbE 接口。