Rdma網絡上的子網管理數據的高效分配的制作方法
【專利摘要】一個實施例提供了用于使用遠程直接存儲器訪問(RDMA)傳送接收子網管理(SA)數據的方法。該方法包括:由網絡節點元件通過RDMA啟用標志將SA數據查詢格式化;由該網絡節點元件配置可靠連接隊列對(RCQP)以便從在啟用RDMA的網絡上與該網絡節點元件通信的子網管理器接收RDMA傳送;以及由該網絡節點元件分配RDMA寫目標緩沖器以便響應于該SA數據查詢使用RDMA傳送從該子網管理器接收該SA數據。
【專利說明】RDMA網絡上的子網管理數據的高效分配
[0001]領域
[0002]本公開涉及RDMA網絡上的子網管理數據的高效分配。
[0003]背景
[0004]啟用RDMA的網絡(如Infinband?網絡)由子網管理器(SM)管理。SM負責發現和配置連接到網絡的設備。應請求,SM可向應用分配這種配置數據,這些應用使用配置數據來在網絡上的節點之間建立通信。Infiniband?協議定義了不可靠數據報(datagram)通信協議以便使SM能向網絡上的一個或多個節點發送配置數據。然而,不可靠數據報通信協議要求會極大地影響吞吐量的軟件差錯校驗過程,并且因此,不可靠數據報通信協議不適合提供啟用RDMA的網絡(如Infiniband?網絡)的高速可擴展性、性能以及容錯。
[0005]附圖簡要說明
[0006]所要求保護的主題的特征和優點將從與其一致的實施例的以下詳細說明中變得明顯,應當參照附圖來考慮該說明書,在附圖中:
[0007]圖1示出與本公開的各實施例一致的網絡系統;
[0008]圖2更詳細地示出圖1的節點和子網管理器之間的通信;
[0009]圖3示出根據本公開的一個實施例的SA數據查詢、SA響應以及SA數據的示例性Infiniband?消息結構;
[0010]圖4是根據本公開的一個實施例的操作的流程圖;以及
[0011]圖5是根據本公開的另一個實施例的操作的流程圖。
[0012]盡管將參考說明性實施例進行以下詳細說明,其許多替代、修改和變化將對本領域普通技術人員明顯。
[0013]詳細描述
[0014]總體上,本公開涉及啟用RDMA的網絡(如Infiniband?網絡)上的子網管理數據的高效、可擴展分配。子網管理器(通常被配置成網絡設備發現以及生成子網管理(SA)數據)向至少一個網絡節點元件公開可靠連接隊列對。可靠連接隊列對尤其實現子網管理器和網絡節點元件之間的RDMA傳送,而代替使用常規地由啟用RDMA的網絡通信協議定義的不可靠數據報隊列對。在網絡節點元件上執行的應用可要求SA數據以便與例如其他網絡節點元件通信。網絡節點元件可配置可靠連接隊列對以及RDMA寫目標緩沖器、將SA數據查詢發送到子網管理器以及通過RDMA傳送在可靠連接隊列對上接收SA數據。SA數據的大小通常足夠大,從而使得不可靠數據報傳輸可能顯著地影響總體系統吞吐量和性能。對比之下,根據在此展現的教導的RDMA傳送可提供顯著優于常規方法的速度優勢,并且還可有利地使用更穩健的差錯校驗技術(例如,基于硬件的差錯校驗協議),以便提供進一步提高的效率和吞吐量。
[0015]圖1示出與本公開的各實施例一致的網絡系統100。網絡系統100總體上包括多個網絡節點元件102A、102B、102C、...、102N以及子網管理器(SM) 116,其各自被配置成通過網絡結構126彼此通信。每個網絡節點元件102A、102B、102C、...、102N以及SM 116可使用遠程直接存儲器訪問啟用(啟用RDMA的)通信協議通過網絡126彼此通信。如在此所使用的,啟用RDMA的通信協議是使能網絡節點元件之間的和/或網絡節點元件與SM 116之間的RDMA數據傳輸的通信協議。在一個示例性實施例中,啟用RDMA的通信協議是Infiniband?通信協議。每個節點元件102A、102B、102C、…、102N可表示計算機節點元件(例如,主機服務器系統)、交換機、和/或網絡存儲設備。將節點102A作為主機或服務器節點的示例,節點102A總體上包括主處理器、主CPU 104、系統存儲器106、橋芯片組108、以及網絡控制器110。主CPU104耦合到系統存儲器106和橋芯片組108。網絡控制器110被配置成使用啟用RDMA的通信協議與其他網絡節點元件和SM 116通信。網絡控制器110被配置成生成并使用隊列對(例如,傳輸/接收隊列對)以便使能與網絡系統100內的其他節點的消息傳送和I/O事務,如可由啟用RDMA的通信協議定義的那樣。
[0016]在至少一個示例性系統中,網絡控制器110被配置成定義至少一個不可靠數據報隊列對112(UDQP 112)以及至少一個可靠連接隊列對(RCQP) 114。如在此所使用的,RCQP可以是能夠使用RDMA傳送發送或接收數據分組的啟用RDMA的隊列對。進一步地,網絡控制器110可包括RDMA卸載引擎電路115,該電路被配置成提供例如分組傳輸、分組分段、分組重組、差錯校驗、傳輸確認、傳輸重試等等,而不需要主CPU 104和/或軟件介入。因此,在RCQP 114接收的分組可使用RDMA卸載引擎電路115以便提供RDMA傳送,而無需主CPU104和/或軟件介入。RCQP可以是面向連接的并且可在兆比特的數量級上提供非常大的數據傳送。RCQP可根據在此的教導用于傳送大部分應用數據,其中,希望正確地交付數據(例如,模擬結果、圖像、文件傳送等等)。如在此所使用的,UDQP總體上被定義為支持使用不可靠數據報消息傳送的數據分組傳送的隊列對,如可由Infiniband?通信協議定義的那樣。這種不可靠數據報消息傳送總體上不使用RDMA卸載引擎電路115,而是使用主CPU 104和軟件(未示出)執行分組傳輸、分組分段、分組重組、差錯校驗、傳輸確認、傳輸重試等等。UDQP總體上被提供以便在節點之間傳輸小分組。數據報的大小總體上被限制為網絡鏈路層(未示出)的最大傳送單元,通常在Infiniband?網絡上是4 KB或更小。附加地,數據報可包括目的地的完全地址信息并且可通常不被硬件確認。因此,對于在UDQP上發送和接收的消息而言,軟件必須處理大量的消息分段和重組、分組丟失、差錯、超時、數據亂序、以及重傳。單個UDQP可向多個遠程節點發送并從其接收數據。當與多個節點通信少量數據時或者如果無需接收數據(例如,語音數據、位置信息、某些類型的視頻),UDQP可以是有用的。當然,節點102A還可包括存儲控制器電路(未示出),其可耦合到形成Infiniband?網絡結構的部分的一個或多個存儲設備(未示出)。可類似于節點102A,對其他網絡節點元件102B、102C、...、102N進行配置,配置的程度是這種配置使其他網絡節點元件102B、102C、…、102N能夠通過該網絡結構使用啟用RDMA的通信協議進行通信。
[0017]系統存儲器106被配置成存儲至少一個應用107和子網管理(SA)數據109。附加地,系統存儲器106可被控制以便提供RDMA目標寫緩沖器105,從而使能從SM 116到節點的RDMA傳送,如以下將更詳細地討論的。在一個示例中,應用107可被存儲在系統存儲器106 (其可包括例如系統RAM和/或高速緩存存儲器)中并至少部分地由主CPU 104執行。應用107可包括通過網絡控制器110發起與一個或多個節點102B、...、102N和/或與SM 116的通信的指令。可與本公開一起使用的樣本應用包括例如使用MPI (消息傳送接口)的那些:例如化學建模、碰撞模擬、石油和能源勘探、庫存建模、空氣動力學等等。為了使能網絡系統100中的節點之間的通信,應用107可使用系統管理數據109 (SA數據)。SA數據109可包括例如用于網絡結構的成員的地址和路徑信息。SA數據109可由SM 116生成,并且當應用107被執行時,節點102A可向SM 116查詢SA數據109。通常,節點102A-N上的SA數據109是“短命的”,是指一旦SA數據109由給定應用107用于在網絡結構中的節點之間通信,后續應用執行包括向SM116查詢以便刷新來自SM 116的SA數據109。
[0018]SM 116可總體上被以與網絡節點元件102A類似的方式配置,但是SM116總體上被指定為管理網絡系統100的通信規則和策略的“主節點”。SMl 16包括網絡控制器118,該網絡控制器類似于網絡控制器110并且被配置成使用啟用RDMA的通信協議與網絡節點元件和SM 116通信。在至少一個示例性系統中,網絡控制器118被配置成定義至少一個不可靠數據報隊列對112(UDQP 120)以及至少一個可靠連接隊列對(RCQP) 122。網絡控制器還可包括被類似于上述RDMA卸載引擎115配置的RDM卸載電路119。SM 116還包括子網管理模塊124,該子網管理模塊總體上可操作用于配置網絡結構(其可包括例如設備/節點元件發現、確定設備/節點元件能力和配置等等)、向節點和/或節點和網絡控制器分配地址、對節點開關元件進行編程以便在節點元件之間提供路徑。子網管理模塊124還被配置成生成SA數據109,并且SA數據109總體上包括用于網絡系統100中的網絡節點元件102A、102B、102C、...、102N的地址和路徑信息。
[0019]常規Infiniband?通信協議規定使用例如UDQP 114和UDQP 120之間的不可靠數據報隊列對執行SM 116和網絡節點元件102A、102B、102C、…、102N之間的分組事務。具體地,Infiniband?通信協議通常規定用于這種通信的UDQP1。網絡控制器118被配置成分配用于與至少一個網絡節點元件通信的至少一個UDQP 120。類似地,將節點102A用作示例,網絡控制器110被配置成分配相應的UDQP 112以便在控制器118和控制器110之間提供不可靠數據報通信。在常規的Infiniband?通信協議中,使用UDQP 120和UDQP 112來通信從SM 116到網絡節點元件102A的查詢響應。因此,在常規的Infiniband?通信協議中,使用利用相應的M)QP 120和UDQP 112的不可靠數據報傳輸執行包括SA數據109的SA數據響應。然而,不可靠數據報分組傳輸通常使用用于分段、重組、確認以及(如果適用的話)如果分組傳輸失敗則進行傳輸重試的軟件。SA數據109可相對較大(例如,對于典型大小的網絡是2-3 MB),并且,因為對于每次執行,應用107通常要求進行SA數據刷新,這種軟件使用總體上并且極大地限制了網絡系統的總體吞吐量并且還可極大地影響網絡系統的可擴展性。
[0020]在本公開的至少一個實施例中,網絡控制器118還被配置成分配可靠連接隊列對(RCQP) 122,以便使網絡控制器118能使用RDMA傳送向至少一個網絡節點元件102A、102B、102C、…、102N傳送查詢響應。網絡控制器118可為給定的網絡節點元件分配多于一個RCQP,并且可為多個網絡節點元件分配多個RCQP,從而使能例如SM 116和多個網絡節點元件102A、102B、102C、…、102N之間的平行RDMA傳送。在圖1的示例中,可分配多個RCQP,每個用于多個網絡節點元件中的一個(例如,RCQP A122被分配給節點102A等等)。SM116被配置成將RCQP的分配公開給至少一個網絡節點元件。將節點102A用作示例,當從SM 116接收到RCQP的公開時并且當執行應用107時,網絡控制器110被配置成分配相應的RCQP A’ 114,從而使能控制器118和控制器110之間的RDMA傳送。附加地,一旦被使能用于RDMA傳送,節點102A可被配置成分配RDMA寫目標緩沖器105,以便為從SM 116到節點102A的直接存儲器寫入提供存儲位置。以下更詳細地描述這些概念。
[0021]圖2是更詳細地示出圖1的節點102A和SM 116之間的通信操作的框圖200。在本示例中,不可靠數據報通信信道202和可靠連接通信信道204被描繪為在節點102A和SM116之間提供通信。然而,應當認識到信道202和204在本圖中被描繪為邏輯連接,無需是分離的物理通信信道。在操作中,響應于應用(107)的執行,節點102A可使用利用相應的UPDQl 120和UPQPl112的不可靠數據報傳輸向SM 116發送SA數據查詢206。SA數據查詢206可符合Infiniband?通信協議中定義的查詢規范,并且查詢可包括“保留”數據字段(例如,在Infiniband?通信協議中被規定但未被使用的一個或多個指定位)。作為網絡結構的規則和策略的管理的一部分,SM 116可在SA數據查詢206的保留數據字段中指定某個位(或某些位),以便指示RDMA傳送被接受(RDMA啟用標志)。因此,如果節點102A被配置成并且能夠從SM 116接收RDMA傳送,節點102A可使用保留數據字段中的RDMA啟用標志將SA數據查詢206格式化。
[0022]節點102A還可以能夠分配RDMA寫目標緩沖器105以便從SM 116接收并存儲RDMA響應。節點102A可用RDMA寫目標緩沖器地址、加密密鑰、和/或緩沖器長度信息更新SA數據查詢206。響應于SA數據查詢206,SM 116可確定可將SA數據109作為可靠連接RDMASA數據響應(RCRDMA SA響應210)或作為不可靠數據報響應(UD響應208)發送。例如,SM 116可被配置成確定RDMA寫緩沖器的大小是否適合于響應或者RCQP 122是否忙碌(或者以其他方式不可用)使得RDMA傳送不能繼續。SM 116可使用利用相應的UPDQ1120和UPQPl112的不可靠數據報傳輸(UD響應208)向SM數據查詢206發送響應。UD響應208可包括為RDMA寫目標緩沖器重新分配特定大小、將RDMA響應重定向到另一個RCQP的指令,和/或其他指令。在接收到UD響應208后,節點102A可向SM 116重新發送SA數據查詢206。如果節點102A和SM 116的能力支持RDMA傳送,SM 116可發送包括SA數據109的RCRDMA SA響應210。然而,與常規方法相比,SM 116可使用利用相應的RCQP A 122和RCQPA’ 114的可靠連接傳輸發送包括SA數據109的SA數據響應。一旦在RCQP A’ 114中接收到響應,可使用RDMA傳送將響應數據直接存儲在RDMA目標寫緩沖器105中,由此避免干涉數據寫操作。利用RCQP A 122和RCQP A’114的可靠連接傳輸可利用硬件(例如,RDMA卸載引擎電路115)用于分段、重組、確認以及(如果適用的話)在分組傳輸失敗情況下的傳輸重試。因此,可實現網絡系統的總體吞吐量和可擴展性的顯著改進。
[0023]圖3示出根據本公開的一個實施例的SA數據查詢206’、SA響應210’以及SA數據109’的示例性Infiniband?消息結構。每個消息的字節偏移(注意沿著每個消息的左邊緣)通常表示使用Infiniband?協議的消息內的各字段的偏移信息。SA數據查詢206’可包括標準MAD (管理數據報)部分、RMPP (可靠多分組處理)頭部部分、SA頭部、SA記錄以及SA數據部分。SA頭部可包括可包含RDMA啟用標志的一個或多個保留字段。RMPP頭部包括用于使卸載引擎能處理分組分段和重組的信息。存在各種類型的SA數據。這些類型被定義為“記錄”。每個記錄描述有關網絡或網絡上的節點的不同類型的信息。示例性記錄包括例如描述有關交換機的信息、描述節點信息的記錄、用于性能計數器的記錄等等。這些記錄是正在被請求的實際數據。這些頭部用于標識查詢和響應,從而使得響應可與正確的查詢匹配。因此,MAD頭部用于將響應與查詢匹配并且標識查詢何種業務。并且,SA頭部標識用戶正在尋找哪條記錄。SA頭部可展現MAD頭部何時指示查詢應當被定向到SA。SA數據區域包含對查詢的實際輸入和輸出。這些部分的每個還可包括SA響應210’和SA數據109’,如圖3中所描繪的。當然,圖3中示出的任何消息還可包括用于確認目的的“填充”部分和/或控制MAD (控制MAD可具有與所示出的那些相同的格式但是通常不攜帶SA記錄)和/或可由Infiniband?協議指定的其他部分/字段。
[0024]圖4是根據本公開的一個實施例的操作的流程圖400。具體地,流程圖400示出網絡節點元件使能將SA數據從子網管理器RDMA傳送到網絡節點元件的操作。本實施例的操作包括生成SA數據查詢402。SA數據查詢可由例如正在網絡節點元件上執行的應用生成。該應用可使用SA數據例如來與另一個網絡節點元件通信,以便促進網絡節點元件之間的I/O事務(例如,數據讀取、數據寫入等等),并且因此,SA數據可包括例如另一個網絡節點元件的地址。操作還可包括由第一網絡節點元件用RDMA啟用標志將SA數據查詢格式化404。RDMA啟用標志可包括例如在Infiniband?數據查詢頭部的保留數據字段中被設置的位(或多個位)。本實施例的操作還可包括確定子網管理器(SM)是否已經向網絡節點元件公開了 RC隊列對406,從而使能從SM到網絡節點元件的RDMA傳送。SM還可配置專用于傳送到網絡節點元件的RCQP的相應的RCQP。
[0025]如果SM已經公開了 RCQP,本實施例的操作還可包括配置RCQP以便從SM接收RDMA寫數據408。通過用遠程RCQP地址信息(例如,QP號碼、網絡地址、以及服務質量信息)、序列號、超時值等等對RCQP進行編程,完成RCQP的配置。RCQP還可通過其內部狀態過渡,直到已經準備就緒向遠程RCQP發送。本實施例的操作還可包括分配RDMA寫目標緩沖器以便從SM接收響應410。在此,來自SM的響應可包括SA數據并且RDMA寫目標緩沖器可通過RDMA傳送接收響應。操作可進一步包括向SA數據查詢添加RDMA緩沖器地址、加密密鑰、和/或緩沖器長度信息412。由于RCQP可被使能用于從SM到網絡節點元件的單向通信,本實施例的操作還可包括使用不可靠數據報隊列對(UDQP)向SM發送SA數據查詢414。UDQP可包括例如預定義用于給定的啟用RDMA的通信協議的隊列對,例如,用于Infiniband?協議的隊列對I。在操作416,網絡節點元件可確定SA數據查詢響應是否已經從子網管理器發送以及是在RCQP還是UDQP上接收響應。如果在RCQP上接收到的響應是來自子網管理器的所請求的SA數據,網絡節點元件可通過使用RDMA傳送將數據從指定的RCQP傳送到經配置的RDMA寫目標緩沖器來做出響應,從而完成事務422。
[0026]然而,如果來自子網管理器的響應是在UDQP上接收的,這可致使網絡節點元件檢查響應的狀態418。在一個示例中,由子網管理單元發送的響應可以是指示RDMA寫目標緩沖器的大小太小而不能用于預期RDMA傳送的狀態響應。網絡節點元件可在操作420通過經由重新分配RDMA寫目標緩沖器來調整RDMA寫目標緩沖器的大小以便從子網管理器接收響應來做出響應。上述操作412和414可重復并且如果SA數據查詢響應是從子網管理器發送的416,事務可完成422。在另一個示例中,由子網管理單元發送的響應可以是指示經配置的RCQP不再有效以及來自子網管理器的響應將被重定向到第二 RCQP的重定向響應。無效RCQP可包括例如當前、先前公開的RCQP忙碌或者以其他方式不可用于SA數據傳送。網絡節點元件可在操作408通過配置第二 RCQP以便從子網管理器接收響應來做出響應。操作410 (其程度為指定RDMA寫目標緩沖器的重新分配)和上述操作412和414可重復,并且如果SA數據查詢響應是從子網管理器416發送的,事務可完成422。
[0027]返回參照操作406,如果RCQP尚未由子網管理器公開,這可指示子網管理器不能向SA數據查詢提供RDMA響應(諸如可以是常規系統的情況等等)。在這種情況下,網絡節點元件可使用不可靠數據報隊列對(UDQP)向子網管理器發送SA數據查詢414。網絡節點元件可確定SA數據查詢響應是否已經從子網管理器發送并且在UDQP上接收到(操作416)。在UDQPl上接收到的響應可包括SA數據。網絡節點元件可檢查響應的狀態418,并且如果響應通過狀態檢查,事務可完成422。
[0028]圖5是根據本公開的另一個實施例的操作的流程圖500。具體地,流程圖500示出子網管理器(SM)使能將SA數據從SM傳送到網絡節點元件的操作。本實施例的操作包括生成SA數據502。上述SA數據可包括Infiniband?網絡結構中的至少一個網絡節點元件的地址和路徑信息。操作還包括為網絡節點元件404生成并公開第一 RCQP。操作還包括由SM從網絡節點元件接收SA數據查詢506。操作還包括確定是否在SA數據查詢中設置了RDMA啟用標志508。如果沒有,操作包括在UDQP上發送SA數據響應510。
[0029]如果設置了 RDMA啟用標志(508),操作還可包括解析SA數據查詢以便確定網絡節點元件的RDMA能力512。操作還可包括確定RDMA寫目標緩沖器是否太小而不能接收SA數據514。如果RDMA寫目標緩沖器太小,操作還可包括在UDQP上向網絡節點元件發送狀態響應以便重新分配RDMA寫目標緩沖器516。操作506可通過經重新分配的RDMA寫目標緩沖器重復(在虛線框506中注明)。如果RDMA寫目標緩沖器的大小適合通過RDMA傳送接收SA數據,操作還可包括確定RCQP是否不可用518。如果RCQP可用,操作可包括在用于RDMA傳送的RCQP上向網絡節點元件發送SA數據響應520。SA數據可被直接從與網絡節點元件相關聯的RCQP寫入RDMA寫目標緩沖器。如果RCQP不可用,操作可包括生成第二 RCQP 522以及在UDQP上向網絡節點元件發送重定向響應以便將SA響應重定向到第二 RCQP 524。操作506可通過第二 RCQP重復(在虛線框506中注明)524。
[0030]盡管圖4和圖5的流程圖示出了根據各實施例的操作,將要理解的是在圖4和/或圖5中描繪的所有操作對于其他實施例而言不是全部必需的。附加地,在此充分考慮了在本公開的其他實施例中,在圖4、圖5中描繪的操作和/或在此描述的其他操作可以用未在任何附圖中明確示出的方式結合,并且這種實施例可包括比圖4和/或圖5中示出的操作更少或更多的操作。因此,涉及未在一個附圖中準確示出的特征和/或操作的權利要求被認為在本公開的范圍和內容內。
[0031]前述內容被認為是示例性系統架構和方法,可對本公開進行修改。例如,節點102A可進一步包括操作系統(OS,未示出),以便管理系統資源并且控制在例如節點102A上運行的任務。例如,可使用Microsoft Windows>HP-UX>Linux或UNFX實現OS,但是可使用其他操作系統。在某些實施例中,OS可由可為在一個或多個處理單元上運行的各種操作系統提供底層硬件抽象層的虛擬機替代。操作系統和/或虛擬機可實現一個或多個協議堆棧。協議堆棧可執行一個或多個程序用于處理分組。協議堆棧的示例是包括一個或多個程序用于處理(例如,處理或生成)分組以便在網絡上傳輸和/或接收的TCP/IP(傳輸控制協議/互聯網協議)協議堆棧。可替代地,協議堆棧可被包括在專用子系統上,諸如例如TCP卸載弓丨擎和/或網絡控制器110。
[0032]系統存儲器(例如,系統存儲器106和/或與網絡控制器(例如,網絡控制器110、118)相關聯的存儲器)可包括以下存儲器類型中的一種或多種:半導體固件存儲器、可編程存儲器、非易失性存儲器、只讀存儲器、電可編程存儲器、隨機存取存儲器、閃存、磁盤存儲器、和/或光盤存儲器。或者附加地或者可替代地,系統存儲器106和/或與網絡控制器110,118相關聯的存儲器可包括其他和/或以后開發的計算機可讀存儲器類型。
[0033]可在包括一個或多個存儲介質的系統中實現在此所描述的任何操作,該一個或多個存儲介質在其上單獨地或結合地存儲當被一個或多個處理器執行時執行該方法的指令。處理器可包括例如網絡控制器110、118和/或主CPU 104中的處理單元和/或可編程電路和/或其他處理單元或可編程電路。因此,旨在根據在此所描述的方法的操作可跨多個物理設備分布,諸如在若干不同物理位置的處理結構。存儲介質可包括任何類型的有形存儲介質,例如任何類型的盤,包括軟盤、光盤、致密盤只讀存儲(CD-ROM)、致密盤可重寫(CD-RW)、以及磁光盤,半導體器件,諸如只讀存儲器(ROM)、隨機存取存儲器(RAM),諸如動態和靜態RAM、可擦可編程只讀存儲器(EPROM)、電可擦可編程只讀存儲器(EEPROM)、閃存、磁或光卡、或任何其他類型的適合用于存儲電子指令的介質。
[0034]圖1中描繪的網絡系統100可與企業網絡系統(諸如企業大容量系統、企業數據中心等等)集成或形成其一部分。這種網絡系統可被配置成通過例如分組交換網絡(其可包括例如云計算、云存儲等等)與其他網絡系統通信。因此,網絡控制器I1和/或118(和/或與其他網絡節點元件相關聯的其他網絡控制器)可被配置成使用分組交換通信協議(例如,以太網通信協議)進行通信。以太網通信協議可以能夠使用傳輸控制協議/互聯網協議(TCP/IP)提供通信。以太網協議可符合或兼容電氣和電子工程師學會(IEEE)在2002年3月發布的標題為“IEEE 802.3標準”的以太網標準和/或該標準的稍后版本。
[0035]InfiniBand?通信協議可符合或兼容InfiniBand貿易協會(IBTA)在2001年6月發布的標題為 “InfiniBand 架構規范(InfiniBand Architecture Specificat1nVIAInfiniBand規范和/或該規范的稍后版本。在上述示例中,啟用RDMA的網絡是Infiniband?網絡。在其他實施例中,可使用其他啟用RDMA的網絡協議,例如iWARP通信協議。iWARP通信協議可符合或兼容RDMA聯盟所開發的并且由互聯網工程任務組(IETF)所維護并發布的于2007年發布的標題為“傳送控制協議(TCP)的RDMA標準(RDMA over Transmiss1nControl Protocol (TCP) standard) ”的iWARP標準和/或該標準的稍后版本。
[0036]如在本文中的任意實施例中所使用的“電路”可單獨地或在任意組合中包括例如存儲由可編程電路執行的指令的硬連線電路、可編程電路、狀態機電路、和/或固件。如在此所使用的“模塊”可單獨地或以任何組合包括電路和/或指令集(例如,軟件、固件等等)。
[0037]因此,本公開提供了一種示例網絡節點元件,該網絡節點元件包括:網絡控制器,被配置成使用啟用遠程直接存儲器訪問(RDMA)的通信協議在啟用RDMA的網絡上與子網管理單元進行通信;處理器,被配置成執行應用,其中,該應用被配置成生成子網管理(SA)數據查詢以便從該子網管理單元請求SA數據,并且其中,該SA數據包括地址和路徑信息;以及存儲器,用于存儲該應用。當執行該應用時,該處理器進一步被配置成通過RDMA啟用標志將該SA數據查詢格式化。當該應用被執行時,該網絡控制器進一步被配置成:配置可靠連接隊列對(RCQP)以便從子網管理器接收RDMA傳送;以及分配RDMA寫目標緩沖器以便響應于該SA數據查詢使用RDMA傳送從該子網管理器接收該SA數據。
[0038]另一個示例網絡節點元件包括前述內容并且進一步定義,該處理器進一步被配置成向該SA數據查詢添加有關該RDMA寫目標緩沖器的地址、加密密鑰和緩沖器長度信息。
[0039]另一個示例網絡節點元件包括前述內容并且進一步定義,該網絡控制器進一步被配置成在該RCQP上接收SA數據響應并且將該SA數據響應存儲到該RDMA寫目標緩沖器中;其中,該SA數據響應包括該SA數據。
[0040]另一個示例網絡節點元件包括前述內容并且進一步定義,該網絡控制器進一步被配置成配置預定的可靠數據報(UD)隊列對以及使用預定的可靠數據報(UD)隊列對將該SA數據查詢發送到該子網管理器。
[0041]另一個示例網絡節點元件包括前述內容并且進一步定義,該網絡控制器進一步被配置成響應于該SA數據查詢從該子網管理器接收狀態響應;其中,該狀態響應指示該RDMA寫目標緩沖器的大小太小而不能容納該SA數據。
[0042]另一個示例網絡節點元件包括前述內容并且進一步定義,該網絡控制器進一步被配置成重新分配具有能夠容納該SA數據的大小的RDMA寫目標緩沖器。
[0043]另一個示例網絡節點元件包括前述內容并且進一步定義,該網絡控制器進一步被配置成響應于該SA數據查詢從該子網管理器接收重定向響應;其中,該重定向響應指示該RCQP無效以及將對該SA數據查詢的該響應重定向到第二 RCQP。
[0044]另一個示例網絡節點元件包括前述內容并且進一步定義,該網絡控制器進一步被配置成配置該第二 RCQP以便從子網管理器接收該RDMA傳送。
[0045]另一個示例網絡節點元件包括前述內容并且進一步定義,該SA數據查詢包括具有由啟用RDMA的通信協議定義的至少一個保留數據字段的查詢,并且其中,該RDMA啟用標志在該保留數據字段中包括該網絡節點元件能夠從該子網管理器接收RDMA傳送的指示符。
[0046]本公開還提供了一種子網管理器,該子網管理器包括:網絡控制器,被配置成使用啟用遠程直接存儲器訪問(RDMA)的通信協議在啟用RDMA的網絡上與至少一個網絡節點元件進行通信;子網管理模塊,被配置成為該至少一個網絡節點元件分配地址和路徑信息,并且進一步被配置成生成包括該地址和路徑信息的子網管理(SA)數據。該網絡控制器進一步被配置成:配置可靠連接隊列對(RCQP)以便向該至少一個網絡節點元件發送RDMA傳送;將該RCQP公開給該至少一個網絡節點元件以便致使該至少一個網絡節點元件配置贈送的(complimentary) RCQP ;從該至少一個網絡節點元件接收SA數據查詢;以及使用該RCQP和該贈送的RCQP利用RDMA傳送向該至少一個網絡節點元件發送包括該SA數據的SA數據響應。
[0047]另一個示例子網管理器包括前述內容并且進一步定義,該網絡控制器進一步被配置成使用該RDMA傳送確定與該至少一個網絡節點元件相關聯的RDMA寫目標緩沖器是否太小而不能容納該SA數據。
[0048]另一個示例子網管理器包括前述內容并且進一步定義,該網絡控制器進一步被配置成響應于該SA數據查詢從該子網管理器生成狀態響應,并將該狀態響應發送到網絡節點元件;其中,該狀態響應指示該RDMA寫目標緩沖器的大小太小而不能容納該SA數據。
[0049]另一個示例子網管理器包括前述內容并且進一步定義,該網絡控制器進一步被配置成確定該RCQP是否不可用。
[0050]另一個示例子網管理器包括前述內容并且進一步定義,該網絡控制器被進一步配置成生成第二 RCQP以及將重定向響應發送到該網絡節點元件;其中,該重定向響應指示該RCQP不可用以及將對該SA數據查詢的該響應重定向到第二 RCQP。
[0051]本公開還提供了一種系統,該系統包括:網絡節點元件,被配置成使用啟用遠程直接存儲器訪問(RDMA)的通信協議在啟用RDMA的網絡上進行通信;子網管理器,被配置成使用該啟用RDMA的通信協議在該啟用RDMA的網絡上與該網絡節點元件進行通信,并且被配置成在該啟用RDMA的網絡上為至少一個網絡節點元件生成包括地址和路徑信息的子網管理(SA)數據。該網絡節點元件進一步被配置成:通過RDMA啟用標志將該SA數據查詢格式化;以及分配RDMA寫目標緩沖器以便響應于該SA數據查詢使用RDMA傳送從該子網管理器接收該SA數據。該子網管理器進一步被配置成:配置可靠連接隊列對(RCQP)以便向該至少一個網絡節點元件發送RDMA傳送;將該RCQP公開給該至少一個網絡節點元件以便致使該至少一個網絡節點元件配置贈送的RCQP ;從該至少一個網絡節點元件接收SA數據查詢;以及使用該RCQP和該贈送的RCQP利用RDMA傳送向該至少一個網絡節點元件發送包括該SA數據的SA數據響應。
[0052]另一個示例系統包括前述內容并且進一步定義,該網絡節點元件進一步被配置成向該SA數據查詢添加有關該RDMA寫目標緩沖器的地址、加密密鑰和緩沖器長度信息。
[0053]另一個示例系統包括前述內容并且進一步定義,該網絡節點元件進一步被配置成響應于該SA數據查詢從該子網管理器接收狀態響應;其中,該狀態響應指示該RDMA寫目標緩沖器的大小太小而不能容納該SA數據。
[0054]另一個示例系統包括前述內容并且進一步定義,該網絡節點元件進一步被配置成重新分配具有能夠容納該SA數據的大小的RDMA寫目標緩沖器。
[0055]另一個示例系統包括前述內容并且進一步定義,該網絡節點元件進一步被配置成響應于該SA數據查詢從該子網管理器接收重定向響應;其中,該重定向響應指示該RCQP無效以及將對該SA數據查詢的該響應重定向到第二 RCQP。
[0056]另一個示例系統包括前述內容并且進一步定義,該網絡節點元件進一步被配置成配置該第二 RCQP以便從子網管理器接收該RDMA傳送。
[0057]另一個示例系統包括前述內容并且進一步定義,該SA數據查詢包括具有由啟用RDMA的通信協議定義的至少一個保留數據字段的查詢,并且其中,該RDMA啟用標志在該保留數據字段中包括該網絡節點元件能夠從該子網管理器接收RDMA傳送的指示符。
[0058]本公開還提供了一種方法,該方法包括:由網絡節點元件使用RDMA啟用標志將SA數據查詢格式化;由該網絡節點元件配置可靠連接隊列對(RCQP)以便從在啟用RDMA的網絡上與該網絡節點元件通信的子網管理器接收RDMA傳送;以及由該網絡節點元件分配RDMA寫目標緩沖器以便響應于該SA數據查詢使用RDMA傳送從該子網管理器接收該SA數據。
[0059]另一示例方法包括前述操作并且進一步包括,由該網絡節點元件向該SA數據查詢添加有關該RDMA寫目標緩沖器的地址、加密密鑰和緩沖器長度信息。
[0060]另一示例方法包括前述操作并且進一步定義,該SA數據包括該啟用RDMA的網絡的至少一個網絡節點元件的地址信息。
[0061]另一示例方法包括前述操作并且進一步包括,由該網絡節點元件在RCQP上接收SA數據響應并且將該SA數據響應存儲到該RDMA寫目標緩沖器中;其中,該SA數據響應包括該SA數據。
[0062]另一示例方法包括前述操作并且進一步包括,由該網絡節點元件使用預定的可靠數據報(UD)隊列對向該子網管理器發送該SA數據查詢。
[0063]另一示例方法包括前述操作并且進一步包括,由該網絡節點元件響應于該SA數據查詢從該子網管理器接收狀態響應;其中,該狀態響應指示該RDMA寫目標緩沖器的大小太小而不能容納該SA數據。
[0064]另一示例方法包括前述操作并且進一步包括,重新分配具有能夠容納該SA數據的大小的該RDMA寫目標緩沖器。
[0065]另一示例方法包括前述操作并且進一步包括,由該網絡節點元件響應于該SA數據查詢從該子網管理器接收重定向響應;其中,該重定向響應指示該RCQP無效以及將對該SA數據查詢的該響應重定向到第二 RCQP。
[0066]另一示例方法包括前述操作并且進一步包括,由該網絡節點元件配置該第二 RCQP以便從子網管理器接收該RDMA傳送。
[0067]另一示例方法包括前述操作并且進一步定義,該SA數據查詢包括具有由啟用RDMA的通信協議定義的至少一個保留數據字段的查詢,并且其中,該RDMA啟用標志在該保留數據字段中包括該網絡節點元件能夠從該子網管理器接收RDMA傳送的指示符。
[0068]本公開還提供了一種被配置成執行示例方法的任何前述操作的系統。該系統包括其上單獨地或結合地存儲有指令的一種或多種存儲介質,當被一個或多個處理器執行時,該指令導致包括示例方法的任何前述操作的以下操作。
[0069]已經在此使用的術語和表達被用作描述而非限制術語,并且不旨在使用這種術語和表達時排除所展示和描述的特征的任何等效方案(或其部分),并且認識到在權利要求書的范圍內各種修改是可能的。因此,權利要求書旨在覆蓋所有這種等效方案。
[0070]已經在此描述了各種特征、方面、和實施例。這些特征、方面、和實施例易于與彼此以及變體和修改組合,如本領域普通技術人員將理解的那樣。因此,本發明應當被認為包含這種組合、變體、以及修改。
【權利要求】
1.一種網絡節點元件,包括: 網絡控制器,被配置成使用啟用遠程直接存儲器訪問(RDMA)的通信協議在啟用RDMA的網絡上與子網管理單元進行通信; 處理器,被配置成執行應用,其中,所述應用被配置成生成子網管理(SA)數據查詢以便從所述子網管理員請求SA數據,并且其中,所述SA數據包括地址和路徑信息;以及存儲器,用于存儲所述應用; 其中,當所述應用執行時,所述處理器進一步被配置成: 通過RDMA啟用標志將所述SA數據查詢格式化; 并且其中,當所述應用執行時,所述網絡控制器進一步被配置成: 配置可靠連接隊列對(RCQP)以便從子網管理器接收RDMA傳送;以及分配RDMA寫目標緩沖器以便響應于所述SA數據查詢使用RDMA傳送從所述子網管理器接收所述SA數據。
2.如權利要求1所述的網絡節點元件,其中,所述處理器進一步被配置成向所述SA數據查詢添加有關所述RDMA寫目標緩沖器的地址、加密密鑰和緩沖器長度信息。
3.如權利要求1所述的網絡節點元件,其中,所述網絡控制器進一步被配置成在所述RCQP上接收SA數據響應并且將所述SA數據響應存儲到所述RDMA寫目標緩沖器中;其中,所述SA數據響應包括所述SA數據。
4.如權利要求1所述的網絡節點元件,其中,所述網絡控制器進一步被配置成配置預定的可靠數據報(UD)隊列對以及使用預定的可靠數據報(UD)隊列對將所述SA數據查詢發送到所述子網管理器。
5.如權利要求1所述的網絡節點元件,其中,所述網絡控制器進一步被配置成響應于所述SA數據查詢從所述子網管理器接收狀態響應;其中,所述狀態響應指示所述RDMA寫目標緩沖器的大小太小而不能容納所述SA數據。
6.如權利要求5所述的網絡節點元件,其中,所述網絡控制器進一步被配置成重新分配具有能夠容納所述SA數據的大小的所述RDMA寫目標緩沖器。
7.如權利要求1所述的網絡節點元件,其中,所述網絡控制器進一步被配置成響應于所述SA數據查詢從所述子網管理器接收重定向響應;其中,所述重定向響應指示所述RCQP無效以及將對所述SA數據查詢的所述響應重定向到第二 RCQP。
8.如權利要求8所述的網絡節點元件,其中,所述網絡控制器進一步被配置成配置所述第二 RCQP以便從子網管理器接收所述RDMA傳送。
9.如權利要求1所述的網絡節點元件,其中,所述SA數據查詢包括具有由RDMA通信協議定義的至少一個保留數據字段的查詢,并且其中,所述RDMA啟用標志在所述保留數據字段中包括所述網絡節點元件能夠從所述子網管理器接收RDMA傳送的指示符。
10.一種子網管理器,包括: 網絡控制器,被配置成使用啟用遠程直接存儲器訪問(RDMA)的通信協議在啟用RDMA的網絡上與至少一個網絡節點元件進行通信; 子網管理模塊,被配置成為所述至少一個網絡節點元件分配地址和路徑信息,并且進一步被配置成生成包括所述地址和路徑信息的子網管理(SA)數據; 其中,所述網絡控制器進一步被配置成: 配置可靠連接隊列對(RCQP)以便向所述至少一個網絡節點元件發送RDMA傳送;將所述RCQP公開給所述至少一個網絡節點元件以便致使所述至少一個網絡節點元件配置贈送的RCQP ; 從所述至少一個網絡節點元件接收SA數據查詢;以及 使用所述RCQP和所述贈送的RCQP利用RDMA傳送向所述至少一個網絡節點元件發送包括所述SA數據的SA數據響應。
11.如權利要求10所述的子網管理器,其中,所述網絡控制器進一步被配置成使用所述RDMA傳送確定與所述至少一個網絡節點元件相關聯的RDMA寫目標緩沖器是否太小而不能容納所述SA數據。
12.如權利要求11所述的子網管理器,其中,所述網絡控制器進一步被配置成響應于所述SA數據查詢從所述子網管理器接收狀態響應;其中,所述狀態響應指示所述RDMA寫目標緩沖器的大小太小而不能容納所述SA數據。
13.如權利要求10所述的子網管理器,其中,所述網絡控制器進一步被配置成確定所述RCQP是否不可用。
14.如權利要求13所述的子網管理器,其中,所述網絡控制器被進一步配置成: 生成第二 RCQP以及將重定向響應發送到所述網絡節點元件;其中,所述重定向響應指示所述RCQP不可用以及將對所述SA數據查詢的所述響應重定向到第二 RCQP。
15.—種系統,包括: 網絡節點元件,被配置成使用啟用遠程直接存儲器訪問(RDMA)的通信協議在啟用RDMA的網絡上進行通信; 子網管理器,被配置成使用所述啟用RDMA的通信協議在所述啟用RDMA的網絡上與所述網絡節點元件進行通信,并且被配置成在所述啟用RDMA的網絡上為至少一個網絡節點元件生成包括地址和路徑信息的子網管理(SA)數據; 其中,所述網絡節點元件進一步被配置成: 通過RDMA啟用標志將所述SA數據查詢格式化;以及 分配RDMA寫目標緩沖器以便響應于所述SA數據查詢使用RDMA傳送從所述子網管理器接收所述SA數據; 并且其中,所述子網管理器進一步被配置成: 配置可靠連接隊列對(RCQP)以便向所述網絡節點元件發送RDMA傳送; 將所述RCQP公開給所述網絡節點元件以便致使所述網絡節點元件配置贈送的RCQP ; 從所述至少一個網絡節點元件接收SA數據查詢;以及 使用所述RCQP和所述贈送的RCQP利用RDMA傳送向所述網絡節點元件發送包括所述SA數據的SA數據響應。
16.如權利要求15所述的系統,其中,所述網絡節點元件進一步被配置成向所述SA數據查詢添加有關所述RDMA寫目標緩沖器的地址、加密密鑰和緩沖器長度信息。
17.如權利要求15所述的系統,其中,所述網絡節點元件進一步被配置成響應于所述SA數據查詢從所述子網管理器接收狀態響應;其中,所述狀態響應指示所述RDMA寫目標緩沖器的大小太小而不能容納所述SA數據。
18.如權利要求17所述的系統,其中,所述網絡節點元件進一步被配置成重新分配具有能夠容納所述SA數據的大小的所述RDMA寫目標緩沖器。
19.如權利要求15所述的系統,其中,所述網絡節點元件進一步被配置成響應于所述SA數據查詢從所述子網管理器接收重定向響應;其中,所述重定向響應指示所述RCQP無效以及將對所述SA數據查詢的所述響應重定向到第二 RCQP。
20.如權利要求19所述的系統,其中,所述網絡節點元件進一步被配置成配置所述第二 RCQP以便從子網管理器接收所述RDMA傳送。
21.如權利要求15所述的系統,其中,所述SA數據查詢包括具有由啟用RDMA的通信協議定義的至少一個保留數據字段的查詢,并且其中,所述RDMA啟用標志在所述保留數據字段中包括所述網絡節點元件能夠從所述子網管理器接收RDMA傳送的指示符。
22.一種用于使用遠程直接存儲器訪問(RDMA)傳送接收子網管理(SA)數據的方法,所述方法包括: 由網絡節點元件通過RDMA啟用標志將SA數據查詢格式化; 由所述網絡節點元件配置可靠連接隊列對(RCQP)以便從在啟用RDMA的網絡上與所述網絡節點元件通信的子網管理器接收RDMA傳送;以及 由所述網絡節點元件分配RDMA寫目標緩沖器以便響應于所述SA數據查詢使用RDMA傳送從所述子網管理器接收所述SA數據。
23.如權利要求22所述的方法,進一步包括由所述網絡節點元件向所述SA數據查詢添加有關所述RDMA寫目標緩沖器的地址、加密密鑰和緩沖器長度信息。
24.如權利要求22所述的方法,其中,所述SA數據包括所述啟用RDMA的網絡的至少一個網絡節點元件的地址信息。
25.如權利要求22所述的方法,進一步包括由所述網絡節點元件在所述RCQP上接收SA數據響應并且將所述SA數據響應存儲到所述RDMA寫目標緩沖器中;其中,所述SA數據響應包括所述SA數據。
26.如權利要求22所述的方法,進一步包括由所述網絡節點元件使用預定的可靠數據報(UD)隊列對向所述子網管理器發送所述SA數據查詢。
27.如權利要求22所述的方法,進一步包括由所述網絡節點元件響應于所述SA數據查詢從所述子網管理器接收狀態響應;其中,所述狀態響應指示所述RDMA寫目標緩沖器的大小太小而不能容納所述SA數據。
28.如權利要求27所述的方法,進一步包括重新分配具有能夠容納所述SA數據的大小的所述RDMA寫目標緩沖器。
29.如權利要求22所述的方法,進一步包括由所述網絡節點元件響應于所述SA數據查詢從所述子網管理器接收重定向響應;其中,所述重定向響應指示所述RCQP無效以及將對所述SA數據查詢的所述響應重定向到第二 RCQP。
30.如權利要求29所述的方法,進一步包括: 由所述網絡節點元件配置所述第二 RCQP以便從子網管理器接收所述RDMA傳送。
31.如權利要求22所述的方法,其中,所述SA數據查詢包括具有由RDMA通信協議定義的至少一個保留數據字段的查詢,并且其中,所述RDMA啟用標志在所述保留數據字段中包括所述網絡節點元件能夠從所述子網管理器接收RDMA傳送的指示符。
32.—種包括以上單獨地或結合地存儲有指令的一個或多個存儲介質的系統,當被一個或多個處理器執行時,所述指令導致以下操作,所述操作包括: 根據權利要求22至31任一項所述的操作。
【文檔編號】G06F13/14GK104205079SQ201280072152
【公開日】2014年12月10日 申請日期:2012年3月30日 優先權日:2012年3月30日
【發明者】M·S·赫弗蒂 申請人:英特爾公司