基于IBA的SRP Target的研究與實(shí)現
引言
InfiniBand是一種新的互連技術(shù),它將I/O系統與CPU/Mem分開(kāi)??朔水斍癐/O結構的種種弊端,提供了高帶寬、低延遲、可擴展的I/0互連。SRP協(xié)議是Infini-Band中的一種通信協(xié)議,在InfiniBand中將SCSI命令進(jìn)行打包,允許SCSI命令通過(guò)RDMA(遠程直接內存訪(fǎng)問(wèn))在不同的系統之間進(jìn)行通信.實(shí)現存儲設備共享和RDMA通信服務(wù)。
1 SRP Target簡(jiǎn)介
SRP Target將系統中的存儲設備信息映射到IB網(wǎng)絡(luò )上.讓SRP Initiator端的服務(wù)器能夠在IB網(wǎng)絡(luò )上獲取到這些SCSI存儲設備的信息,并可通過(guò)與SRP Target對存儲設備的進(jìn)行訪(fǎng)問(wèn)。
圖1為SRP Target的協(xié)議棧結構,如圖所示,與IB鏈路直接連接的是InfiniBand HCA,它與SRP Initiator端的HCA建立了RDMA通道,負責提供RDMA通信服務(wù)。SRP Target區域包括了SCSI Target、SRP Target Drive和InfiniBand Driver三個(gè)部分。
2 SRP Target的實(shí)現
2.1 初始化SRP Target模塊
SCSI Target的初始化是指獲取系統中的SCSI存儲設備信息并注冊,以使模塊具有處理SCSI命令的功能。SRPTarget的初始化關(guān)鍵是使SRP Target與SCSI Target建立聯(lián)系,使其具有處理SRP信息、進(jìn)行SCSI命令的轉換、進(jìn)行m管理以及提供RDMA通道服務(wù)等功能。初始化完成之后,SRP Initiator便可以獲取IB網(wǎng)絡(luò )上的SCSI存儲設備信息。
2.2 讀操作的實(shí)現
讀操作是指SRP Initiator服務(wù)器從SRP Target服務(wù)器讀取信息的過(guò)程。讀操作包括了SRP Initiator從SRP Target服務(wù)器獲取SCSI存儲設備信息、查看存儲設備容量大小,讀取存儲設備文件信息等操作。實(shí)現具體過(guò)程如圖2所示。
當完成數據傳輸以后。SRP Target就要對執行過(guò)程中所占有的資源進(jìn)行釋放,為下一個(gè)任務(wù)騰出資源,SRP Tar一get就處于等待接收下一個(gè)任務(wù)的狀態(tài)中。
2.3 寫(xiě)操作實(shí)現過(guò)程
寫(xiě)操作是指SRP Initiator服務(wù)器從SRP Target服務(wù)器寫(xiě)信息的過(guò)程。寫(xiě)操作包括了SRP Initiator服務(wù)器向SRPTarget服務(wù)器上的存儲設備寫(xiě)入數據,對存儲設備進(jìn)行格式化等操作。
釋放SCSI命令占有資源的操作過(guò)程與前述處理讀命令的過(guò)程是一致的。
2.4 處理異常中斷
當SRP Initiator通過(guò)RDMA通道向SRP Target發(fā)送SRP請求信息.要求RDMA通道對應的SRP Target端口接收SRP請求信息。端口執行接收操作,但是出現異常中斷,接收SRP請求信息失敗,就要進(jìn)行相應的處理措施.具體步驟如下:
評論