查奇文,張 武,曾學(xué)文,宋 毅
(1. 中國(guó)科學(xué)院聲學(xué)研究所國(guó)家網(wǎng)絡(luò)新媒體工程技術(shù)研究中心,北京 100 190;2. 中國(guó)科學(xué)院大學(xué),北京 10004 9)
多核網(wǎng)絡(luò)處理器iSCSI發(fā)起端研究與實(shí)現(xiàn)
查奇文1,2,張 武1,曾學(xué)文1,宋 毅1,2
(1. 中國(guó)科學(xué)院聲學(xué)研究所國(guó)家網(wǎng)絡(luò)新媒體工程技術(shù)研究中心,北京 100 190;2. 中國(guó)科學(xué)院大學(xué),北京 10004 9)
針對(duì)已有的互聯(lián)網(wǎng)小型計(jì)算機(jī)系統(tǒng)接口(iSCSI)發(fā)起端實(shí)現(xiàn)方式在面向多核網(wǎng)絡(luò)處理器時(shí)存在的性能和擴(kuò)展性不佳等問(wèn)題,研究多核網(wǎng)絡(luò)處理器的網(wǎng)絡(luò)處理軟件框架,提出基于多核網(wǎng)絡(luò)處理器異構(gòu)操作系統(tǒng)的網(wǎng)絡(luò)處理軟件框架。采用軟件框架和P-SPL數(shù)據(jù)層面編程模型,給出一種iSCSI發(fā)起端實(shí)現(xiàn)方式。實(shí)驗(yàn)結(jié)果證明,相比基于Linux操作系統(tǒng)的iSCSI發(fā)起端實(shí)現(xiàn),基于多核網(wǎng)絡(luò)處理器異構(gòu)操作系統(tǒng)的iSCSI發(fā)起端實(shí)現(xiàn)在吞吐率和響應(yīng)時(shí)間上都有明顯的性能提升。在6個(gè)千兆網(wǎng)口的測(cè)試環(huán)境中,讀寫吞吐率最高可達(dá)到180 MB/s,響應(yīng)時(shí)間最多減少1.6 ms。
互聯(lián)網(wǎng)小型計(jì)算機(jī)系統(tǒng)接口;iSCSI發(fā)起端;多核網(wǎng)絡(luò)處理器;Linux操作系統(tǒng);TCP/IP協(xié)議棧;網(wǎng)絡(luò)處理操作系統(tǒng)
互聯(lián)網(wǎng)小型計(jì)算機(jī)系統(tǒng)接口(Internet S mall Computer System Interface, iSCSI)是由IETF批準(zhǔn)的一種基于存儲(chǔ)網(wǎng)絡(luò)的新的協(xié)議[1]。隨著千兆以太網(wǎng)技術(shù)的普及、萬(wàn)兆以太網(wǎng)技術(shù)的逐步成熟,iSCSI技術(shù)成為最具有發(fā)展前景的SAN (Storage Area Network)技術(shù)和協(xié)議。iSCSI的原理是將SCSI命令通過(guò)IP網(wǎng)絡(luò)傳輸,這樣就可以使在網(wǎng)絡(luò)上傳送數(shù)據(jù)更加便利,而且可以實(shí)現(xiàn)遠(yuǎn)程存儲(chǔ)管理?;趇SCSI的網(wǎng)絡(luò)存儲(chǔ)系統(tǒng)由于其大容量、部署靈活、低成本、擴(kuò)展性好等特點(diǎn),使得iSCSI的產(chǎn)品化和普及化進(jìn)程非常迅速,獲得了業(yè)界軟硬件方面的廣泛支持。
iSCSI分為發(fā)起端和目標(biāo)端。應(yīng)用程序通過(guò)發(fā)起端訪問(wèn)存儲(chǔ)設(shè)備,目標(biāo)端通常為磁盤陣列等存儲(chǔ)服務(wù)器。iSCSI發(fā)起端負(fù)責(zé)將用戶發(fā)來(lái)的SCSI命令和數(shù)據(jù)封裝為iSCSI網(wǎng)絡(luò)數(shù)據(jù)報(bào)發(fā)送到目標(biāo)端;目標(biāo)端存儲(chǔ)設(shè)備收到后會(huì)將其解包成原始的SCSI命令和數(shù)據(jù)進(jìn)行處理,并將得到的數(shù)據(jù)訪問(wèn)結(jié)果再次封裝成iSCSI包發(fā)回至發(fā)起端,這樣就實(shí)現(xiàn)了遠(yuǎn)程存儲(chǔ)操作。iSCSI發(fā)起端的性能直接影響用戶的存儲(chǔ)性能,最終決定了客戶應(yīng)用的性能。
多核處理器技術(shù)被廣泛采用以提高系統(tǒng)的整體性能。多核處理器可以很好地控制處理器的功耗問(wèn)題,也能減少與內(nèi)存、I/O之間的訪問(wèn)延遲,而且多核處理器技術(shù)增加了處理器同時(shí)執(zhí)行的硬件線程數(shù),極大地提升了處理器的并行處理能力。網(wǎng)絡(luò)處理器是為處理網(wǎng)絡(luò)應(yīng)用而設(shè)計(jì)的專用處理器,其體系結(jié)構(gòu)和指令集對(duì)網(wǎng)絡(luò)數(shù)據(jù)流的處理和轉(zhuǎn)發(fā)都做了具有針對(duì)性的優(yōu)化,并增加了一些用于網(wǎng)絡(luò)加速的協(xié)處理器,可以加速系統(tǒng)處理網(wǎng)絡(luò)數(shù)據(jù)流的效率。多核網(wǎng)絡(luò)處理器兼有多核處理器和網(wǎng)絡(luò)處理器的優(yōu)點(diǎn),使得越來(lái)越多的網(wǎng)絡(luò)應(yīng)用和業(yè)務(wù)采用多核網(wǎng)絡(luò)處理器作為解決方案。所以,基于多核網(wǎng)絡(luò)處理器的iSCSI發(fā)起端研究有著重要意義。本文對(duì)基于多核網(wǎng)絡(luò)處理器的iSCSI發(fā)起端進(jìn)行研究,并提出一種新的實(shí)現(xiàn)方式。
2.1 iS CSI發(fā)起端的系統(tǒng)結(jié)構(gòu)與實(shí)現(xiàn)方式
iSCSI發(fā)起端的系統(tǒng)結(jié)構(gòu)模型如圖1所示。
圖1 iS CSI發(fā)起端系統(tǒng)結(jié)構(gòu)模型
iSCSI發(fā)起端的實(shí)現(xiàn)主要有以下3種方式[2]:
(1)純軟件方式
采用普通以太網(wǎng)卡進(jìn)行網(wǎng)絡(luò)連接,通過(guò)運(yùn)行上層軟件實(shí)現(xiàn)iSCSI和TCP/IP協(xié)議棧功能層。這種方式無(wú)需添加任何額外設(shè)備,因此,硬件成本最低,靈活性也較強(qiáng)。但是在這種方式中,應(yīng)用主機(jī)在完成應(yīng)用程序處理的同時(shí),還需要兼顧iSCSI的處理和TCP/IP協(xié)議棧的處理,造成主機(jī)運(yùn)行時(shí)間加長(zhǎng),系統(tǒng)性能下降。
(2)智能TOE(TCP Offload Engine)網(wǎng)卡實(shí)現(xiàn)方式
在這種方式中,服務(wù)器采用特定的TOE網(wǎng)卡連接網(wǎng)絡(luò),TCP/IP協(xié)議棧功能由TOE網(wǎng)卡完成,而 iS CSI層的功能仍然由主機(jī)完成。這種方式較第1種方式部分提高了服務(wù)器的性能。但是由于需要額外的網(wǎng)卡,擴(kuò)展性和靈活性較差。
(3)iSCSI HBA(Host Bus Adapter)卡實(shí)現(xiàn)方式
使用HBA存儲(chǔ)適配器完成iSCSI層和TCP/IP協(xié)議棧的功能。該方式性能最好,但是HBA卡較為昂貴,同時(shí)由于需要額外的HBA卡,擴(kuò)展性和靈活性較差。
2.2 Lin ux操作系統(tǒng)的iSCSI實(shí)現(xiàn)方式
在iSCSI發(fā)起端的實(shí)現(xiàn)方式中,基于Linux操作系統(tǒng)的純軟件實(shí)現(xiàn)方式是最常見(jiàn)、最簡(jiǎn)單的一種Linux操作系統(tǒng)下軟件方式實(shí)現(xiàn)發(fā)起端的系統(tǒng)軟件結(jié)構(gòu),如圖2所示[3-4]。
圖2 L inux iSCSI發(fā)起端軟件結(jié)構(gòu)
TCP/IP協(xié)議棧使用Linux操作系統(tǒng)TCP/IP協(xié)議棧,以軟件形式運(yùn)行于Linux操作系統(tǒng)內(nèi)核空間。iSCSI發(fā)起端的實(shí)現(xiàn)則采用開源軟件Open-iSCSI或者基于Open-iSCSI的修改版本。Open-iSCSI是一個(gè)開源的項(xiàng)目,也是Linux下使用最廣泛的iSCSI發(fā)起端軟件。Open-iSCSI軟件包括2個(gè)部分,一部分是運(yùn)行于Linux操作系統(tǒng)用戶空間的配置管理工具,包括應(yīng)用程序iscsiadm和守護(hù)進(jìn)程iscsid;另一部分運(yùn)行于Linux操作系統(tǒng)內(nèi)核空間的內(nèi)核模塊。
在基于Linux操作系統(tǒng)的iSCSI發(fā)起端全軟件實(shí)現(xiàn)方式中,應(yīng)用程序運(yùn)行于Linux操作系統(tǒng)的用戶空間,通過(guò)Linux標(biāo)準(zhǔn)API調(diào)用文件系統(tǒng),而Linux內(nèi)核空間的文件系統(tǒng)通過(guò)調(diào)用Linux塊設(shè)備驅(qū)動(dòng)將文件請(qǐng)求轉(zhuǎn)化為塊請(qǐng)求,然后通過(guò)Linux SCSI子系統(tǒng)封裝成SCSI命令,最后通過(guò)OpeniSCSI內(nèi)核模塊,將SCSI命令通過(guò)TCP/IP封裝,與iSCSI目標(biāo)端進(jìn)行交互。
Open-iSCSI配置管理工具也是運(yùn)行于Linux用戶空間,通過(guò)NetLink機(jī)制,與Open-iSCSI內(nèi)核模塊交互,主要包括目標(biāo)端的發(fā)現(xiàn)、目標(biāo)端的登錄、iSCSI會(huì)話的建立與銷毀、TCP連接的建立與銷毀以及多連接管理等。
3.1 基于多核網(wǎng)絡(luò)處理器異構(gòu)操作系統(tǒng)的軟件框架
目前基于多核網(wǎng)絡(luò)處理器的網(wǎng)絡(luò)應(yīng)用已經(jīng)形成了成熟的系統(tǒng)結(jié)構(gòu),即由管理層面、控制層面和數(shù)據(jù)層面構(gòu)成的分層系統(tǒng)結(jié)構(gòu)[5-7]。
(1)管理層面:對(duì)用戶和上層應(yīng)用程序提供交互接口,管理底層的硬件資源、組織網(wǎng)絡(luò)處理功能模塊和多核拓?fù)浣Y(jié)構(gòu)。
(2)控制層面:協(xié)助數(shù)據(jù)層面的數(shù)據(jù)流處理,提供操作系統(tǒng)與數(shù)據(jù)層面的交互通道,維護(hù)路由表、ARP信息等非實(shí)時(shí)信息。
(3)數(shù)據(jù)層面:通過(guò)多核網(wǎng)絡(luò)處理器上的處理核心以及協(xié)處理器搭建網(wǎng)絡(luò)數(shù)據(jù)流的處理通道,結(jié)合網(wǎng)絡(luò)處理器的優(yōu)勢(shì)對(duì)網(wǎng)絡(luò)數(shù)據(jù)流進(jìn)行加速處理,實(shí)現(xiàn)快速的數(shù)據(jù)包分類與查找、TCP/IP協(xié)議棧、深度包檢測(cè)、數(shù)據(jù)包加/解密、流量整形等功能。
基于以上分層體系結(jié)構(gòu),本文提出了一種基于異構(gòu)操作系統(tǒng)的多核網(wǎng)絡(luò)處理器軟件框架。如圖3所示,將一顆多核網(wǎng)絡(luò)處理器的處理核心分成2個(gè)部分,一部分處理核心運(yùn)行通用操作系統(tǒng),另一部分處理核心運(yùn)行網(wǎng)絡(luò)處理操作系統(tǒng)(Network Processing Operating System, NPOS)[8]。適用于多核網(wǎng)絡(luò)處理器的通用操作系統(tǒng)主要是Linux操作系統(tǒng)。網(wǎng)絡(luò)處理操作系統(tǒng)主要有實(shí)時(shí)操作系統(tǒng)、嵌入式執(zhí)行環(huán)境,以及一些廠商特有的加速執(zhí)行環(huán)境,如Cavium公司的SE執(zhí)行環(huán)境。
圖3 多核網(wǎng)絡(luò)處理器系統(tǒng)結(jié)構(gòu)
網(wǎng)絡(luò)處理的控制層面通常邏輯較復(fù)雜,要求開發(fā)環(huán)境相對(duì)簡(jiǎn)單,但對(duì)數(shù)據(jù)的處理性能要求不高。管理層面通常要求平臺(tái)無(wú)關(guān)性、接口豐富、便于交互等特點(diǎn)。所以本文將控制層面和管理層面運(yùn)行于通用操作系統(tǒng)之上,通過(guò)操作系統(tǒng)屏蔽底層的硬件信息,為用戶提供通用的執(zhí)行環(huán)境。同時(shí),基于通用操作系統(tǒng)的各種編程接口、系統(tǒng)調(diào)用,簡(jiǎn)化應(yīng)用的開發(fā)難度,同時(shí)具有較好的移植性和擴(kuò)展性。
數(shù)據(jù)層面負(fù)責(zé)對(duì)網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行高速實(shí)時(shí)處理,對(duì)性能有著較高的要求,通常需要做到高吞吐、低延時(shí)以及高并發(fā)等。所以數(shù)據(jù)層面運(yùn)行于網(wǎng)絡(luò)處理操作系統(tǒng),直接操作底層的處理核心、內(nèi)存、協(xié)處理器等硬件資源,以充分發(fā)揮多核網(wǎng)絡(luò)處理器的性能。
管理層面需要對(duì)整個(gè)系統(tǒng)的運(yùn)行情況和參數(shù)進(jìn)行管理,管理各種軟硬件資源等;控制層面需要對(duì)數(shù)據(jù)層面進(jìn)行控制,提供運(yùn)行信息、交互數(shù)據(jù)等。管理層面和控制層面通過(guò)異構(gòu)操作系統(tǒng)間的通信機(jī)制和數(shù)據(jù)交互機(jī)制與數(shù)據(jù)平面進(jìn)行信令交互和數(shù)據(jù)交互。通信機(jī)制主要包括網(wǎng)絡(luò)信令交互、多核核間通信機(jī)制等;數(shù)據(jù)交互機(jī)制主要有網(wǎng)絡(luò)數(shù)據(jù)交互、共享內(nèi)存等。
3.2 iS CSI發(fā)起端實(shí)現(xiàn)
本文采用純軟件的iSCSI發(fā)起端實(shí)現(xiàn)方案,所有的iSCSI和網(wǎng)絡(luò)處理都由軟件實(shí)現(xiàn)。同時(shí)借鑒TOE網(wǎng)卡實(shí)現(xiàn)方式和HBA卡實(shí)現(xiàn)方式的思想,充分利用多核網(wǎng)絡(luò)處理器的特點(diǎn),對(duì)iSCSI層和TCP/IP協(xié)議棧進(jìn)行加速處理。基于多核網(wǎng)絡(luò)處理器異構(gòu)操作系統(tǒng)的iSCSI發(fā)起端實(shí)現(xiàn)的軟件結(jié)構(gòu)如圖4所示。
圖4 iS CSI發(fā)起端軟件結(jié)構(gòu)
采用基于多核網(wǎng)絡(luò)處理器異構(gòu)操作系統(tǒng)的軟件框架,在一顆多核網(wǎng)絡(luò)處理器上同時(shí)運(yùn)行Linux操作系統(tǒng)和網(wǎng)絡(luò)處理操作系統(tǒng)。應(yīng)用程序和iSCSI配置管理工具運(yùn)行于Linux用戶空間,屬于控制層面和管理層面;iSCSI層和TCP/ IP協(xié)議棧則以iSCSI加速引擎和TCP/IP加速引擎運(yùn)行于網(wǎng)絡(luò)處理操作系統(tǒng),屬于數(shù)據(jù)層面。在Linux內(nèi)核中運(yùn)行iSCSI卸載驅(qū)動(dòng),其主要功能為提供iSCSI對(duì)于Linux SC SI子系統(tǒng)和iSCSI配置管理工具的完成調(diào)用接口,并通過(guò)多核核間通信機(jī)制和共享內(nèi)存與網(wǎng)絡(luò)操作系統(tǒng)上的iSCSI加速引擎進(jìn)行信令交互和數(shù)據(jù)交互。例如,將一個(gè)SCSI寫命令封裝為多核核間消息,將寫的數(shù)據(jù)填到共享物理內(nèi)存。
數(shù)據(jù)層面是整個(gè)網(wǎng)絡(luò)數(shù)據(jù)流處理器的核心部分,數(shù)據(jù)層面編程模型需要解決開發(fā)效率和運(yùn)行效率問(wèn)題,對(duì)數(shù)據(jù)層面軟件進(jìn)行合理的組織、映射和調(diào)度,對(duì)提高整個(gè)系統(tǒng)性能起著關(guān)鍵作用。根據(jù)每個(gè)處理核心上部署任務(wù)的關(guān)系,處理核心之間構(gòu)成了多種多核拓?fù)浣Y(jié)構(gòu),主要的結(jié)構(gòu)有以下3種[9-10]:
(1)RTC(Run to Complete)結(jié)構(gòu):各個(gè)處理核心之間相互獨(dú)立、并行工作,每個(gè)處理核心都可以完成數(shù)據(jù)流處理的全部子任務(wù)。
(2)S-SPL(Single Software PipeLine):各個(gè)處理核心之間逐級(jí)互聯(lián)形成流水線,每一級(jí)的處理核心實(shí)現(xiàn)數(shù)據(jù)流處理分解為多級(jí)子任務(wù),然后與流水線上的處理核心一一對(duì)應(yīng)。
(3)P-SPL(Parallel S oftware P ipeLine):結(jié)合了RTC和S-SPL,采用并行結(jié)構(gòu)擴(kuò)展S-SPL模型上各個(gè)階段的處理核心數(shù)量,縮短每個(gè)階段的處理開銷。通過(guò)P-SPL模型可以有效地提高流水線結(jié)構(gòu)的處理速度,消除流水線結(jié)構(gòu)的處理瓶頸。
研究發(fā)現(xiàn),P-SPL模型在網(wǎng)絡(luò)數(shù)據(jù)流處理上,兼顧處理性能和擴(kuò)展性,能較好地利用多核網(wǎng)絡(luò)處理器的并行處理優(yōu)勢(shì),適用于網(wǎng)絡(luò)數(shù)據(jù)處理[11-12]。本文采用P-SPL編程模型設(shè)計(jì)數(shù)據(jù)層面的系統(tǒng)模型,充分利用多核處理器的并行性,同時(shí)兼顧軟件的模塊化和擴(kuò)展性?;赑-SPL編程模型設(shè)計(jì)的多核網(wǎng)絡(luò)處理器iSCSI發(fā)起端數(shù)據(jù)層面系統(tǒng)結(jié)構(gòu)如圖5所示。
圖5 iS CSI發(fā)起端數(shù)據(jù)層面系統(tǒng)結(jié)構(gòu)
對(duì)比基于Linux操作系統(tǒng)的iSCSI發(fā)起端實(shí)現(xiàn)方式[13],基于多核網(wǎng)絡(luò)處理異構(gòu)操作系統(tǒng)的iSCSI發(fā)起端實(shí)現(xiàn)主要有以下優(yōu)點(diǎn):
(1)TCP/IP協(xié)議棧與iSCSI層以加速引擎的軟件模塊運(yùn)行于數(shù)據(jù)平面,可以充分利用多核處理的協(xié)處理器進(jìn)行網(wǎng)絡(luò)加速處理,協(xié)議處理以及校驗(yàn)計(jì)算等是消耗處理器資源的重要因素之一[14]。
(2)數(shù)據(jù)層面可以充分利用多核處理器的并行性,進(jìn)行P-SPL模型的編程,優(yōu)化軟件結(jié)構(gòu)。
(3)數(shù)據(jù)層面的數(shù)據(jù)包處理采用輪詢模式,面向高速網(wǎng)絡(luò)時(shí),減少了大量的中斷處理。而研究表明,在Linux操作中,網(wǎng)絡(luò)處理中最影響性能的因素之一就是中斷[15]。
(4)對(duì)Linux應(yīng)用程序和iSCSI配置管理工具完全透明。應(yīng)用的開發(fā)和iSCSI配置管理無(wú)需做任何改變。
(5)內(nèi)存的零拷貝。研究表明,基于Linux的iSCSI實(shí)現(xiàn)方式中,內(nèi)存拷貝也是影響性能的重要因素之一?;诙嗪司W(wǎng)絡(luò)處理器的iSCSI發(fā)起端軟件架構(gòu)中,數(shù)據(jù)包的處理在Linux SCSI子系統(tǒng)之前都基于物理地址和指針偏移實(shí)現(xiàn),無(wú)需內(nèi)存拷貝[16]。
(6)數(shù)據(jù)包數(shù)據(jù)層面的處理在網(wǎng)絡(luò)處理操作系統(tǒng)上進(jìn)行,實(shí)時(shí)性高,處理延時(shí)低。
基于本文提出的多核網(wǎng)絡(luò)處理器異構(gòu)操作系統(tǒng)的iSCSI發(fā)起端實(shí)現(xiàn)方式,在高性能嵌入式邊緣服務(wù)器ATCA-8000R上實(shí)現(xiàn)了iSCSI發(fā)起端。iSCSI目標(biāo)端使用新一代網(wǎng)絡(luò)存儲(chǔ)產(chǎn)品藍(lán)鯨BW2000。具體的硬件參數(shù)如表1所示。
表1 實(shí)驗(yàn)硬件參數(shù)
在ATCA-8000R上分別運(yùn)行基于Linux操作系統(tǒng)的iSCSI發(fā)起端實(shí)現(xiàn)和本文提出的基于多核網(wǎng)絡(luò)處理器異構(gòu)操作系統(tǒng)的iSCSI發(fā)起端實(shí)現(xiàn)。通過(guò)千兆交換機(jī)連接ATCA-8000R的6個(gè)千兆網(wǎng)口和藍(lán)鯨BW2000的6個(gè)千兆網(wǎng)口進(jìn)行測(cè)試。具體的運(yùn)行參數(shù)如表2所示。
表2 實(shí)驗(yàn)運(yùn)行參數(shù)
基于多核網(wǎng)絡(luò)處理器的異構(gòu)操作系統(tǒng)中,網(wǎng)絡(luò)處理操作系統(tǒng)使用Cavium公司的SE執(zhí)行環(huán)境。數(shù)據(jù)層面的6個(gè)處理核心的具體分配如圖5所示。分別對(duì)2種iSCSI發(fā)起端實(shí)現(xiàn)方式的讀寫吞吐率和響應(yīng)時(shí)間進(jìn)行對(duì)比測(cè)試,測(cè)試結(jié)果如圖6和圖7所示。
圖6 吞吐率測(cè)試結(jié)果
圖7 響應(yīng)時(shí)間測(cè)試結(jié)果
從測(cè)試結(jié)果可以看出,基于多核網(wǎng)絡(luò)處理器異構(gòu)操作系統(tǒng)的iSCSI發(fā)起端實(shí)現(xiàn)在吞吐率和響應(yīng)時(shí)間上的性能都要優(yōu)于基于Linux操作系統(tǒng)的實(shí)現(xiàn)方式,在512 KB的塊請(qǐng)求中,達(dá)到了180 MB/s的性能優(yōu)勢(shì),而平均響應(yīng)時(shí)間最好情況下減少了1.6 ms。從第3節(jié)的分析可知,主要原因是基于多核網(wǎng)絡(luò)處理器異構(gòu)操作系統(tǒng)的iSCSI發(fā)起端軟件架構(gòu)在處理效率和實(shí)時(shí)性方面,都與Linux操作系統(tǒng)的實(shí)現(xiàn)方式有了改進(jìn)。
通用的iSCSI發(fā)起端實(shí)現(xiàn)方式不能充分利用多核網(wǎng)絡(luò)處理器的特點(diǎn)。本文提出了一種基于異構(gòu)操作系統(tǒng)的多核網(wǎng)絡(luò)處理器軟件框架,在一顆多核網(wǎng)絡(luò)處理器上同時(shí)運(yùn)行通用操作系統(tǒng)和網(wǎng)絡(luò)處理操作系統(tǒng)。網(wǎng)絡(luò)處理的管理層面和控制層面運(yùn)行于通用操作系統(tǒng);數(shù)據(jù)層面運(yùn)行于網(wǎng)絡(luò)處理操作系統(tǒng),直接操作底層的處理核心、內(nèi)存、協(xié)處理器等硬件資源,以充分發(fā)揮多核網(wǎng)絡(luò)處理器的性能?;诙嗪司W(wǎng)絡(luò)處理器異構(gòu)操作系統(tǒng)軟件框架,提出了一種多核網(wǎng)絡(luò)處理器iSCSI發(fā)起端實(shí)現(xiàn)方式,應(yīng)用程序與iSCSI配置管理工具運(yùn)行于Linux用戶空間,在Linux內(nèi)核空間運(yùn)行iSCSI卸載驅(qū)動(dòng),保證對(duì)上接口不變,實(shí)現(xiàn)對(duì)應(yīng)用程序和iSCSI配置管理工具的透明。iSCSI層和TCP/IP協(xié)議棧以P-SPL編程模型在網(wǎng)絡(luò)處理操作系統(tǒng)實(shí)現(xiàn),實(shí)現(xiàn)加速處理。實(shí)驗(yàn)證明,基于多核網(wǎng)絡(luò)處理器異構(gòu)操作系統(tǒng)的iSCSI發(fā)起端實(shí)現(xiàn)比基于Linux操作系統(tǒng)的iSCSI發(fā)起端實(shí)現(xiàn)方式有更好的性能。
在本文提出的iSCSI發(fā)起端實(shí)現(xiàn)方式中,異構(gòu)操作系統(tǒng)的硬件資源分配和數(shù)據(jù)層面的子任務(wù)劃分與資源分配都是根據(jù)經(jīng)驗(yàn)值靜態(tài)分配的,不能更好地適應(yīng)業(yè)務(wù)負(fù)載的變化。在后續(xù)研究中,將繼續(xù)研究異構(gòu)操作系統(tǒng)硬件資源的動(dòng)態(tài)分配問(wèn)題,以及數(shù)據(jù)層面的子任務(wù)劃分與資源動(dòng)態(tài)分配問(wèn)題。
[1] Satran J, Meth K, S apuntzakis C, et al. Internet Small Computer Systems Interface(iSCSI)[S]. RFC 3720, 2004.
[2] 韓紅根. 基于iSCSI的存儲(chǔ)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D]. 武漢:華中科技大學(xué), 2012.
[3] Zhou Jingli, Xu Feng, YU Shengsheng. Implementation and Performance Analysis of iSCSI Based Storage Systems Under Linux[J]. Computer Engineering & Science, 2004, 26(6): 1-3, 6.
[4] 任 勁, 謝長(zhǎng)生, 李 為. iSCSI協(xié)議及其Linux下的實(shí)現(xiàn)[J].小型微型計(jì)算機(jī)系統(tǒng), 2003, 24(7): 1183-1186.
[5] 蔣漢平. 面向多核網(wǎng)絡(luò)處理器軟件框架的研究與實(shí)現(xiàn)[D].武漢: 武漢理工大學(xué), 2008.
[6] 郭秀巖. 面向多核的多層次實(shí)時(shí)網(wǎng)絡(luò)數(shù)據(jù)流調(diào)度技術(shù)研究[D]. 合肥: 中國(guó)科學(xué)技術(shù)大學(xué), 2011.
[7] Wolf T, Weng Ning. Runtime Support for Multicore Packet Processing Systems[J]. IEEE Network, 2007, 21(4): 29-37.
[8] Zha Qi wen, W u Zhang, Zeng Xu ewen, et al. A High Performance Multi-core Network Processing System[C]//Proc. of the 3rd International Conference on Computer Technology and Development. Chengdu, China: [s. n.], 2012.
[9] Verdú J, Nemirovsky M, Valero M. Multilayer Processing——An Execution Model for Parallel Stateful Packet Processing[C]//Proc. of the 4th ACM/IEEE Sym posium on Architectures for Networking and Communications Systems. [S. l.]: ACM Press, 2008: 79-88.
[10] Jiang Haiya ng, Yang Jianhu a, Xie Gaogang. Ex ploring and Enhancing the Performance of Parallel ID S on Multi-core Processors[C]//Proc. of the 10th I nternational Conference on Trust, Security and Privacy in Computing and Communications. [S. l.]: IEEE Press, 2011: 673-680.
[11] 郭秀巖, 張 武, 王勁林, 等. 用于視頻點(diǎn)播系統(tǒng)中實(shí)時(shí)數(shù)據(jù)流發(fā)送的多核結(jié)構(gòu)[J]. 小型微型計(jì)算機(jī)系統(tǒng), 2011, 32(7): 1310-1316.
[12] 賀鵬程, 王勁林, 鄧浩江, 等. 多核分組處理系統(tǒng)軟件結(jié)構(gòu)研究[J]. 微計(jì)算機(jī)應(yīng)用, 2010, 31(9): 12-20.
[13] 羅 剛. i SCSI協(xié)議研究及其性能優(yōu)化[D]. 武漢: 中南民族大學(xué), 2009.
[14] Akagic A, Amano H. Performance Analysis of Fully-adaptable CRC Accelerators on an FP GA[C]//Proc. of the 22nd International Co nference o n Field Programmable Lo gic an d Applications. [S. l.]: IEEE Press, 2012: 575-578.
[15] 譚志虎, 萬(wàn)繼光. i SCSI性能優(yōu)化方法綜述[J]. 計(jì)算機(jī)科學(xué), 2009, 36(1): 16-18.
[16] Chiang Meiling, Li Yunchen. LyraNET: A Zero-copy TCP/IP Protocol Stack for Embedded Systems[C]//Proc. of the 1 1th IEEE International C onference on Embedded and Real-time Computing Syste ms and Applicat ions. [S. l.]: IE EE Press, 2005: 123-128.
編輯 顧逸斐
Research and Implementation of iSCSI Initiator on Multi-core Network Processor
ZHA Qi-wen1,2, ZHANG Wu1, ZENG Xue-wen1, SONG Yi1,2
(1. National Network New Media Engineering Research Center, Institute of Acoustics, Chinese Academy of Sciences, Beijing 100190, China; 2. University of Chinese Academy of Sciences, Beijing 100049, China)
For the performance and scalability problems of the existi ng implementation of Internet Small Computer System Interface(iSCSI) initiator, this paper studies the network processing software framework of multi-core network processor and proposes the multi-core network processor heterogeneous operating system soft ware framework. Based on the pro posed multi-core network processor heterogeneous operating system software framework and P-SPL data plane programming model, this paper proposes an implementation of iSCSI initiator. Experimental result proves that the implementation based on the multi-core network processor heterogeneous ope rating system software framework has better performance on throughput and response time than the implementation based on Linux. In 6 GE ports experiment environment, the n ew implementation gets a maximum of 180 MB/s re ad and write throughput improvement and 1.6 ms of response time reduce.
Internet Small Computer System Interface(iSCSI); iSCSI initiator; multi-core network processor; Linux operating system; TCP/IP protocol stack; Network Processing Operating System(NPOS)
10.3969/j.issn.1000-3428.2014.05.063
國(guó)家“863”計(jì)劃基金資助重大項(xiàng)目“融合網(wǎng)絡(luò)業(yè)務(wù)體系的開發(fā)”(2011AA01A102);國(guó)家科技支撐計(jì)劃基金資助項(xiàng)目“數(shù)字家庭服務(wù)媒體設(shè)備集成技術(shù)研究”(2011BAH16B03);中國(guó)科學(xué)院戰(zhàn)略性先導(dǎo)科技專項(xiàng)基金資助項(xiàng)目“未來(lái)網(wǎng)絡(luò)架構(gòu)研究與邊緣設(shè)備研制”(XDA06010302)。
查奇文(1986-),男,博士研究生,主研發(fā)向:網(wǎng)絡(luò)新媒體技術(shù),高性能嵌入式服務(wù)器;張 武,副研究員、博士;曾學(xué)文,研究員、博士生導(dǎo)師;宋 毅,博士研究生。
2013-04-16
2013-05-10E-mail:zhaqw@dsp.ac.cn
1000-3428(2014)05-0304-05
A
TP309