基于IBA的SRP Target的研究與實現(xiàn)
引言
InfiniBand是一種新的互連技術(shù),它將I/O系統(tǒng)與CPU/Mem分開??朔水?dāng)前I/O結(jié)構(gòu)的種種弊端,提供了高帶寬、低延遲、可擴展的I/0互連。SRP協(xié)議是Infini-Band中的一種通信協(xié)議,在InfiniBand中將SCSI命令進行打包,允許SCSI命令通過RDMA(遠程直接內(nèi)存訪問)在不同的系統(tǒng)之間進行通信.實現(xiàn)存儲設(shè)備共享和RDMA通信服務(wù)。
1 SRP Target簡介
SRP Target將系統(tǒng)中的存儲設(shè)備信息映射到IB網(wǎng)絡(luò)上.讓SRP Initiator端的服務(wù)器能夠在IB網(wǎng)絡(luò)上獲取到這些SCSI存儲設(shè)備的信息,并可通過與SRP Target對存儲設(shè)備的進行訪問。
圖1為SRP Target的協(xié)議棧結(jié)構(gòu),如圖所示,與IB鏈路直接連接的是InfiniBand HCA,它與SRP Initiator端的HCA建立了RDMA通道,負責(zé)提供RDMA通信服務(wù)。SRP Target區(qū)域包括了SCSI Target、SRP Target Drive和InfiniBand Driver三個部分。
2 SRP Target的實現(xiàn)
2.1 初始化SRP Target模塊
SCSI Target的初始化是指獲取系統(tǒng)中的SCSI存儲設(shè)備信息并注冊,以使模塊具有處理SCSI命令的功能。SRPTarget的初始化關(guān)鍵是使SRP Target與SCSI Target建立聯(lián)系,使其具有處理SRP信息、進行SCSI命令的轉(zhuǎn)換、進行m管理以及提供RDMA通道服務(wù)等功能。初始化完成之后,SRP Initiator便可以獲取IB網(wǎng)絡(luò)上的SCSI存儲設(shè)備信息。
2.2 讀操作的實現(xiàn)
讀操作是指SRP Initiator服務(wù)器從SRP Target服務(wù)器讀取信息的過程。讀操作包括了SRP Initiator從SRP Target服務(wù)器獲取SCSI存儲設(shè)備信息、查看存儲設(shè)備容量大小,讀取存儲設(shè)備文件信息等操作。實現(xiàn)具體過程如圖2所示。
當(dāng)完成數(shù)據(jù)傳輸以后。SRP Target就要對執(zhí)行過程中所占有的資源進行釋放,為下一個任務(wù)騰出資源,SRP Tar一get就處于等待接收下一個任務(wù)的狀態(tài)中。
2.3 寫操作實現(xiàn)過程
寫操作是指SRP Initiator服務(wù)器從SRP Target服務(wù)器寫信息的過程。寫操作包括了SRP Initiator服務(wù)器向SRPTarget服務(wù)器上的存儲設(shè)備寫入數(shù)據(jù),對存儲設(shè)備進行格式化等操作。
釋放SCSI命令占有資源的操作過程與前述處理讀命令的過程是一致的。
2.4 處理異常中斷
當(dāng)SRP Initiator通過RDMA通道向SRP Target發(fā)送SRP請求信息.要求RDMA通道對應(yīng)的SRP Target端口接收SRP請求信息。端口執(zhí)行接收操作,但是出現(xiàn)異常中斷,接收SRP請求信息失敗,就要進行相應(yīng)的處理措施.具體步驟如下:[!--empirenews.page--]
(1)SRP Target的端口檢測RDMA通道中有SRP請求信息,確認為接收完成操作失敗,未接收到SRP請求信息,立即進行操作失敗下的處理方式。
(2)釋放RDMA緩沖區(qū)相關(guān)資源,重新初始化相關(guān)屬性信息。
2.5 卸載SRPTarget
當(dāng)進行卸載SRP Target時,主要進行釋放SRP Target模塊和SCSI模塊所占有資源。具體的步驟如下:
(1)注銷SCSI Target模塊中的I/O控制器,清除該控制器的設(shè)備ID號,將該控制器從全局上下文中移除。
(2)清I/O控制器所控制的SCSI命令,釋放SCSI命令所占有的內(nèi)存緩沖區(qū)等資源。釋放所占有的內(nèi)存緩沖區(qū)。
(3)釋放SRP Target模塊中I/O控制器所占有的資源,停止對IB端口服務(wù)人口的監(jiān)聽操作,釋放服務(wù)入口所占有的內(nèi)存空間資源,并對IB端口進行更新操作,恢復(fù)端口的初始設(shè)置。
(4)對所有RDMA通道進行斷開操作.釋放RDMA通道所占有的資源。
(5)釋放IB I/O控制器所占有的空間。
3 實驗結(jié)果與分析
3.1 實驗環(huán)境
(1)硬件配置:
神威SWIBS24型IBA交換機。
IBM System x3650服務(wù)器3臺(Initiator01,Initiator02,Initiator03)各配有一塊HCA卡,作為SRP Initiator。存儲服務(wù)器一臺配置一塊HCA卡。作為SRP Target。
(2)軟件配置:
四臺linux AS4 Updata4服務(wù)器.內(nèi)核版本為2.6.9-42。Initiator01、Initiator02、Initiator03安裝IBA驅(qū)動程序IBGD(InfiniBand Gold Distribution)的sRP Initiator,作為Initiator服務(wù)器;Target安裝IBA驅(qū)動程序OFED(OpenFabrics En-terprise Distribution)的SRP Target,作為Target服務(wù)器。本課題依據(jù)GPFS支持的直接連接、網(wǎng)絡(luò)連接兩個模式,分別對讀寫性能進行比較。
直接連接:使用SRP協(xié)議.只要求在Initiator01、02、03服務(wù)器上安裝GPFS,Target上不安裝GPFS,Initiator服務(wù)器由1B網(wǎng)絡(luò)通過SRP Target獲得RAID存儲設(shè)備信息,即可對其進行直接掛載、讀寫操作。
網(wǎng)絡(luò)連接:不使用SRP協(xié)議.使用IPoIB協(xié)議。要求在每個服務(wù)器上都安裝GPFS,Initiator服務(wù)器不能通過SRP協(xié)議獲取Target服務(wù)器上RAID存儲設(shè)備的信,g。Initiator只能通過IPoIB與Target聯(lián)系,通過Target服務(wù)器上的GPFS文件系統(tǒng)對存儲設(shè)備進行共享訪問。
3.2 實驗結(jié)果
下表為實驗結(jié)果,IPoIB為GPFS的網(wǎng)絡(luò)連接模式,IB-SRP為GPFS的直接連接模式:
(1)Initiator01、02、03同時對Target的RAID設(shè)備進行讀寫操作(如表1)。設(shè)置測試的空間大小為10 G,一次讀寫操作的塊大小分別為64 k,128 k,256 k,速度以K/s為單位。
(2)Initiator01對Target的RAID設(shè)備單獨進行讀寫測試(如表2)。
3.3 結(jié)果分析
實驗結(jié)果表明,在IBA網(wǎng)絡(luò)中使用SRP協(xié)議的Initiator和Target模塊進行數(shù)據(jù)傳輸?shù)乃俣缺葐渭兪褂肐BA網(wǎng)絡(luò)進行數(shù)據(jù)傳輸?shù)乃俣雀叱龊芏唷?br /> 使用SRP協(xié)議進行數(shù)據(jù)傳輸時,Initiator服務(wù)器向Tar—get服務(wù)器的RAID設(shè)備傳輸數(shù)據(jù),是直接與Target內(nèi)存進行數(shù)據(jù)傳輸,然后由Target的內(nèi)存將數(shù)據(jù)傳遞給RAID設(shè)備。在此時,Target系統(tǒng)并不執(zhí)行數(shù)據(jù)的拷貝動作,不經(jīng)過內(nèi)核的調(diào)用,減少了處理網(wǎng)絡(luò)通信時在內(nèi)核空間和用戶空間上下文切換的次數(shù),消除了在應(yīng)用內(nèi)存與內(nèi)核內(nèi)存之間復(fù)制數(shù)據(jù)的需要,減少了CPU的負載。繞過內(nèi)核可使應(yīng)用程序不必執(zhí)行內(nèi)核調(diào)用就可以直接發(fā)出命令。減少了延遲時間,能騰出總線空間和CPU周期用于改進應(yīng)用系統(tǒng)性能。然而只利用IBA網(wǎng)絡(luò)進行數(shù)據(jù)傳輸時。Target系統(tǒng)要進行數(shù)據(jù)的拷貝.內(nèi)核的調(diào)用,增大了CPU的負載.性能相對下降。所以基于SRP的讀寫速度性能會更高。
4 結(jié)束語
本文介紹了實現(xiàn)SRP Target的過程.對各個獨立功能部分的工作原理、工作機制以及工作流程進行了分析。并給出了IBA存儲網(wǎng)絡(luò)分別使用IPOIB協(xié)議和SRP協(xié)議讀寫性能的測試結(jié)果,對于設(shè)計實現(xiàn)基于IBA的存儲網(wǎng)絡(luò)有著重要的參考價值。