專利名稱:為通道適配器故障提供冗余度的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)字網(wǎng)絡通信,更具體地說,涉及提供計算機系統(tǒng)或者連接在InfiniBand子網(wǎng)或架構(gòu)(fabric)上的任意其它節(jié)點的改進可靠性。
背景技術(shù):
計算機行業(yè)正在朝著快速、分組化、串行輸入/輸出(I/O)互連體系結(jié)構(gòu)發(fā)展,其中計算主機和外圍設(shè)備由交換網(wǎng)絡(通常稱為交換架構(gòu))鏈接。已提出許多這種類型的體系結(jié)構(gòu),最終導致由一組行業(yè)帶頭者(包括Intel,Sun Microsystems,Hewlett Packard,IBM,Compaq,Dell和Microsoft)領(lǐng)導的聯(lián)合會提出的InfiniBand(IB)體系結(jié)構(gòu)。在可在www.infinibandta.org從InfiniBand貿(mào)易協(xié)會獲得的,并作為參考包含于此的InfiniBand Architecture Specifcation,Release 1.0.a中詳細說明了IB體系結(jié)構(gòu)。
通過連接主通道適配器(HCA)和其它HCA,或者連接主通道適配器(HCA)和目標通道適配器(TCA),InfiniBand技術(shù)發(fā)揮作用。HCA往往位于服務器的CPU和存儲器附近,而TCA往往位于系統(tǒng)的磁盤存儲器和其它外設(shè)附近。交換機或路由器位于HCA和TCA之間,根據(jù)包含在數(shù)據(jù)分組本身中的信息,把數(shù)據(jù)分組引向正確的TCA目的地。
HCA與TCA(或者其它HCA)之間的連接或者是InfiniBand點對點鏈路,或者是交換機或路由器,這分別允許產(chǎn)生統(tǒng)一的InfiniBand子網(wǎng)或架構(gòu)環(huán)境。這種交換機的一個關(guān)鍵要點是它允許根據(jù)變量,例如服務級別(SL)和目的地標識符(DLID/DGID),管理信息(或數(shù)據(jù))的分組。
代替?zhèn)鹘y(tǒng)的存儲變換I/O接口總線,利用串行、交換架構(gòu)方法開發(fā)了InfiniBand體系結(jié)構(gòu)。這種交換本質(zhì)為InfiniBand體系結(jié)構(gòu)的低等待時間,高帶寬特征創(chuàng)造條件。群集的系統(tǒng)和網(wǎng)絡需要便于實現(xiàn)容錯互連的連接標準。
這種要求由包括先進的故障檢測和糾正機制的InfiniBand體系結(jié)構(gòu)滿足。符合InfiniBand的產(chǎn)品的一個例子是IBMPCI-X-InfiniBand主通道適配器,它允許主機的PCI-X總線和InfiniBand網(wǎng)絡之間的連通性。雙InfiniBand端口提供支持自動路徑遷移和與單一HCA裝置的單或多子網(wǎng)連接的能力。
自動路徑遷移(APM)是在主通道適配器(HCA)或目標通道適配器(TCA)端口發(fā)生故障,或者子網(wǎng)或架構(gòu)中存在故障的情況下,繼續(xù)處理的一種手段。換句話說,APM提供在HCA或TCA或鏈路的端口故障,或者子網(wǎng)或架構(gòu)中的交換機或路由器故障的情況下的冗余機制。但是,InfiniBand只定義了只是HCA的一個或多個端口發(fā)生故障的情況下的冗余機制,沒有定義整個HCA發(fā)生故障的情況下的冗余機制。
發(fā)明內(nèi)容
本發(fā)明提供在整個通道適配器(channel adapter)發(fā)生故障的情況下,通道適配器(CA),例如主通道適配器(HCA)或目標通道適配器(TCA)的冗余機構(gòu)。本發(fā)明的一個特殊優(yōu)點在于冗余機構(gòu)與InfiniBand體系結(jié)構(gòu)無縫配合,并且依賴于在InfiniBand體系結(jié)構(gòu)中規(guī)定的故障檢查和糾正方法。
本發(fā)明的一個特殊優(yōu)點在于根據(jù)本發(fā)明的原理設(shè)計的裝置能夠完全依從InfiniBand體系結(jié)構(gòu),還能在整個通道適配器發(fā)生故障的情況下提供冗余機構(gòu)。
根據(jù)本發(fā)明的一個優(yōu)選實施例,提供至少兩個物理主通道適配器。從InfiniBand體系結(jié)構(gòu)的觀點來看,這兩個物理主通道適配器被登記為一個邏輯主通道適配器。這兩個主通道適配器都具有與系統(tǒng)存儲器協(xié)作,以便保存用隊列對控制塊(QPCB)表示的隊列對(QP)控制信息的專用高速緩存裝置。在物理主通道適配器之一整個發(fā)生故障的情況下,向剩余的仍在工作的物理主通道適配器提供相應QPCB的副本。
根據(jù)本發(fā)明的另一優(yōu)選實施例,利用直寫式高速緩存。這種情況下,系統(tǒng)存儲器中保存的QPCB是每個物理主通道適配器的專用高速緩存的副本。
根據(jù)本發(fā)明的另一優(yōu)選實施例,回寫式高速緩存被用于主通道適配器。這種情況下,在某些時間,使系統(tǒng)存儲器與高速緩存同步,系統(tǒng)存儲器并不總是反映任意指定時刻,高速緩存的實際內(nèi)容。
在物理主通道適配器整個發(fā)生故障的情況下,屬于發(fā)生故障的主通道適配器的高速緩存的內(nèi)容也丟失。QPCB的系統(tǒng)存儲器副本被提供給剩余的物理主通道適配器的高速緩存。
該副本包含陳舊的數(shù)據(jù)。為了重新使通信同步,并使QPCB信息最新,利用InfiniBand體系結(jié)構(gòu)提供的故障檢查和糾正機制。
雖然這里描述的優(yōu)選實施例涉及的是主通道適配器(HCA),不過本發(fā)明總體含蓋通道適配器,所述通道適配器包括根據(jù)InfiniBand體系結(jié)構(gòu)的HCA和TCA。
下面參考附圖,更詳細地說明本發(fā)明的優(yōu)選實施例,其中圖1是圖解說明具有專用超高速緩沖存儲器的單一主通道適配器的操作的方框圖,圖2關(guān)于直寫式高速緩存,表示具有冗余邏輯主通道適配器的計算機系統(tǒng)的方框圖,圖3表示在用冗余機構(gòu)代替發(fā)生故障的主通道適配器之后,圖2的方框圖,圖4關(guān)于回寫式高速緩存,圖解說明可在高速緩存和系統(tǒng)存儲器的狀態(tài)之間發(fā)生的差異,
圖5-7圖解說明在使用回寫式高速緩存的情況下,利用InfiniBand體系結(jié)構(gòu)提供的故障檢查和糾正方法實現(xiàn)本發(fā)明的冗余機制。
具體實施例方式
圖1表示具有主通道適配器1的計算機系統(tǒng),主通道適配器1包括高速緩存2和高速緩存目錄3。此外,計算機系統(tǒng)還具有系統(tǒng)存儲器4。
借助系統(tǒng)存儲器4,高速緩存目錄3和高速緩存2,隊列對控制塊(QPCB)被虛擬化。在存在一個以上的主通道適配器1的情況下,不同主通道適配器之間的隊列對(QP)編號必須不相交。
所有隊列對控制塊駐留在系統(tǒng)存儲器4中,當被使用時,被載入主通道適配器高速緩存2中,當不被使用時,從主通道適配器高速緩存2卸載。主通道適配器1的故障不會阻止從物理不同的主通道適配器訪問該數(shù)據(jù)。
圖2表示了本發(fā)明的優(yōu)選實施例的方框圖,它圖解說明了冗余機構(gòu)。圖2的計算機系統(tǒng)和圖1的計算機系統(tǒng)的相同部件用相同的附圖標記表示。
計算機系統(tǒng)具有帶有一個或多個端口6的物理主通道適配器1和帶有一個或多個端口8的物理主通道適配器7。端口6和8與InfiniBand子網(wǎng)或架構(gòu)9連接。
兩個物理主通道適配器1和7被看作與InfiniBand體系結(jié)構(gòu)相應的單一主通道適配器。從而,構(gòu)成邏輯主通道適配器10。邏輯主通道適配器10具有物理主通道適配器1和7的端口6和8。
物理主通道適配器1具有高速緩存2,物理主通道適配器7具有高速緩存11。兩個高速緩存2和11被組織成直寫式高速緩存。
此外,計算機系統(tǒng)具有用于存儲物理主通道適配器1和7的隊列對控制塊數(shù)據(jù)的系統(tǒng)存儲器4。不同的物理主通道適配器1和7的隊列對編號不相交。
隊列對編號不存在其它限制。為了便于說明,下面假定物理主通道適配器1具有一組12隊列對控制塊QPCB_2~QPCB_m,物理主通道適配器7具有一組13隊列對控制塊QPCB_m+1~QPCB_n。QPCB_0和QPCB_1用于子網(wǎng)管理目的,這里不再進一步討論。
由于高速緩存2和11是直寫式高速緩存,因此系統(tǒng)存儲器4中的QPCB數(shù)據(jù)與高速緩存2和11中的數(shù)據(jù)相同。
圖3圖解說明用于處理圖2的物理主通道適配器1的完全故障的冗余機構(gòu)。
首先,存在包括端口6的物理主通道適配器1的完全硬件故障。該硬件故障調(diào)用InfiniBand體系結(jié)構(gòu)定義的自動路徑遷移。這樣,涉及主通道適配器1的端口6的一個或多個通信路徑遷移到剩余的物理主通道適配器7。
該程序完全依賴于InfiniBand提供的自動路徑遷移(APM)機制,因為就InfiniBand體系結(jié)構(gòu)來說,主通道適配器1和7不是作為兩個獨立的(物理)主通道適配器存在的,而是僅作為提供端口6和8的單一(邏輯)主通道適配器10存在的。
根據(jù)需要,把組12中的QPCB的副本保存到高速緩存11中。由于組12包含高速緩存2的內(nèi)容的副本,因此不需要另外的恢復機制。
圖4圖解說明就回寫式高速緩存而論的情況。如果使用回寫式高速緩存,而不是直寫式高速緩存,那么保存在系統(tǒng)存儲器4中的QPCB并不總是反映高速緩存14中的QPCB數(shù)據(jù)的最新狀態(tài)。這就是為什么在使用回寫式高速緩存的情況下,需要調(diào)用InfiniBand體系結(jié)構(gòu)的另外的故障檢查和糾正方法的原因。
圖5圖解說明了在物理主通道適配器之一的故障修復(failover)之前的情形。
在發(fā)送器一方,待處理的分組序列號(PSN)序列15保存在系統(tǒng)存儲器4中。具有序列號Sm的待處理PSN之一是根據(jù)保存在系統(tǒng)存儲器4中的信息,將要傳送的下一分組。
此外,待處理PSN的序列16保存在本地超高速緩沖存儲器中,所述本地超高速緩沖存儲器是回寫式高速緩存。序列16代表傳送的分組的最新序列。從而,序列號Sn是系列16中最新的。
在接收器一方,存在PSN序列17。接收器預期的下一分組是具有序列號Rn的分組。在物理主通道適配器之一的故障修復之后,序列15仍然不受影響,因為它保存在系統(tǒng)存儲器4中。
序列15的副本被提供給剩余的仍在工作的物理主通道適配器。這樣,發(fā)生故障的主通道適配器的高速緩存的序列16被剩余的仍在工作的物理主通道適配器的高速緩存中的序列15代替。
這就是從主通道適配器發(fā)送的下一分組是具有在故障修復前發(fā)送的陳舊序列號Sm的分組的原因。接收器向發(fā)送主通道適配器返回確認(ACK),并丟棄該分組。
作為響應,主通道適配器發(fā)送在序列15中識別的下一分組。這樣,序列15被處理,直到序列15達到序列16在故障修復之前的初始狀態(tài)為止。在達到該狀態(tài)之后,正常地繼續(xù)正常的系統(tǒng)操作。
圖6表示了從主通道適配器發(fā)送了具有序列16的下一序列號Sn的分組的情形。在發(fā)送該分組之后,存在主通道適配器的硬件故障。盡管如此,接收器接收具有序列號Rn=Sn的預期分組。
作為響應,接收器向邏輯主通道適配器發(fā)送已收到具有序列號Sn的分組的確認。邏輯主通道適配器,即剩余的仍在工作的物理主通道適配器把該確認解釋成假確認(ghost acknowledgement),并忽略該確認。隨后,如同圖5中所示的情形中一樣,發(fā)送器發(fā)送具有序列15的序列號Sm的分組。
圖7表示了主通道適配器充當接收器的情形。PSN序列18保存在系統(tǒng)存儲器中,最新序列19保存在超高速緩沖存儲器中。此外,存在將由發(fā)送器發(fā)送的待處理PSN的序列20。這是故障修復之前的情形。
在故障修復之后,序列19被序列18代替,即,從系統(tǒng)存儲器把序列18的副本提供給邏輯主通道適配器的剩余的仍在工作的物理主通道適配器部分的高速緩存。序列20保持不變。
當主通道適配器從發(fā)送器收到具有序列20的下一序列號Sn的分組時,這和序列18的預期序列號Rm不相符。作為響應,主通道適配器向發(fā)送器返回否定確認(NAK)。這向分組的發(fā)送器指出分組遺失在子網(wǎng)或架構(gòu)中,發(fā)送器必須重發(fā)這些分組。
否定確認響應具有指示哪個分組是成功接收的最后分組的參數(shù)。這樣,序列20被回置為序列號Sn=Rm,這里Rm是序列18的預期序列號。
附圖標記列表物理主通道適配器1 1HCA1高速緩存2HCA1高速緩存目錄3系統(tǒng)存儲器 4HCA1端口6物理主通道適配器2 7HCA2端口8InfiniBand架構(gòu) 9邏輯主通道適配器10HCA2高速緩存11原始分配給HCA1的PQCB塊 12原始分配給HCA2的PQCB塊 13HCA1或2高速緩存 14PSN序列 15PSN序列 16PSN序列 17PSN序列 18PSN序列 19PSN序列 20
權(quán)利要求
1.一種為通道適配器故障提供冗余的方法,所述方法包括下述步驟提供具有第一數(shù)量的端口的第一物理通道適配器,和具有第二數(shù)量的端口的第二物理通道適配器,提供用于把第一和第二物理通道適配器登記為具有許多第一和第二數(shù)量的端口的一個邏輯通道適配器的程序裝置,提供用于保存第一通道適配器的第一控制信息的第一高速緩存裝置,和用于保存第二通道適配器的第二控制信息的第二高速緩存裝置,提供用于保存第一和第二控制信息的系統(tǒng)存儲器裝置,和提供用于在第一通道適配器發(fā)生故障的情況下,把第一控制信息從系統(tǒng)存儲器復制到第二高速緩存裝置,并用于啟動從第一數(shù)量的端口到第二數(shù)量的端口中的一個或多個端口的自動路徑遷移的裝置。
2.按照權(quán)利要求1所述的方法,其中第一和第二高速緩存裝置起直寫式高速緩存的作用。
3.按照權(quán)利要求1所述的方法,其中第一和第二高速緩存裝置起回存式高速緩存的作用。
4.按照權(quán)利要求3所述的方法,還包括提供使用InfiniBand型故障檢查和糾正方法,使第二端口之一與另一InfiniBand通道適配器之間的通信重新同步的裝置。
5.一種實現(xiàn)按照權(quán)利要求1-4任一所述的方法的計算機程序產(chǎn)品。
6.一種計算機系統(tǒng),包括具有第一數(shù)量的端口(6)的第一物理通道適配器(1),和具有第二數(shù)量的端口(8)的第二物理通道適配器(7),把第一和第二物理通道適配器登記為根據(jù)InfiniBand型體系結(jié)構(gòu)的一個邏輯通道適配器(10)的裝置,所述邏輯通道適配器具有許多第一和第二端口,保存第一通道適配器的第一控制信息的第一高速緩存裝置(2),和保存第二通道適配器的第二控制信息的第二高速緩存裝置(11),保存第一控制信息(12)和第二控制信息(13)的系統(tǒng)存儲器裝置(4),和在第一通道適配器發(fā)生故障的情況下,把第一控制信息從系統(tǒng)存儲器裝置(12)復制到第二高速緩存裝置(11),并啟動從第一數(shù)量的端口(6)到第二數(shù)量的端口(8)中的一個或多個端口的InfiniBand型自動路徑遷移的裝置。
7.按照權(quán)利要求6所述的計算機系統(tǒng),第一和第二高速緩存裝置適合于起直寫式高速緩存的作用。
8.按照權(quán)利要求6所述的計算機系統(tǒng),第一和第二高速緩存裝置適合于起回存式高速緩存的作用。
9.按照權(quán)利要求6、7或8所述的計算機系統(tǒng),還包括使用InfiniBand型故障檢查和糾正方法,使第二數(shù)量的端口中的一個與另一InfiniBand通道適配器之間的通信重新同步的裝置。
全文摘要
本發(fā)明涉及改進與InfiniBand架構(gòu)連接的任意節(jié)點的可靠性的方法,所述方法包括下述步驟a)提供具有第一數(shù)量的端口的第一物理通道適配器,和具有第二數(shù)量的端口的第二物理通道適配器,b)提供用于把第一和第二物理通道適配器登記為具有許多第一和第二數(shù)量的端口的一個邏輯通道適配器的程序裝置,c)提供用于保存第一和第二通道適配器的第一和第二控制信息的第一和第二高速緩存裝置,d)提供用于保存第一和第二控制信息的系統(tǒng)存儲器裝置,和e)提供用于在第一通道適配器發(fā)生故障的情況下,把第一控制信息從系統(tǒng)存儲器復制到第二高速緩存裝置,并用于啟動從第一數(shù)量的端口到第二數(shù)量的端口的自動路徑遷移的裝置。
文檔編號H04L12/56GK1647466SQ03808578
公開日2005年7月27日 申請日期2003年4月4日 優(yōu)先權(quán)日2002年4月18日
發(fā)明者托馬斯·施里夫, 格爾德·康拉德·巴耶爾, 沃爾夫?qū)ぐ?颂? 馬庫斯·海爾姆斯, 于爾根·梅格納爾, 克里斯托弗·萊什, 克勞斯·圖里什 申請人:國際商業(yè)機器公司