專利名稱:節(jié)點之間進行通信的方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種允許節(jié)點之間通信的方法、系統(tǒng)及程序。
背景技術(shù):
在存儲環(huán)境中,數(shù)據(jù)存取命令從主機系統(tǒng)傳送到管理對磁盤存取的存儲控制器。存儲控制器可以是主機系統(tǒng)內(nèi)的卡或分開的裝置。互聯(lián)網(wǎng)小型計算機系統(tǒng)接口(iSCSI)協(xié)議用于利用包括以太網(wǎng)交換機和路由器的以太網(wǎng)連接的存儲網(wǎng)絡(luò)。這里所使用的術(shù)語“iSCSI”指的是由IETF(互聯(lián)網(wǎng)工程任務(wù)小組)標(biāo)準(zhǔn)機構(gòu)定義的iSCSI協(xié)議的語法和語義,以及該協(xié)議的任何變體。在利用iSCSI的當(dāng)前存儲網(wǎng)絡(luò)中,分組配置包括封裝互聯(lián)網(wǎng)協(xié)議(IP)和傳輸控制協(xié)議(TCP)包層的以太網(wǎng)包,包層進一步封裝包括一個或多個SCSI命令的iSCSI包。當(dāng)分組在任意網(wǎng)絡(luò)段(鏈路)上從點到點流動時,以太網(wǎng)協(xié)議規(guī)定鏈路級差錯檢驗以確定數(shù)據(jù)是否已在通過鏈路時被損壞。在網(wǎng)絡(luò)數(shù)據(jù)傳輸操作中,起始設(shè)備在網(wǎng)絡(luò)上傳送數(shù)據(jù)或命令到目標(biāo)設(shè)備。TCP/IP包包括執(zhí)行端到端檢驗的錯誤檢測碼,以確定在相對端所傳送的分組是否已在傳輸過程中當(dāng)分組通過交換機和路由器時被改變。檢測錯誤的接收設(shè)備將發(fā)送否定應(yīng)答給發(fā)送設(shè)備,以請求檢測出錯誤的那些分組的重發(fā)。
遠程直接存儲器存取(RMDA)協(xié)議允許一個網(wǎng)絡(luò)節(jié)點以對存儲器總線帶寬及處理器開銷的最小要求將信息直接放置在另一個網(wǎng)絡(luò)節(jié)點的存儲器中。TCP/IP上的RDMA(也稱作iWARP)定義可互操作協(xié)議以在標(biāo)準(zhǔn)TCP/IP網(wǎng)絡(luò)上支持RDMA操作。RDMA網(wǎng)絡(luò)接口卡(RNIC)實施RDMA協(xié)議并執(zhí)行RDMA操作以傳送數(shù)據(jù)到本地及遠程存儲器。RDMA協(xié)議的更多細節(jié)在以下規(guī)范中描述由RDMA聯(lián)盟(2003年4月)公布的名稱為“RDMA協(xié)議動詞規(guī)范(1.0版)”;由RDMA聯(lián)盟(2002年10月)公布的“可靠傳輸上的直接數(shù)據(jù)放置(1.0版)”;以及由RDMA聯(lián)盟(2002年10月)公布的“TCP的標(biāo)記PDU對齊組幀規(guī)范(1.0版)”,并且這些規(guī)范在此引入作為參考。
由RDMA聯(lián)盟(2003年7月)發(fā)布的Michael Ko等人的一個名稱為“RDMA的iSCSI擴展規(guī)范(1.0版)”的規(guī)范定義通過在RDMA之上分層iSCSI而為iSCSI提供RDMA數(shù)據(jù)傳送能力的協(xié)議,該規(guī)范在此整體引入作為參考。
定義為TCP/IP上的RDMA也稱作iWARP的一部分的許多特性以前定義為無限帶寬網(wǎng)絡(luò)中的操作。無限帶寬適配器硬件支持RDMA操作。無限帶寬也定義稱作套接字字指引協(xié)議(SDP)的一組協(xié)議,其允許正常的TCP/IP套接字字應(yīng)用程序以與它們在TCP/IP網(wǎng)絡(luò)上操作時相同的方式跨越無限帶寬網(wǎng)絡(luò)發(fā)送消息。無限帶寬及SDP協(xié)議的更多細節(jié)在出版物“無限帶寬TM體系結(jié)構(gòu),規(guī)范卷1”,1.1版(2002年11月,版權(quán)無限帶寬TM同業(yè)公會)中描述,該出版物在此整體并入作為參考。
現(xiàn)在參考附圖,其中相似參考數(shù)字自始至終表示一致的部分圖1說明實現(xiàn)實施方案的網(wǎng)絡(luò)節(jié)點的例子;圖2說明根據(jù)所描述的實施方案的計算體系結(jié)構(gòu)的例子;圖3說明分組格式;圖4說明保存在映射上的信息;圖5a、5b、6a、6b、7和8說明根據(jù)實施方案的執(zhí)行以傳送數(shù)據(jù)的操作;圖9,10、11a和11b說明包括網(wǎng)關(guān)的實施方案;以及圖12、13和14說明在網(wǎng)關(guān)中執(zhí)行以處理并轉(zhuǎn)發(fā)消息的操作。
發(fā)明內(nèi)容
本發(fā)明提供的是一種在本地節(jié)點處執(zhí)行以與遠程節(jié)點通信的方法、系統(tǒng)及程序。第一通信協(xié)議用來與遠程節(jié)點通信以建立第二通信協(xié)議的連接。數(shù)據(jù)結(jié)構(gòu)被創(chuàng)建來允許與遠程節(jié)點的通信,以建立第二通信協(xié)議的與遠程節(jié)點的連接。擴展層對于第二通信協(xié)議被調(diào)用。數(shù)據(jù)結(jié)構(gòu)傳送到擴展層以用于使用第二通信協(xié)議與遠程節(jié)點通信。
具體實施例方式
在下面的描述中,參考構(gòu)成其一部分并說明本發(fā)明的幾種實施方案的附圖。應(yīng)當(dāng)明白,其他實施方案也可以使用并且可以不背離本發(fā)明的范疇而作結(jié)構(gòu)及操作上的改變。
圖1說明包括在網(wǎng)絡(luò)4上通信的多個計算節(jié)點2a,2b,…2n的網(wǎng)絡(luò)計算環(huán)境。網(wǎng)絡(luò)可以包括局域網(wǎng)(LAN)、廣域網(wǎng)(WAN)、存儲域網(wǎng)(SAN)。可選地,節(jié)點可以在總線例如SCSI總線等上通信。
圖1中的節(jié)點2a,2b…2n可以操作為起始或目標(biāo)。圖2說明包含于節(jié)點例如節(jié)點2a,2b,2c中以允許網(wǎng)絡(luò)4上的通信的部件。節(jié)點2包括處理器6例如中央處理單元或組合體,以及操作系統(tǒng)8。節(jié)點2還包含應(yīng)用程序14,包括用戶應(yīng)用程序例如數(shù)據(jù)庫程序、服務(wù)器程序等。為了執(zhí)行I/O操作,應(yīng)用程序14將訪問SCSI層16以產(chǎn)生SCSI I/O請求,SCSI層16又將訪問iSCSI層18。iSCSI層18通過執(zhí)行iSCSI登錄操作開始與目標(biāo)節(jié)點的通信。為了登錄,iSCSI層與套接字層20例如TCP套接字層連系,以建立與遠程目標(biāo)節(jié)點的通信并登錄。套接字層20包括用來在iSCSI層18和適配器24中的網(wǎng)絡(luò)協(xié)議之間連系的編程接口。
適配器24可以包括RNIC適配器或無限帶寬(IB)適配器。適配器24包括RDMA層26和網(wǎng)絡(luò)層28例如TCP層或無限帶寬層,以為在網(wǎng)絡(luò)4上的傳輸在傳輸層中包裝分組或者將從網(wǎng)絡(luò)4接收到的分組解包。
在適配器24包括無限帶寬適配器的情況下,節(jié)點2可以包括套接字指引協(xié)議(SDP)層42,使得套接字層20與SDP層42連系并且SDP層42在套接字層20和RDMA層26之間連系。在無限帶寬實施方案中,通過實施來自iSCSI層18的套接字層20訪問至對RDMA層26的RDMA訪問(直接地或者通過IB適配器驅(qū)動器44),SDP層42提供在使用套接字層20進行訪問的應(yīng)用程序14和適配器24中的RDMA層26之間的接口。在無限帶寬和RNIC兩種實施方案中,iSER層22被提供,使得在登錄之后,iSCSI層18將訪問iSER層22以訪問RNIC24。iSER層22可以直接通過函數(shù)調(diào)用或通過包括RDMA動詞(verb)層的RNIC驅(qū)動器44來訪問RNIC 24。在適配器24由RNIC驅(qū)動器構(gòu)成的實施方案中,節(jié)點2可以不包括SDP層42,但是在無限帶寬適配器實施方案中,SDP層42被包含。
RDMA層26可以直接存取起始和目標(biāo)節(jié)點中(本地或本地及遠程地)以邏輯上相連方式的已登記存儲位置。所定義的存儲位置,例如存儲區(qū)域或存儲窗口,通過由RDMA層26所創(chuàng)建的并用來索引已登記的存儲位置例如存儲區(qū)域32的轉(zhuǎn)向標(biāo)簽來標(biāo)識。在RNIC實施中轉(zhuǎn)向標(biāo)簽稱為STag,并且在無限帶寬實施方案中轉(zhuǎn)向標(biāo)簽稱為遠程的轉(zhuǎn)向標(biāo)簽R_Key和本地的轉(zhuǎn)向標(biāo)簽L_Key(這里用于兩者的統(tǒng)稱術(shù)語為#_Key)。在某些實施方案中,存儲區(qū)域或稱為存儲窗口的存儲區(qū)域的子集可以被登記,其中單獨的STag/#_Key將與每個被登記的存儲位置、區(qū)域或窗口關(guān)聯(lián)。RDMA層26使用STag/#_key來存取所索引的存儲位置。在某些實施方案中,iSER層22將通過訪問RDMA動詞層44來訪問適配器24以登記存儲區(qū)域。RDMA動詞層44(RNIC/IB適配器驅(qū)動器)包括將操作系統(tǒng)8與適配器24接口的設(shè)備驅(qū)動器。響應(yīng)于來自iSER層22或SDP層42中的函數(shù)的訪問以聲明或登記存儲位置例如存儲區(qū)或窗口,適配器驅(qū)動器44將訪問適配器24。
RDMA層26保存存儲轉(zhuǎn)換表34,并且當(dāng)?shù)怯洿鎯^(qū)域時,將標(biāo)識所登記存儲區(qū)域和產(chǎn)生來索引該存儲區(qū)域的STag/#_key以允許RDMA層26將STag/#_key與存儲區(qū)域關(guān)聯(lián)的條目添加到存儲轉(zhuǎn)換表34中。存儲轉(zhuǎn)換表34可以保存于適配器24的緩沖區(qū)中或存儲器30中。Stag/#_Key將返回給請求登記的iSER層22函數(shù)以用于I/O操作。
在適配器24產(chǎn)生并返回Stag/#_Key到iSER層22之后,iSER層22可以進行I/O操作。iSER層22用頭信息和從適配器24接收的STag/R_Key包裝從iSCSI層18接收的分組,并將分組傳遞到適配器24以傳送。
為了管理RDMA數(shù)據(jù)傳送,RDMA層26保存發(fā)送隊列36、接收隊列38,以及完成隊列40。發(fā)送隊列36和接收隊列38包括RDMA層26用來管理RDMA數(shù)據(jù)傳送請求的工作隊列。完成隊列40可以包括具有完成條目的包含一個或多個條目的可共享隊列,以為多個工作隊列提供單點的完成通知。隊列36,38和40可以具有許多實例,可能對應(yīng)每個邏輯連接,并且可以由適配器24分配于存儲器30中或適配器24中的緩沖器內(nèi)。
圖3說明與實施方案一起使用的傳送包的格式。由SCSI層16產(chǎn)生的SCSI命令50(例如讀或?qū)懨?由iSCSI層18封裝于iSCSI協(xié)議數(shù)據(jù)單元(PDU)52中,協(xié)議數(shù)據(jù)單元52由iSER層22中的函數(shù)進一步封裝于iSER頭54中。包含SCSI命令50的iSCSI PDU 52還包括與根本的SCSI命令關(guān)聯(lián)的、iSCSI層18分配給每個已發(fā)出的iSCSI任務(wù)的起始任務(wù)標(biāo)簽(ITT)56,以標(biāo)識根本的SCSI I/O操作。ITT 56唯一地標(biāo)識任務(wù)會話寬。當(dāng)目標(biāo)節(jié)點應(yīng)答來自起始的請求時,ITT 56用來在iSCSI層18處將應(yīng)答與原始請求關(guān)聯(lián)。例如,當(dāng)目標(biāo)已完成操作并返回操作狀態(tài)時發(fā)送的、在來自目標(biāo)iSCSI層18的iSCSI SCSI應(yīng)答PDU中的ITT 56由起始iSCSI層18用來將目標(biāo)的PDU與原始SCSI寫命令相關(guān)聯(lián)。
iSER頭54將包括與I/O操作一起使用的Stag/R_Key以及指示接收廣告Stag/R_Key的遠程節(jié)點是否讀或?qū)懹蒘tag/R_Key索引的存儲區(qū)域(窗口)以及與請求相關(guān)的工作隊列的信息。iSER頭54和iSCSIPDU52進一步封裝于一個或多個附加網(wǎng)絡(luò)層60例如TCP層或無限帶寬網(wǎng)絡(luò)協(xié)議層中。在某些實施方案中,適配器24中的網(wǎng)絡(luò)層28將iSER頭54和PDU52組裝于網(wǎng)絡(luò)層60例如TCP、IB等中。
iSER層22還保存ITT到Stag/#_Key的映射70(圖2)于存儲器30中,映射70將代表iSCSI任務(wù)的ITT與用于傳送該任務(wù)的數(shù)據(jù)的STag/#_key例如讀或?qū)慡tag/R_Key關(guān)聯(lián),以使得目標(biāo)節(jié)點通過RDMA通道讀或?qū)憯?shù)據(jù)。圖4說明映射70中的條目72的內(nèi)容,包括指示映射是對于本地STag/L_key還是遠程Stag/R_key的本地/遠程指示符73。本地映射條目將索引本地存儲窗口或區(qū)域的Stag/L_Key與用來存儲(或取回)與I/O命令本地相關(guān)的數(shù)據(jù)的ITT關(guān)聯(lián),并且遠程映射條目將遠程節(jié)點上索引存儲區(qū)域或窗口的STag/R_key與數(shù)據(jù)從中讀出或傳送到本地存儲區(qū)域或窗口的ITT關(guān)聯(lián)。映射條目72還包括代表iSCSI任務(wù)的相關(guān)ITT74、與該任務(wù)關(guān)聯(lián)的Stag/#_Key76,以及關(guān)于任務(wù)的狀態(tài)信息78。
圖5a,5b,6a,6b,7和8說明根據(jù)所描述的實施方案處理SCSI寫命令的操作。圖5a和5b說明由起始節(jié)點2中的部件實施以連接包括RNIC或無限帶寬適配器24的為起始節(jié)點2使用RDMA的目標(biāo)節(jié)點的操作。參考圖5a,控制在方框100處開始,其中iSCSI層18連系套接字層20以與目標(biāo)節(jié)點通信并“登錄”新的iSCSI連接并與目標(biāo)節(jié)點協(xié)商各種參數(shù)。起始和目標(biāo)節(jié)點都可以包括圖2中所示的體系結(jié)構(gòu)并包括相配的RNIC和/或無限帶寬適配器。然后在起始節(jié)點中執(zhí)行的操作取決于起始節(jié)點2包括RNIC還是無限帶寬適配器24。如所討論的,起始節(jié)點2可以基于安裝于起始節(jié)點2中的適配器24的類型裝載通信所需的層和代碼。例如,如果節(jié)點包括無限帶寬適配器,那么節(jié)點將裝載SDP層42,反之如果節(jié)點僅包括RNIC適配器,那么SDP層42可以不被裝載。如果(在方框102處)iSCSI層18通過RNIC適配器24連接,那么套接字層20通過RNIC適配器24中的TCP28連網(wǎng)函數(shù)通信(在方框104處)以傳遞iSCSI消息到目標(biāo)節(jié)點并通過套接字層20將接收到的應(yīng)答傳遞回iSCSI層18。否則,如果(在方框102處)iSCSI層18通過無限帶寬適配器24連接,套接字層20通過SDP層42通信(在方框106處)以傳遞iSCSI消息到目標(biāo)節(jié)點并通過套接字層20將接收到的應(yīng)答傳遞回iSCSI層18。SDP層42創(chuàng)建(在方框108處)RDMA連接例如隊列對36,38、完成隊列40等的數(shù)據(jù)結(jié)構(gòu),然后通過無限帶寬適配器24和無限帶寬網(wǎng)絡(luò)4發(fā)送消息到目標(biāo)或者從那里接收消息。
如果(在方框110處)起始節(jié)點2不愿意通過RNIC或無限帶寬適配器24中的連網(wǎng)層建立與遠程節(jié)點的RDMA會話,那么起始節(jié)點2將斷開協(xié)商連接并試圖(在方框112處)定位其他RDMA可兼容目標(biāo)節(jié)點。否則,如果(在方框110處)RDMA會話是可接受的,那么(在方框114處)SDP層42(對于無限帶寬適配器24)或網(wǎng)絡(luò)層28(對于RNIC適配器)(在方框114處)返回來自目標(biāo)節(jié)點的應(yīng)答,并繼續(xù)允許iSCSI層使用套接字APl以觸發(fā)RNIC連網(wǎng)層28或SDP層42,以和目標(biāo)一起發(fā)送和接收另外的登錄請求和登錄應(yīng)答消息。
參考圖5b,在建立登錄參數(shù)之后,起始iSCSI層18通過對于RNIC適配器24由連網(wǎng)層(例如TCP)或者對于無限帶寬適配器由SDP層42處理的套接字調(diào)用發(fā)送(在方框116處)最后登錄請求PDU給目標(biāo)節(jié)點。當(dāng)接收到(在方框118處)來自目標(biāo)的最后登錄應(yīng)答PDU時,iSCSI層18使用iSER原語調(diào)用iSER層22,并傳送其套接字信息句柄(指向RNIC適配器24的連網(wǎng)層28的控制結(jié)構(gòu)或無限帶寬適配器的SDP RDMA控制結(jié)構(gòu))。然后iSER層22接管(在方框120處)套接字控制結(jié)構(gòu)并為iSER/RDMA操作配置及修改它們。在無限帶寬適配器24的情況下,iSER層22發(fā)出(在方框122處)特定調(diào)用以終止SDP會話并允許iSER層22之后擁有及使用原來由SDP使用的RDMA通信通道(隊列對、完成隊列等)。然后對于與目標(biāo)節(jié)點的所有將來通信,iSCSI層用iSER層通過RDMA通信(在方框124處)。
圖6a和6b說明由可具有節(jié)點2的體系結(jié)構(gòu)(圖2)的目標(biāo)節(jié)點中的部件實施以連接使用RDMA的起始節(jié)點的操作,其中目標(biāo)節(jié)點2包括RNIC或無限帶寬適配器24。關(guān)于圖2描述的體系結(jié)構(gòu)用來描述起始和目標(biāo)節(jié)點兩者中的部件。參考圖6a,目標(biāo)節(jié)點iSCSI層20通過套接字調(diào)用允許(在方框150處)監(jiān)聽端口以等待來自起始節(jié)點的聯(lián)系。套接字層20或者通過使用RNIC適配器24中的連網(wǎng)層28(例如TCP)或者通過使用在無限帶寬網(wǎng)絡(luò)上通信的無限帶寬適配器的SDP42來允許該聯(lián)系。當(dāng)從起始節(jié)點iSCSI層18通過相同的套接字接口聯(lián)系(在方框152處)時,目標(biāo)節(jié)點與起始節(jié)點協(xié)商以獲得一致,以進行RDMA連接。如果(在方框154處)RDMA連接沒被批準(zhǔn),那么目標(biāo)節(jié)點斷開協(xié)商連接并繼續(xù)等待(在方框156處)直到建立另一個連接。否則,如果RDMA連接被批準(zhǔn),那么目標(biāo)節(jié)點處的RNIC連網(wǎng)層28例如TCP或SDP層42通過套接字API將來自起始節(jié)點的應(yīng)答返回(在方框160處)到iSCSI層18,并繼續(xù)允許iSCSI層使用套接字APl來觸發(fā)RNIC連網(wǎng)層或SDP層,以和起始節(jié)點一起接收和發(fā)送另外的登錄請求和登錄應(yīng)答消息。當(dāng)接收到來自起始的最后登錄請求時,目標(biāo)iSCSI層18(在方框162處)使用iSER原語調(diào)用iSER層22并傳送其套接字信息句柄(指向RNIC適配器的連網(wǎng)層28的控制結(jié)構(gòu)或者SDP控制結(jié)構(gòu))和最后登錄應(yīng)答消息。
參考圖6b,在iSCSI調(diào)用iSER層22之后,iSER層22(在方框164處)接管連接并建立iSER RDMA通信通道。對于RNIC適配器24,連接信息是連網(wǎng)層28例如TCP先前所建立的,對于無限帶寬適配器24,連接信息包括由SDP層42創(chuàng)建及使用的RDMA連接和數(shù)據(jù)結(jié)構(gòu)。在RDMA RNIC或無限帶寬適配器任一種的情況下,數(shù)據(jù)/控制結(jié)構(gòu)被修改以允許iSER/RDMA操作。對于無限帶寬適配器24,iSER層22發(fā)出(在方框166處)特定調(diào)用以終止SDP會話并接管來自SDP層42的RDMA通信。在通信過程完全轉(zhuǎn)換到iSER RDMA模式之前(在方框168處),由目標(biāo)iSCSI發(fā)送給iSER的“最后”登錄應(yīng)答PDU將被發(fā)送給起始節(jié)點,作為在先前連接模式(例如TCP/IP或SDP/IB)上發(fā)送的最后信息。然后對于起始節(jié)點的所有將來的交互,iSCSI層通過使用RDMA的iSER層通信(在方框170處)。
圖7說明當(dāng)SCSI命令完成并且接收到來自具有能夠發(fā)送“無效發(fā)送消息”的RDMA適配器的目標(biāo)節(jié)點的“無效發(fā)送”消息時由起始節(jié)點2執(zhí)行的操作。當(dāng)接收到(在方框200處)“無效發(fā)送”消息時,如果適配器24支持“無效發(fā)送”,那么適配器24使消息中指定的STag/R_key無效(在方框202處),其中STag可以在RDMA頭中。如果起始節(jié)點不支持“無效發(fā)送”,這可能當(dāng)無限帶寬適配器24時發(fā)生,那么消息轉(zhuǎn)發(fā)給iSER層22來處理。起始iSER層22接收(在方框204處)應(yīng)答PDU并訪問來自消息的ITT56(圖3),以確定與ITT/STag映射70中的所訪問ITT關(guān)聯(lián)的STag或R_Key。如果(在方框206處)“無效發(fā)送”消息中的STag/R_key匹配ITT/STag映射70中的STag/R_Key并且起始的適配器支持自動無效,那么起始iSER層22使得與映射70中的ITT關(guān)聯(lián)的沒有被適配器宣告無效的任何另外的STag/#_Key無效(方框208處)。如果適配器不支持自動無效或者如果“無效發(fā)送”中的STag/R_key不匹配映射70中的一個STag/R_key,那么iSER層22直接調(diào)用(在方框210處)適配器,使該Stag/R_key以及與映射70中的ITT關(guān)聯(lián)的任何另外的Stag/#Key無效。然后iSER層22傳送(在方框212處)SCSI應(yīng)答PDU給iSCSI層18并整理其ITT/Stag/#_Key映射表70。然后iSCSI層118通知SCSI層16操作的完成狀態(tài)。
圖8說明當(dāng)SCSI命令完成并且接收到來自具有無限帶寬適配器24的目標(biāo)節(jié)點的“立即數(shù)據(jù)發(fā)送”消息時由起始節(jié)點2執(zhí)行的操作。當(dāng)起始適配器24(無限帶寬或RNIC)接收到(在方框250處)來自目標(biāo)無限帶寬適配器的“立即數(shù)據(jù)發(fā)送”消息或“發(fā)送”消息時,消息由起始適配器24傳送到iSER層22,并且iSER層訪問適配器24以使消息的“立即數(shù)據(jù)”部分中的R_Key無效,如果有的話。然后iSER層22促使適配器24使與映射70中的ITT關(guān)聯(lián)的先前沒有宣告無效的任何#_Key/SIag無效(在方框254處)。iSER層22傳送(在方框256處)SCSI應(yīng)答PDU給iSCSI層18并整理其ITT/Stag/#_Key映射表70。然后iSCSI層18通知SCSI層16操作的完成狀態(tài)。
協(xié)議網(wǎng)關(guān)圖9、10、11a和11b說明網(wǎng)關(guān)302,322,352和354如何可以用來在節(jié)點之間傳送消息。每個網(wǎng)關(guān)302,322,352和354可以包括目標(biāo)和起始通過它傳送消息的轉(zhuǎn)發(fā)硬件設(shè)備例如交換機,路由器等。網(wǎng)關(guān)302,322,352和354包括協(xié)議轉(zhuǎn)換器314,334,362和364,以處理在起始和目標(biāo)節(jié)點之間發(fā)送的、從一個協(xié)議發(fā)送到另一個的消息。可選地,網(wǎng)關(guān)302可以在目標(biāo)節(jié)點或起始節(jié)點硬件中實施。網(wǎng)關(guān)302,322,352和354還包括提供以一個協(xié)議例如無限帶寬到另一個協(xié)議例如iWARP的消息之間的協(xié)議映射316,336,353和365。
圖9說明實施使用iWARP的iSCSI/iSER360并包括RNIC310以使用iWARP協(xié)議傳送消息的目標(biāo)節(jié)點300。網(wǎng)關(guān)302接收從iWARP網(wǎng)絡(luò)上的目標(biāo)節(jié)點300指向?qū)嵤┦褂脽o限帶寬的iSCSI/iSER協(xié)議308并具有無限帶寬適配器312的起始節(jié)點304的消息。協(xié)議轉(zhuǎn)換器314將iWARP消息轉(zhuǎn)換成符合無限帶寬協(xié)議的與無限帶寬適配器312可兼容的消息。
圖10說明實施使用無限帶寬的iSCSI/iSER326并包括無限帶寬適配器330以使用無限帶寬協(xié)議傳送消息的目標(biāo)節(jié)點320。網(wǎng)關(guān)322接收從無限帶寬中的目標(biāo)節(jié)點320指向?qū)嵤┦褂胕WARP的iSCSI/iSER協(xié)議328并具有RNIC332的起始節(jié)點324的消息。協(xié)議轉(zhuǎn)換器334將無限帶寬消息轉(zhuǎn)換成符合iWARP協(xié)議的與使用iWARP協(xié)議操作的RNIC適配器332可兼容的消息。
圖11a說明其中網(wǎng)關(guān)352和354合作以將來自目標(biāo)節(jié)點350的iSER/IB消息傳送到起始節(jié)點356同時轉(zhuǎn)換消息以供在中間iWARP網(wǎng)絡(luò)上傳送的實施方案。接收來自目標(biāo)350的無限帶寬消息的目標(biāo)網(wǎng)關(guān)352將消息轉(zhuǎn)換成與iWARP協(xié)議可兼容的格式并發(fā)送轉(zhuǎn)換后的消息到iWARP網(wǎng)絡(luò)上的起始網(wǎng)關(guān)354。接收來自目標(biāo)網(wǎng)關(guān)352的iWARP消息的起始網(wǎng)關(guān)354將消息轉(zhuǎn)換成與起始節(jié)點356處所使用的無限帶寬協(xié)議可兼容的格式,然后發(fā)送轉(zhuǎn)換后的消息到起始節(jié)點356。以這種方式,網(wǎng)關(guān)352和354用來轉(zhuǎn)換消息,以便通過在使用無限帶寬協(xié)議并包括使用無限帶寬的iSCSI/iSER358,366和無限帶寬適配器360,368的兩個節(jié)點350和356之間的iWARP網(wǎng)絡(luò)傳送。此外,在可選實施方案中,在起始和目標(biāo)節(jié)點之間可以有執(zhí)行許多消息轉(zhuǎn)換以供不同的可能通信協(xié)議使用的許多網(wǎng)關(guān)。
圖11b說明其中兩個網(wǎng)關(guān)372和374合作以將來自目標(biāo)節(jié)點370的iSER/iWARP消息傳送到起始節(jié)點376同時轉(zhuǎn)換消息以供在中間無限帶寬網(wǎng)絡(luò)上傳送的實施方案。接收來自目標(biāo)節(jié)點370的iWARP消息的目標(biāo)網(wǎng)關(guān)372將消息轉(zhuǎn)換成與無限帶寬協(xié)議可兼容的格式并發(fā)送轉(zhuǎn)換后的消息到無限帶寬網(wǎng)絡(luò)上的起始網(wǎng)關(guān)374。接收來自目標(biāo)網(wǎng)關(guān)372的無限帶寬消息的起始網(wǎng)關(guān)374將消息轉(zhuǎn)換成與起始節(jié)點376處所使用的iWARP協(xié)議可兼容的格式,然后發(fā)送轉(zhuǎn)換后的消息到iWARP網(wǎng)絡(luò)上的起始376。以這種方式,網(wǎng)關(guān)372和374用來轉(zhuǎn)換消息,以便通過在使用iWARP協(xié)議并且包括使用iWARP的iSCSI/iSER 378,390和iWARP適配器380,392的兩個節(jié)點370和376之間的無限帶寬網(wǎng)絡(luò)傳送。此外,在可選實施方案中,在起始和目標(biāo)節(jié)點之間可以有執(zhí)行許多消息轉(zhuǎn)換以供不同的可能通信協(xié)議使用的許多網(wǎng)關(guān)。
圖9、10、11a和11b顯示從目標(biāo)節(jié)點流到起始節(jié)點的消息。但是,消息流可以從起始進行到目標(biāo)節(jié)點,或者在任何兩個類型的節(jié)點之間。例如,在這一點上圖11a的網(wǎng)關(guān)352和354可以重復(fù),并且圖11b中的網(wǎng)關(guān)372和374可以重復(fù)。
圖12、13和14說明由協(xié)議轉(zhuǎn)換器314(圖9),334(圖10),362(圖11a),364,382(圖11b)和386執(zhí)行的以將消息從傳送消息的節(jié)點所使用的格式轉(zhuǎn)換成實施不同于傳送消息的節(jié)點所使用協(xié)議的、與接收消息的節(jié)點可兼容的格式的操作。參考圖12,協(xié)議轉(zhuǎn)換器314,334,362,364,382和386(網(wǎng)關(guān))接收(在方框400處)來自目標(biāo)節(jié)點(或通過另一網(wǎng)關(guān)節(jié)點來自目標(biāo)節(jié)點)的iSCSI/iSER消息。如果(在方框402處)消息來自使用iSER/iWARP的目標(biāo)節(jié)點(或目標(biāo)的網(wǎng)關(guān))并且如果(在方框408處)iWARP消息類型映射到等價的無限帶寬消息,那么協(xié)議轉(zhuǎn)換器314,364或382將iWARP消息轉(zhuǎn)換成(在方框410處)等價的無限帶寬消息并將轉(zhuǎn)換后的無限帶寬消息轉(zhuǎn)發(fā)到無限帶寬網(wǎng)絡(luò)上的起始節(jié)點例如304或356(或隨后的網(wǎng)關(guān))。協(xié)議映射316,336,353,365,384和388可以為協(xié)議轉(zhuǎn)換器314,334,362,364,382和386提供以不同格式例如無限帶寬和iWARP的等價消息對,它們可以保存iWARP到無限帶寬(以及無限帶寬到iWARP)消息類型的映射,使得協(xié)議映射指示以一個協(xié)議格式的消息如何可以被轉(zhuǎn)換并映射其他協(xié)議格式。如果(在方框408處)iWARP消息類型不映射到等價的無限帶寬消息并且如果(在方框412處)消息不是具有STag的iWARP無效發(fā)送消息,那么協(xié)議轉(zhuǎn)換器314,364或382丟棄(在方框414處)消息并拋出錯誤,因為這種轉(zhuǎn)換不由協(xié)議轉(zhuǎn)換器314,364或382處理。
如果(在方框412處)消息是具有STag的iWARP“無效發(fā)送消息”,那么協(xié)議轉(zhuǎn)換器314,364或382創(chuàng)建(在方框416處)無限帶寬“有(或無)請求事件發(fā)送”消息。協(xié)議轉(zhuǎn)換器314,364或382將索引目標(biāo)或起始中存儲位置的直接參考的、來自iWARP消息的STag添加(在方框418處)到無限帶寬消息中的立即數(shù)據(jù)域(可選地,丟棄STag并準(zhǔn)備無任何立即數(shù)據(jù)發(fā)送)。協(xié)議轉(zhuǎn)換器314,364或382傳送(在方框420處)轉(zhuǎn)換后的消息到無限帶寬網(wǎng)絡(luò)上的起始節(jié)點(或隨后的網(wǎng)關(guān))。從方框410或420,控制進行到方框422,其中如果有隨后的網(wǎng)關(guān),那么通過執(zhí)行從圖13中的方框440開始的操作,這種網(wǎng)關(guān)將iSER/IB消息轉(zhuǎn)換成iSER/iWARP。
如果(在方框402處)來自目標(biāo)節(jié)點的消息是以無限帶寬協(xié)議的,那么控制進行到圖13中的方框440。如果(在方框440處)傳輸在到達起始節(jié)點之前在iWARP網(wǎng)絡(luò)上繼續(xù)到網(wǎng)關(guān)例如網(wǎng)關(guān)352,并且如果(在方框442處)無限帶寬消息類型映射到協(xié)議映射353中的等價iWARP消息,那么協(xié)議轉(zhuǎn)換器362將無限帶寬消息轉(zhuǎn)換成(在方框444處)等價的iWARP消息并將轉(zhuǎn)換后的消息在iWARP上轉(zhuǎn)發(fā)到下一個網(wǎng)關(guān)354。如果(在方框442處)無限帶寬消息類型不映射到協(xié)議映射353中的等價iWARP消息,并且如果(在方框446處)消息不是無限帶寬“立即數(shù)據(jù)發(fā)送”消息,那么錯誤被拋出(在方框448處)并且消息被丟棄。
如果(在方框446處)消息是無限帶寬“立即數(shù)據(jù)發(fā)送”消息,那么協(xié)議轉(zhuǎn)換器362創(chuàng)建(在方框450處)iWARP無效(或請求事件)發(fā)送消息并將來自無限帶寬消息中的立即數(shù)據(jù)域的R_Key添加(在方框452處)到iWARP“無效發(fā)送消息”中的STag域(可選地,丟棄R_Key(立即數(shù)據(jù))并建立無STag的發(fā)送消息)。協(xié)議轉(zhuǎn)換器362將轉(zhuǎn)換后的消息傳送(在方框454處)到iWARP網(wǎng)絡(luò)上的網(wǎng)關(guān)354,如圖11a中所示。從方框454或444,隨后的網(wǎng)關(guān)可以通過執(zhí)行從方框400開始的操作將iSER/iWARP消息轉(zhuǎn)換成iSER/無限帶寬消息。
如果(在方框440處)來自目標(biāo)節(jié)點的無限帶寬傳輸在到達起始節(jié)點之前不在iWARP網(wǎng)絡(luò)上繼續(xù)到網(wǎng)關(guān)(即無限帶寬消息將穿過iWARP網(wǎng)絡(luò)上的網(wǎng)關(guān)322或374直接繼續(xù)到起始324或376,如分別在圖10和圖11b中所示),那么控制進行到圖14中的方框480。如果(在方框480處)無限帶寬消息類型映射到等價的iWARP消息,那么協(xié)議轉(zhuǎn)換器334或386將無限帶寬消息轉(zhuǎn)換成(在方框486處)等價的iWARP消息并在iWARP上轉(zhuǎn)發(fā)給起始節(jié)點。如果(在方框480處)無限帶寬消息類型不映射到協(xié)議映射336或388中的等價iWARP消息,并且如果(在方框488處)消息不是無限帶寬“立即數(shù)據(jù)發(fā)送”消息,那么錯誤被拋出(在方框490處),并且消息被丟棄。
如果(在方框488處)消息是無限帶寬立即數(shù)據(jù)發(fā)送消息,那么協(xié)議轉(zhuǎn)換器334或386創(chuàng)建(在方框492處)iWARP無效(請求事件)發(fā)送消息并將來自無限帶寬消息中的立即數(shù)據(jù)域的R_Key添加(在方框494處)到iWARP無效發(fā)送消息中的STag域中(可選地,丟棄R_Key(立即數(shù)據(jù))并建立無STag的發(fā)送消息)。協(xié)議轉(zhuǎn)換器334或386將轉(zhuǎn)換后的消息傳送(在方框496處)到iWARP網(wǎng)路上的起始節(jié)點,如圖10或11b中所示。
所描述的實施方案提供一種通過處理并且如果需要時將消息轉(zhuǎn)換成與接收節(jié)點所使用的通信協(xié)議可兼容的格式來允許消息在使用不同傳輸協(xié)議的網(wǎng)絡(luò)之間傳送的技術(shù)。
另外的實施方案細節(jié)這里所描述的實施方案可以使用制造軟件、固件、硬件或其任意組合的標(biāo)準(zhǔn)編程和/或工程技術(shù)實施為一種方法、裝置或制造產(chǎn)品。這里所使用的術(shù)語“制造產(chǎn)品”指的是在硬件邏輯(例如集成電路芯片、可編程門陣列(PGA)、專用集成電路(ASIC)等)或計算機可讀媒介,例如磁性存儲媒介(例如硬盤驅(qū)動器、軟盤、磁帶等)、光存儲器(CD-ROM、光盤等)、易失性和非易失性存儲設(shè)備(例如EEPROM、ROM、PROM、RAM、DRAM、SRAM、固件、可編程邏輯等)中實施的代碼或邏輯。計算機可讀媒介中的代碼由處理器訪問并執(zhí)行。實施優(yōu)選實施方案的代碼還可以通過傳輸媒介或從網(wǎng)絡(luò)上的文件服務(wù)器訪問。在這些情況下,實施代碼的制造產(chǎn)品可以包括傳輸媒介,例如網(wǎng)絡(luò)傳輸線、無限傳輸媒介、通過空間傳播的信號、無限電波、紅外信號等。因此,“制造產(chǎn)品”可以包括包含代碼的媒介。另外,“制造產(chǎn)品”可以包括其中代碼被包含、處理和執(zhí)行的硬件及軟件部件的組合。當(dāng)然,本領(lǐng)域技術(shù)人員應(yīng)答認(rèn)識到,可以不背離本發(fā)明的范疇對該配置作許多修改,并且制造產(chǎn)品可以包括本領(lǐng)域中已知的任何信息承載媒介。
所描述的操作可以由電路系統(tǒng)執(zhí)行,其中“電路系統(tǒng)”指的是硬件或軟件或其組合。用于執(zhí)行所描述實施方案的操作的電路系統(tǒng)可以包括硬件設(shè)備,例如集成電路芯片、可編程門陣列(PGA)、專用集成電路(ASIC)等。電路系統(tǒng)也可以包括處理器部件例如集成電路,以及計算機可讀媒介例如存儲器中的代碼,其中代碼由處理器執(zhí)行,以進行所描述實施方案的操作。
在所描述的實施中,物理層使用以太網(wǎng)協(xié)議。在可選實施中,提供分組的鏈路到鏈路校驗求和/CRC(或其他數(shù)據(jù)檢測方案)的可選協(xié)議可以用來代替以太網(wǎng),例如串行高級技術(shù)附加(SATA)、無限帶寬、串行附加SCSI電纜等。
在所描述的實施中,傳輸層包括iSCSI協(xié)議。在可選實施中,本領(lǐng)域中已知的用于以分組傳送I/O命令并提供端到端校驗求和/CRC(或其他數(shù)據(jù)檢測方案)的其他協(xié)議也可以使用。
在所描述的實施中,被包裝的I/O命令包括SCSI命令。在可選實施中,命令可以是與SCSI不同的I/O命令格式,例如高級技術(shù)附加(ATA)。
在所描述的實施方案中,iSCSI層調(diào)用iSER層以訪問RDMA數(shù)據(jù)傳送能力。在另外的實施方案中,不同于iSCSI的數(shù)據(jù)傳輸協(xié)議層例如應(yīng)用或其他數(shù)據(jù)傳輸協(xié)議可以調(diào)用iSER層以訪問RDMA數(shù)據(jù)傳送能力。
在可選實施方案中,無限帶寬上IP協(xié)議(具有可靠連接-RC)可以代替SDP用來跨越無限帶寬網(wǎng)絡(luò)傳送使用協(xié)議例如TCP編碼的分組。關(guān)于無限帶寬上IP協(xié)議(具有可靠連接-RC)的更多細節(jié)在由IETF出版為“draft-kashyap-ipoib-connected-mode-01.txt”(2003年9月)的出版物“無限帶寬上IP連接模式”中描述,該出版物在此整體引入作為參考。例如,SDP層可以代替分層于IPoIB(RC)實施上方的TCP棧,并且該TCP/IPoIB組合的任何部分可以放置于結(jié)點2軟件或適配器24中。在這種實施方案中,IPolB(RC)函數(shù)可以根據(jù)IPolB(RC)規(guī)范調(diào)用所需的RDMA層26。
在另外的實施方案中,不同于TCP的協(xié)議可以用來在允許IP的網(wǎng)絡(luò)上傳送分組,例如流控制傳輸協(xié)議(SCTP),該協(xié)議在出版物“流控制傳輸協(xié)議”,RFC 2960(以太網(wǎng)協(xié)會,2000)中定義,該出版物在此整體引入作為參考。
圖5a、5b、6a、6b、7和8描述以特定順序發(fā)生的特定操作。在可選實施中,某些操作可以以不同的順序執(zhí)行、修改或移除。此外,步驟可以添加到上述邏輯,而仍然符合所描述的實施。此外,這里所描述的操作可以順序地發(fā)生或者某些操作可以并行處理。此外,操作可以由單個處理單元或者由分布式處理單元執(zhí)行。
前面實施的描述已為了說明及描述的目的而提供。這不打算是排他性的或?qū)⒈景l(fā)明限制于所描述的精確形式。根據(jù)上面的講授許多修改和變化是可能的。打算是本發(fā)明的范疇不是由本詳細說明書而是由這里附加的權(quán)利要求所限定。上面的說明書、例子和數(shù)據(jù)提供本發(fā)明的組成部分的制造及使用的完整描述。因為可以不背離本發(fā)明的本質(zhì)和范疇而進行本發(fā)明的許多實施,本發(fā)明屬于下文所附加的權(quán)利要求。
權(quán)利要求
1.一種在本地節(jié)點實施以與遠程節(jié)點通信的制造產(chǎn)品,其中制造產(chǎn)品可以執(zhí)行操作,所述操作包括使用第一通信協(xié)議與遠程節(jié)點通信以建立第二通信協(xié)議的連接;創(chuàng)建數(shù)據(jù)結(jié)構(gòu)以允許與遠程節(jié)點的通信,以建立第二通信協(xié)議的與遠程節(jié)點的連接;調(diào)用第二通信協(xié)議的擴展層;以及傳送數(shù)據(jù)結(jié)構(gòu)到擴展層以用于使用第二通信協(xié)議與遠程節(jié)點通信。
2.根據(jù)權(quán)利要求1的制造產(chǎn)品,其中用以建立連接的與遠程節(jié)點的通信通過套接字層來進行。
3.根據(jù)權(quán)利要求1的制造產(chǎn)品,其中第一通信協(xié)議包括用來與遠程節(jié)點通信的在RNIC適配器中實施的連網(wǎng)層,其中第二通信協(xié)議包括RDMA協(xié)議,并且其中擴展層包括使用RDMA協(xié)議處理與遠程節(jié)點的通信的iSER層。
4.根據(jù)權(quán)利要求1的制造產(chǎn)品,其中用以建立連接的與遠程節(jié)點的通信使用利用第二通信協(xié)議通信的接口協(xié)議來進行,其中接口協(xié)議創(chuàng)建第二通信協(xié)議的數(shù)據(jù)結(jié)構(gòu),還包括通過擴展層協(xié)議發(fā)出調(diào)用以終止接口協(xié)議,其中擴展層使用由接口協(xié)議創(chuàng)建的數(shù)據(jù)結(jié)構(gòu)與遠程節(jié)點通信。
5.根據(jù)權(quán)利要求4的制造產(chǎn)品,其中第一通信協(xié)議包括套接字層,其中第二通信協(xié)議包括RDMA協(xié)議,其中接口協(xié)議包括SDP層或分層于IPoIB(RC)上的TCP,其中擴展層包括使用RDMA協(xié)議處理與遠程節(jié)點的通信的iSER層,并且其中無限帶寬適配器用來與遠程節(jié)點通信。
6.根據(jù)權(quán)利要求1的制造產(chǎn)品,其中本地節(jié)點包括起始節(jié)點并且遠程節(jié)點包括目標(biāo)節(jié)點,其中當(dāng)接收到來自目標(biāo)節(jié)點的用以建立連接的最后應(yīng)答時擴展層被調(diào)用,其中用以終止接口協(xié)議的調(diào)用響應(yīng)于調(diào)用擴展層而發(fā)出。
7.根據(jù)權(quán)利要求6的制造產(chǎn)品,其中除了響應(yīng)于調(diào)用擴展層之外用以終止接口協(xié)議的調(diào)用響應(yīng)于使用接口協(xié)議將最后應(yīng)答消息發(fā)送到目標(biāo)節(jié)點而發(fā)出。
8.根據(jù)權(quán)利要求1的制造產(chǎn)品,其中本地節(jié)點包括起始節(jié)點并且遠程節(jié)點包括目標(biāo)節(jié)點,并且其中起始節(jié)點還執(zhí)行通過起始節(jié)點適配器接收來自目標(biāo)節(jié)點的能夠包括使對存儲位置的直接索引無效的消息,其中直接索引與第二通信協(xié)議可兼容,并且其中起始適配器不允許索引的直接無效;響應(yīng)于確定直接索引不匹配映射中的一個索引而調(diào)用起始適配器以使直接索引無效;以及響應(yīng)于確定直接索引不匹配映射中的一個索引或沒有提供直接索引使與包含于使無效信息中的間接索引關(guān)聯(lián)的、在映射中指示的至少一個直接索引無效。
9.根據(jù)權(quán)利要求8的制造產(chǎn)品,其中擴展層執(zhí)行調(diào)用適配器以使直接索引無效以及使與使無效消息中的間接索引關(guān)聯(lián)的至少一個索引無效的操作。
10.根據(jù)權(quán)利要求9的制造產(chǎn)品,其中擴展層包括iSER層,其中目標(biāo)節(jié)點包括RNIC或無限帶寬適配器,并且其中被調(diào)用的起始適配器包括RNIC或無限帶寬適配器。
11.根據(jù)權(quán)利要求10的制造產(chǎn)品,其中本地節(jié)點包括目標(biāo)節(jié)點并且遠程節(jié)點包括起始節(jié)點,其中擴展層響應(yīng)于接收到來自起始節(jié)點的最后登錄請求而被調(diào)用。
12.根據(jù)權(quán)利要求11的制造產(chǎn)品,其中目標(biāo)節(jié)點還執(zhí)行使用第一通信協(xié)議發(fā)送最后登錄應(yīng)答給起始節(jié)點,其中數(shù)據(jù)結(jié)構(gòu)在發(fā)送最后登錄請求之后被傳送到擴展層。
13.根據(jù)權(quán)利要求8的制造產(chǎn)品,其中間接索引包括ITT,并且其中直接索引包括STag或R_Key。
14.一種在本地節(jié)點中實施以與遠程節(jié)點通信的系統(tǒng),包括(a)計算機可讀媒介;(b)代碼,包括(i)第一通信協(xié)議;(ii)第二通信協(xié)議;(iii)第二通信協(xié)議的擴展層;(c)本地節(jié)點處的電路系統(tǒng),其與計算機可讀媒介通信,能夠(i)使用第一通信協(xié)議與遠程節(jié)點通信以建立第二通信協(xié)議的連接;(ii)在計算機可讀媒介中創(chuàng)建數(shù)據(jù)結(jié)構(gòu)以允許與遠程節(jié)點的通信以建立第二通信協(xié)議的與遠程節(jié)點的連接;(iii)調(diào)用第二通信協(xié)議的擴展層;以及(iv)將數(shù)據(jù)結(jié)構(gòu)傳送到擴展層以用于使用第二通信協(xié)議與遠程節(jié)點通信。
15.根據(jù)權(quán)利要求14的系統(tǒng),還包括套接字層,其中用以建立連接的與遠程節(jié)點的通信通過套接字層來進行。
16.根據(jù)權(quán)利要求14的系統(tǒng),其中第一通信協(xié)議包括用來與遠程節(jié)點通信的在RNIN適配器中實施的連網(wǎng)層,其中第二通信協(xié)議包括RDMA協(xié)議,并且其中擴展層包括使用RDMA協(xié)議處理與遠程節(jié)點的通信的iSER層。
17.根據(jù)權(quán)利要求14的系統(tǒng),其中用以建立連接的與遠程節(jié)點的通信使用利用第二通信協(xié)議通信的接口協(xié)議來進行,其中接口協(xié)議創(chuàng)建第二通信協(xié)議的數(shù)據(jù)接口,其中電路系統(tǒng)還允許通過擴展層協(xié)議發(fā)出調(diào)用以終止接口協(xié)議,其中擴展層使用由接口協(xié)議創(chuàng)建的數(shù)據(jù)結(jié)構(gòu)來與遠程節(jié)點通信。
18.根據(jù)權(quán)利要求17的系統(tǒng),其中第一通信協(xié)議包括套接字層,其中第二通信協(xié)議包括RDMA協(xié)議,其中接口協(xié)議包括SDP層或分層于IPoIB(RC)上的TCP,其中擴展層包括使用RDMA協(xié)議來處理與遠程節(jié)點的通信的iSER層,并且其中無限帶寬適配器用來與遠程節(jié)點通信。
19.根據(jù)權(quán)利要求14的系統(tǒng),其中本地節(jié)點包括起始節(jié)點并且遠程節(jié)點包括目標(biāo)節(jié)點,其中當(dāng)接收到來自目標(biāo)節(jié)點的用以建立連接的最后應(yīng)答時擴展層被調(diào)用,其中用以終止接口協(xié)議的調(diào)用響應(yīng)于調(diào)用擴展層而發(fā)出。
20.根據(jù)權(quán)利要求19的系統(tǒng),其中除了響應(yīng)于調(diào)用擴展層之外用以終止接口協(xié)議的調(diào)用響應(yīng)于使用接口協(xié)議將最后應(yīng)答消息發(fā)送到目標(biāo)節(jié)點而發(fā)出。
21.根據(jù)權(quán)利要求14的系統(tǒng),其中本地節(jié)點包括起始節(jié)點并且遠程節(jié)點包括目標(biāo)節(jié)點,并且其中起始節(jié)點還執(zhí)行通過起始節(jié)點適配器接收來自目標(biāo)節(jié)點的能夠包括使對存儲位置的直接索引無效的消息,其中直接索引與第二通信協(xié)議可兼容,并且其中起始適配器不允許索引的直接無效;響應(yīng)于確定直接索引不匹配映射中的一個索引而調(diào)用起始適配器以使直接索引無效;以及響應(yīng)于確定直接索引不匹配映射中的一個索引或沒有提供直接索引使與包含于使無效信息中的間接索引關(guān)聯(lián)的、在映射中指示的至少一個直接索引無效。
22.根據(jù)權(quán)利要求21的系統(tǒng),其中擴展層執(zhí)行調(diào)用適配器以使直接索引無效以及使與使無效消息中的間接索引關(guān)聯(lián)的至少一個索引無效的操作。
23.根據(jù)權(quán)利要求22的系統(tǒng),其中擴展層包括iSER層,其中目標(biāo)節(jié)點包括RNIC或無限帶寬適配器,并且其中被調(diào)用的起始適配器包括RNIC或無限帶寬適配器。
24.根據(jù)權(quán)利要求23的系統(tǒng),其中本地節(jié)點包括目標(biāo)節(jié)點并且遠程節(jié)點包括起始節(jié)點,其中擴展層響應(yīng)于接收到來自起始節(jié)點的最后登錄請求而被調(diào)用。
25.根據(jù)權(quán)利要求24的系統(tǒng),其中目標(biāo)節(jié)點的電路系統(tǒng)還允許使用第一通信協(xié)議發(fā)送最后登錄應(yīng)答給起始節(jié)點,其中數(shù)據(jù)結(jié)構(gòu)在發(fā)送最后登錄應(yīng)答之后傳送到擴展層。
26.根據(jù)權(quán)利要求21的系統(tǒng),其中間接索引包括ITT,并且其中直接索引包括STag或R_Key。
27.一種在本地節(jié)點中執(zhí)行以與遠程節(jié)點通信的方法,包括使用第一通信協(xié)議與遠程節(jié)點通信以建立第二通信協(xié)議的連接;創(chuàng)建數(shù)據(jù)結(jié)構(gòu)以允許與遠程節(jié)點的通信,以建立第二通信協(xié)議的與遠程節(jié)點的連接;調(diào)用第二通信協(xié)議的擴展層;以及傳送數(shù)據(jù)結(jié)構(gòu)到擴展層以用于使用第二通信協(xié)議與遠程節(jié)點通信。
28.根據(jù)權(quán)利要求27的方法,其中用以建立連接的與遠程節(jié)點的通信通過套接字層來進行。
29.根據(jù)權(quán)利要求27的方法,其中第一通信協(xié)議包括用來與遠程節(jié)點通信的在RNIC適配器中實施的連網(wǎng)層,其中第二通信協(xié)議包括RDMA協(xié)議,并且其中擴展層包括使用RDMA協(xié)議處理與遠程節(jié)點的通信的iSER層。
30.根據(jù)權(quán)利要求27的方法,其中用以建立連接的與遠程節(jié)點的通信使用利用第二通信協(xié)議通信的接口協(xié)議來進行,其中接口協(xié)議創(chuàng)建第二通信協(xié)議的數(shù)據(jù)結(jié)構(gòu),還包括通過擴展層協(xié)議發(fā)出調(diào)用以終止接口協(xié)議,其中擴展層使用由接口協(xié)議創(chuàng)建的數(shù)據(jù)結(jié)構(gòu)與遠程節(jié)點通信。
31.根據(jù)權(quán)利要求30的方法,其中第一通信協(xié)議包括套接字層,其中第二通信協(xié)議包括RDMA協(xié)議,其中接口協(xié)議包括SDP層或分層于IPoIB(RC)上的TCP,其中擴展層包括使用RDMA協(xié)議處理與遠程節(jié)點的通信的iSER層,并且其中無限帶寬適配器用來與遠程節(jié)點通信。
32.根據(jù)權(quán)利要求27的方法,其中本地節(jié)點包括起始節(jié)點并且遠程節(jié)點包括目標(biāo)節(jié)點,其中當(dāng)接收到來自目標(biāo)節(jié)點的用以建立連接的最后應(yīng)答時擴展層被調(diào)用,其中用以終止接口協(xié)議的調(diào)用響應(yīng)于調(diào)用擴展層而發(fā)出。
33.根據(jù)權(quán)利要求27的方法,其中除了響應(yīng)于調(diào)用擴展層之外用以終止接口協(xié)議的調(diào)用響應(yīng)于使用接口協(xié)議將最后應(yīng)答消息發(fā)送到目標(biāo)節(jié)點而發(fā)出。
34.根據(jù)權(quán)利要求27的方法,其中本地節(jié)點包括起始節(jié)點并且遠程節(jié)點包括目標(biāo)節(jié)點,并且其中起始節(jié)點還執(zhí)行通過起始節(jié)點適配器接收來自目標(biāo)節(jié)點的能夠包括使對存儲位置的直接索引無效的消息,其中直接索引與第二通信協(xié)議可兼容,并且其中起始適配器不允許索引的直接無效;響應(yīng)于確定直接索引不匹配映射中的一個索引而調(diào)用起始適配器以使直接索引無效;以及響應(yīng)于確定直接索引不匹配映射中的一個索引或沒有提供直接索引使與包含于使無效信息中的間接索引關(guān)聯(lián)的、在映射中指示的至少一個直接索引無效。
35.根據(jù)權(quán)利要求34的方法,其中擴展層執(zhí)行調(diào)用適配器以使直接索引無效以及使與使無效消息中的間接索引關(guān)聯(lián)的至少一個索引無效的操作。
36.根據(jù)權(quán)利要求35的方法,其中擴展層包括iSER層,其中目標(biāo)節(jié)點包括RNIC或無限帶寬適配器,并且其中被調(diào)用的起始適配器包括RNIC或無限帶寬適配器。
37.根據(jù)權(quán)利要求36的方法,其中本地節(jié)點包括目標(biāo)節(jié)點并且遠程節(jié)點包括起始節(jié)點,其中擴展層響應(yīng)于接收到來自起始節(jié)點的最后登錄請求而被調(diào)用。
38.根據(jù)權(quán)利要求37的方法,其中目標(biāo)節(jié)點還執(zhí)行使用第一通信協(xié)議發(fā)送最后登錄應(yīng)答給起始節(jié)點,其中數(shù)據(jù)結(jié)構(gòu)在發(fā)送最后登錄請求之后被傳送到擴展層。
39.根據(jù)權(quán)利要求34的方法,其中間接索引包括ITT,并且其中直接索引包括STag或R_Key。
全文摘要
本發(fā)明提供一種在本地節(jié)點處執(zhí)行以與遠程節(jié)點通信的方法、系統(tǒng)及程序。第一通信協(xié)議用來與遠程節(jié)點通信,以建立第二通信協(xié)議的連接。數(shù)據(jù)結(jié)構(gòu)被創(chuàng)建以允許與遠程節(jié)點的通信,以建立第二通信協(xié)議的與遠程節(jié)點的連接。擴展層對于第二通信協(xié)議被調(diào)用。數(shù)據(jù)結(jié)構(gòu)傳送到擴展層,以用于使用第二通信協(xié)議與遠程節(jié)點通信。
文檔編號H04L12/28GK1722732SQ20051008461
公開日2006年1月18日 申請日期2005年7月15日 優(yōu)先權(quán)日2004年7月16日
發(fā)明者約翰·劉易斯·哈福雷德 申請人:國際商業(yè)機器公司