基于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命令進(jìn)行打包,允許SCSI命令通過RDMA(遠(yuǎn)程直接內(nèi)存訪問)在不同的系統(tǒng)之間進(jìn)行通信.實現(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è)備的進(jìn)行訪問。
圖1為SRP Target的協(xié)議棧結(jié)構(gòu),如圖所示,與IB鏈路直接連接的是InfiniBand HCA,它與SRP Initiator端的HCA建立了RDMA通道,負(fù)責(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信息、進(jìn)行SCSI命令的轉(zhuǎn)換、進(jì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í)行過程中所占有的資源進(jìn)行釋放,為下一個任務(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è)備進(jìn)行格式化等操作。
釋放SCSI命令占有資源的操作過程與前述處理讀命令的過程是一致的。
2.4 處理異常中斷
當(dāng)SRP Initiator通過RDMA通道向SRP Target發(fā)送SRP請求信息.要求RDMA通道對應(yīng)的SRP Target端口接收SRP請求信息。端口執(zhí)行接收操作,但是出現(xiàn)異常中斷,接收SRP請求信息失敗,就要進(jìn)行相應(yīng)的處理措施.具體步驟如下:
評論