專利名稱:用于適配卡故障轉(zhuǎn)移的設(shè)備、系統(tǒng)和方法
技術(shù)領(lǐng)域:
本發(fā)明涉及適配卡并且更加具體地涉及適配卡故障轉(zhuǎn)移。
技術(shù)背景數(shù)據(jù)處理系統(tǒng)經(jīng)常包括多個處理器組。每一個處理器組可以包括 一個或者多個微處理器、高速緩沖存儲器、主存儲器,到外圍設(shè)備的 橋和總線等。例如,處理器組可以通過北橋和南橋而與外圍設(shè)備互連(PCI)總線通信。諸如網(wǎng)絡(luò)連接部、存儲裝置、專用計算引擎等的 適配卡外圍設(shè)備可以通過PCI總線與處理器組通信。適配卡通常包括安裝在電路板上的多個半導(dǎo)體電路。適配卡可以 通過一個或者多個連接器連接到總線。每一個適配卡可以執(zhí)行一個或 者多個專用功能。例如,適配卡可以用作以太網(wǎng)控制器、獨立磁盤冗佘陣列(RAID)控制器等。數(shù)據(jù)處理系統(tǒng)的多于一個處理器組可能要求訪問適配卡。例如, 兩個或者更多處理器組的群集可以訪問RAID控制器適配卡從而將數(shù) 據(jù)寫入容錯RAID子系統(tǒng)中的硬盤驅(qū)動器和從硬盤驅(qū)動器讀取數(shù)據(jù)。 與兩個處理器組通信的適配卡可以被稱作雙尾適配卡。雖然多個處理器組可以訪問適配卡,但是一個處理器組在配置和 故障恢復(fù)方面控制該適配卡??刂七m配卡的處理器組在這里被稱作擁 有者處理器組。擁有者處理器組可以配置和管理適配卡。提供單一擁 有者處理器組可以防止兩個或者更多處理器組嘗試配置和管理適配 卡。不幸的是,如果擁有者處理器組發(fā)生故障,則其它處理器組可能 不能使用適配卡。結(jié)果,數(shù)據(jù)處理器系統(tǒng)的功能可能降低和/或被削弱。發(fā)明內(nèi)容優(yōu)選地提供一種用于適配卡故障轉(zhuǎn)移的設(shè)備、系統(tǒng)和方法。有益 的是,這種設(shè)備、系統(tǒng)和方法能夠優(yōu)選地從初始擁有者處理器組轉(zhuǎn)移 適配卡控制以允許繼續(xù)使用該適配卡。用于適配卡故障轉(zhuǎn)移的設(shè)備優(yōu)選地設(shè)有多個模塊,所述模塊被配置為功能性執(zhí)行以下步驟連接第一處理器組,連接第二處理器組, 探測故障,和修改切換模塊。在所述實施例中的這些模塊包括切換模 塊、探測模塊,和設(shè)置模塊。該切換模塊包括半導(dǎo)體邏輯塊并且通過第一端口在邏輯上將第 一處理器組連接到適配卡作為擁有者處理器組。除第二端口以外,該 擁有者處理器組管理該適配卡并且從適配卡接收錯誤消息。該切換模 塊進一步通過第二端口在邏輯上將第二處理器組連接到適配卡作為非 擁有者處理器組。該非擁有者處理器組管理該第二端口。該探測模塊包括半導(dǎo)體邏輯塊和在處理器上執(zhí)行的軟件指令。另 外,該探測模塊探測第一處理器組的故障。該設(shè)置模塊修改該切換模塊以在邏輯上將第二處理器組連接到 適配卡作為擁有者處理器組并且響應(yīng)于探測到故障而在邏輯上從適配 卡斷開第一處理器組。該設(shè)置模塊包括在處理器上執(zhí)行的軟件指令。 如果第一處理器組發(fā)生故障,則該設(shè)備執(zhí)行從笫一處理器組到第二處 理器組的故障轉(zhuǎn)移。本發(fā)明還提出 一種用于適配卡故障轉(zhuǎn)移的系統(tǒng)。該系統(tǒng)可以被實 施為數(shù)據(jù)處理系統(tǒng)。具體地,該系統(tǒng)在一個實施例中包括第一處理器 組、第二處理器組,和適配卡。第一和第二處理器組與適配卡通信。第二處理器組優(yōu)選地包括設(shè)置模塊。適配卡包括控制器、第一存儲器模塊,和切換模塊。該控制器管理該適配卡。第一存儲器模塊存儲包括用于控制器的 軟件指令和設(shè)置數(shù)據(jù)的控制存儲。該切換模塊包括半導(dǎo)體邏輯塊并且通過第一端口在邏輯上將第一處理器組連接到適配卡作為擁有者處理 器組。除第二端口以外,該擁有者處理器組管理該適配卡并且從適配上將第二處理器組連接到 適配卡作為擁有者處理器組并且響應(yīng)于探測到故障而在邏輯上從適配卡斷開笫一處理器組。該系統(tǒng)優(yōu)選地響應(yīng)于故障從擁有適配卡的第一處理器組到擁有 適配卡的第二處理器組進行故障轉(zhuǎn)移。本發(fā)明還提出 一種用于適配卡故障轉(zhuǎn)移的方法。在所公開實施例的功能的^"驟。在一個實施例中,該方法包括連接第二處理器組,連 接第二處理器組,探測故障,和修改切換模塊。切換模塊通過第一端口將第一處理器組連接到適配卡作為擁有 者處理器組。除第二端口以外,該擁有者處理器組管理該適配卡并且 從適配卡接收錯誤消息。該切換模塊進一步通過笫二端口將第二處理 器組連接到適配卡作為非擁有者處理器組。該非擁有者處理器組管理 該第二端口 。探測模塊探測第一處理器組的故障。設(shè)置模塊修改該切換模塊以 在邏輯上將第二處理器組連接到適配卡作為擁有者處理器組并且響應(yīng) 于探測到故障而在邏輯上從適配卡斷開第一處理器組。該方法優(yōu)選地執(zhí)行從第一處理器組到第二處理器組的故障轉(zhuǎn)移, 使得適配卡繼續(xù)可用。根據(jù)一個方面,提供一種用于適配卡故障轉(zhuǎn)移的設(shè)備,該設(shè)備包括切換模塊,該切換模塊包括半導(dǎo)體邏輯塊并且被配置為通過第一 端口在邏輯上將第一處理器組連接到適配卡作為擁有者處理器組,其中,除第二端口以外,該擁有者處理器組管理該適配卡并且從適配卡接收錯誤消息,并且該切換模塊進一步通過第二端口在邏輯上將第二處理器組連接到適配卡作為非擁有者處理器組,其中該非擁有者處理理器組并且響應(yīng)于探測到故障而在邏輯上從適配卡斷開第一處理器 組。根據(jù)一個方面,提供一種用于適配卡故障轉(zhuǎn)移的系統(tǒng),該系統(tǒng)包 括與適配卡通信的第一處理器組;與適配卡通信并且包括被配置為 探測第一處理器組的故障的探測模塊的第二處理器組;該適配卡包括 被配置為管理該適配卡的控制器;被配置為存儲包括用于控制器的軟 件指令和設(shè)置數(shù)據(jù)的控制存儲的第一存儲器模塊;切換模塊,該切換 模塊包括半導(dǎo)體邏輯塊并且被配置為通過第一端口在邏輯上將第一處 理器組連接到適配卡作為擁有者處理器組,其中,除第二端口以外, 該擁有者處理器組管理該適配卡并且從適配卡接收錯誤消息,并且該 切換模塊進一步通過第二端口在邏輯上將第二處理器組連接到適配卡 作為非擁有者處理器組,其中該非擁有者處理器組管理該第二端口; 該第二處理器組進一步包括設(shè)置模塊,該設(shè)置模塊被配置為修改該切 換模塊以在邏輯上將第二處理器組連接到適配卡作為擁有者處理器組 并且響應(yīng)于探測到故障而在邏輯上從適配卡斷開笫一處理器組。根據(jù)另一方面,提供一種包括具有處理器可讀程序的處理器可用 介質(zhì)的處理器程序產(chǎn)品,其中當(dāng)在處理器上執(zhí)行該處理器可讀程序時 使得處理器通過第一端口將適配卡的切換模塊連接到第一處理器組 作為擁有者處理器組,其中,除第二端口以外,該擁有者處理器組管 理該適配卡并且從適配卡接收錯誤消息;通過第二端口將第二處理器 組連接到適配卡作為非擁有者處理器組,其中該非擁有者處理器組管 理該第二端口;探測第一處理器組的故障;和修改該切換模塊以在邏 輯上將第二處理器組連接到適配卡作為擁有者處理器組并且響應(yīng)于探 測到故障而在邏輯上從適配卡斷開該第一處理器組。根據(jù)另一方面,提供一種用于適配卡故障轉(zhuǎn)移的方法,該方法包 括通過第一端口使用切換模塊在邏輯上將第 一處理器組連接到適配卡作為擁有者處理器組,其中,除第二端口以外,該擁有者處理器組
管理該適配卡并且從適配卡接收錯誤消息;通過第二端口使用該切換
模塊在邏輯上將第二處理器組連接到適配卡作為非擁有者處理器組,
其中該非擁有者處理器組管理該第二端口;探測第一處理器組的故障;
和修改該切換模塊以在邏輯上將第二處理器組連接到適配卡作為擁有
者處理器組并且響應(yīng)于探測到故障而在邏輯上從適配卡斷開第一處理器組。
在本說明書全文中對于特征、優(yōu)點或者類似語言的述及并不意味 著利用本發(fā)明可以實現(xiàn)的所有特征和優(yōu)點應(yīng)該是或者是在本發(fā)明的任 何單一實施例中。實際上,述及特征和優(yōu)點的語言應(yīng)該被理解為意味 著結(jié)合實施例描述的具體特征、優(yōu)點或者特性被包括于本發(fā)明的至少 一個實施例中。因此,在本說明書全文中對于特征和優(yōu)點以及類似語 言的討論可以但不必然參考同 一 實施例。
進而,可以在一個或者多個實施例中以任何適當(dāng)?shù)姆绞浇M合本發(fā) 明的所述特征、優(yōu)點和特性。有關(guān)領(lǐng)域技術(shù)人員可以意識到,可以并 不利用具體實施例的一個或者多個具體特征或者優(yōu)點地實踐本發(fā)明。 在其它情形下,可能并不存在于本發(fā)明的所有實施例中的另外的特征 和優(yōu)點可以被認(rèn)可在特定實施例中。
本發(fā)明實施例執(zhí)行從擁有適配卡的第一處理器組到第二處理器 組的故障轉(zhuǎn)移。本發(fā)明優(yōu)選地支持當(dāng)笫一處理器組發(fā)生故障時繼續(xù)使 用該適配卡。本發(fā)明的這些特征和優(yōu)點根據(jù)以下說明和所附權(quán)利要求 將變得更加充分清楚,或者可以通過實踐如在下文中闡述的發(fā)明而得 以領(lǐng)會。
現(xiàn)在將僅僅通過實例并且參考以下附圖描述
具體實施例方式
圖1是例示根據(jù)本發(fā)明的數(shù)據(jù)處理系統(tǒng)的一個實施例的示意框
圖2是例示本發(fā)明的適配卡的一個實施例的示意框圖;圖3是例示本發(fā)明的適配卡的一個可替代實施例的示意框圖; 圖4是例示本發(fā)明的故障轉(zhuǎn)移設(shè)備的一個實施例的示意框圖; 圖5是例示本發(fā)明的故障轉(zhuǎn)移方法的一個實施例的示意流程圖; 圖6是例示本發(fā)明的適配卡通信的一個實施例的示意框圖; 圖7是例示本發(fā)明的適配卡通信的一個可替代實施例的示意框 圖;并且
圖8是例示本發(fā)明的故障轉(zhuǎn)移通信的一個實施例的示意框圖。
具體實施例方式
在本說明書中描述的很多功能單元已被標(biāo)識成模塊,從而更加特 別地強調(diào)它們的實現(xiàn)獨立性。例如,模塊可以被實現(xiàn)為包括定制VLSI 電路或者門陣列、即用半導(dǎo)體例如邏輯芯片、晶體管或者其它離散構(gòu) 件的硬件電路。模塊還可以被實現(xiàn)為可編程硬件器件,例如現(xiàn)場可編 程門陣列(FPGA)、可編程陣列邏輯、可編程邏輯器件等。
模塊還可以被實現(xiàn)為用于由各種類型的處理器執(zhí)行的軟件。 一種 可執(zhí)行代碼的已標(biāo)識模塊可以例如包括處理器指令的一個或者多個物 理或者邏輯塊,處理器指令可以例如被組織成對象、程序或者函數(shù)。 盡管如此,已標(biāo)識模塊的可執(zhí)行代碼不需要以物理方式位于一起,而 是可以包括在不同位置中存儲的異類指令,所述指令當(dāng)在邏輯上被結(jié) 合到一起時,構(gòu)成模塊并且實現(xiàn)關(guān)于該模塊的設(shè)定目的。
實際上,可執(zhí)行代碼的模塊可以是單一指令,或者很多指令,并 且可以甚至分布于幾個不同的代碼段之上、在不同程序間,以及跨接 幾個存儲器裝置。類似地,操作數(shù)據(jù)在這里可以在模塊內(nèi)被標(biāo)識和例 示,并且可以;敗實施為任何適用的形式并且#皮組織于任何適當(dāng)類型的 數(shù)據(jù)結(jié)構(gòu)內(nèi)。操作數(shù)據(jù)可以被收集作為單一數(shù)據(jù)集,或者可以被分布 于不同的位置、包括不同的存儲裝置之上。
在本說明書全文中對于"一個實施例"、"實施例"或者類似語 言的述及意味著結(jié)合實施例描述的具體特征、結(jié)構(gòu)或者特性被包括于 本發(fā)明的至少一個實施例中。因此,在本說明書全文中出現(xiàn)的短語"在一個實施例中,,、"在實施例中,,和類似的語言可以但不必然全部參 考同一實施例。
進而,本發(fā)明的所述特征、結(jié)構(gòu)或者特性可以在一個或者多個實 施例中以任何適當(dāng)?shù)姆绞浇M合。在以下說明中,提供了多個具體細(xì)節(jié), 例如編程、軟件模塊、使用者選擇、網(wǎng)絡(luò)交易、數(shù)據(jù)庫查詢、數(shù)據(jù)庫 結(jié)構(gòu)、硬件模塊、硬件電路、硬件芯片等的實例以提供對于本發(fā)明實 施例的完全理解。然而,相關(guān)領(lǐng)域技術(shù)人員可以認(rèn)識到,可以不利用 一個或者多個所述具體細(xì)節(jié)或者利用其它方法、構(gòu)件、材料等實踐本 發(fā)明。在其它情形下,眾所周知的結(jié)構(gòu)、材料或者操作未被詳細(xì)示出 或者描述以避免搞混本發(fā)明的某些方面。
圖1是例示根據(jù)本發(fā)明的數(shù)據(jù)處理系統(tǒng)100的一個實施例的示意 框圖。數(shù)據(jù)處理系統(tǒng)100包括一個或者多個處理器組105和適配卡 110。雖然為了簡明起見,示出兩個處理器組105,但是可以采用任何 數(shù)目的處理器組105。
第一處理器組105a和第二處理器組105b,經(jīng)由一個或者多個通 信信道120與適配卡110通信。在一個實施例中,通信信道120^皮配 置為快速外圍設(shè)備互連(PCIe)總線??商娲?,通信信道120可以 被配置為外圍設(shè)備互連擴展(PCI-X)總線或者外圍設(shè)備互連(PCI) 總線。本領(lǐng)域技術(shù)人員可以認(rèn)識到,可以利用多種通信信道配置實踐 本發(fā)明。
適配卡110為第一處理器組105a和第二處理器組105b執(zhí)行一個 或者多個功能。例如,適配卡110可以用作以太網(wǎng)控制器??商娲?, 適配卡110可以用作RAID控制器。在特定實施例中,適配卡110用 作存儲區(qū)網(wǎng)絡(luò)控制器。本領(lǐng)域技術(shù)人員可以認(rèn)識到,可以利用多種適 配卡類型和功能實踐本發(fā)明。
第一處理器組105a起初被配置成擁有者處理器組。擁有者處理 器組初始化、控制并且管理適配卡110。例如,在通電引導(dǎo)期間,第 一處理器組105a作為擁有者處理器組可以如將在此后所描述的那樣 發(fā)現(xiàn)并且初始化適配卡110。
14第二處理器組105b起初被配置為非擁有者處理器組。雖然為了 簡明起見僅僅描述了一個非擁有者處理器組,但是該數(shù)據(jù)處理系統(tǒng)可 以包括多個非擁有者處理器組。非擁有者處理器組還可以使用適配卡 110。例如,非擁有者處理器組可以采用RAID控制器適配卡110以訪 問RAID子系統(tǒng)。然而,非擁有者處理器組并不初始化、管理和/或控 制適配卡110。
適配卡110可以與裝置115通信。該裝置可以是網(wǎng)絡(luò)接口、 RAID 子系統(tǒng)、存儲裝置等。在初始化期間,擁有者處理器組還可以發(fā)現(xiàn)并 且初始化裝置115。如將在此后所描述地,在初始化期間,非擁有者 處理器組可能不能發(fā)現(xiàn)裝置115。
如果第一處理器組105a發(fā)生故障,則適配卡110可能不能由第 二處理器組105b使用。結(jié)果,數(shù)據(jù)處理系統(tǒng)IOO可能失去關(guān)鍵的功能。 如將在此后所描述地,根據(jù)一個優(yōu)選實施例,本發(fā)明執(zhí)行從第一處理 器組105a到第二處理器組105b的適配卡110所有權(quán)故障轉(zhuǎn)移以支持 繼續(xù)4吏用適配卡110。
圖2是例示本發(fā)明的適配卡250的一個實施例的示意框圖。適配 卡250是圖1的適配卡110的一個實施例。對于適配卡250的說明引 用圖1的元件,同樣的數(shù)字是指同樣的元件。
適配卡250包括一個或者多個端口 205、切換模塊210、控制器 230、設(shè)置寄存器235、存儲器模塊240,和適配卡功能塊245。本領(lǐng) 域技術(shù)人員可以認(rèn)識到,可以利用另外的端口 205、切換模塊210、控 制器230、設(shè)置寄存器235、存儲器模塊240和適配卡功能塊245以及 其它裝置和模塊實踐本發(fā)明。
端口 205可以被配置為PCI接口 、 PCIe接口、 PCI-X接口等。 第一處理器組105a可以與第一端口 205a通信,而第二處理器組105b 可以與第二端口 205b通信。
切換模塊210通過第一端口 205a在邏輯上和物理上將第一處理 器組105a連接到適配卡110作為擁有者處理器組。除了第二端口 205b 以外,擁有者處理器組管理適配卡110。另外,擁有者處理器組從適配卡110接收錯誤消息。
切換模塊210進一步通過第二端口 205b在邏輯上和物理上將第 二處理器組105b連接到適配卡110作為非擁有者處理器組。非擁有者 處理器組管理第二端口 205b。
適配卡功能塊245可以包括通信功能塊,例如以太網(wǎng)控制器功能 塊、令牌環(huán)控制器功能塊等。適配卡功能塊245還可以包括存儲管理 功能塊,例如RAID控制器功能塊、存儲控制器功能塊等。
控制器230管理適配卡110。例如,控制器230可以初始化并且 管理適配卡功能塊245。存儲器模塊240存儲包括用于控制器230的 軟件指令和設(shè)置數(shù)據(jù)的控制存儲??刂破?30可以包括執(zhí)行軟件指令 的處理器、指令排序器等。軟件指令可以被配置成一個或者多個處理 器程序產(chǎn)品。
設(shè)置寄存器235存儲二進制數(shù)據(jù)值??梢岳迷谠O(shè)置寄存器235 中存儲的數(shù)據(jù)值修改切換模塊210、適配卡功能塊245、控制器230 和存儲器模塊240的功能。例如,在設(shè)置寄存器235中存儲的值可以 使切換模塊210將被連接到第一端口 205a的處理器組105配置成擁有 者處理器組并且將被連接到第二端口 205b的處理器組配置成非擁有 者處理器組。
圖3是例示本發(fā)明的適配卡350的一個可替代實施例的示意框 圖。適配卡350是圖1的適配卡110的可替代實施例。對于適配卡250 的說明參考圖1-2的元件,同樣的數(shù)字是指同樣的元件。具體地,端 口 205、切換模塊210、控制器230和設(shè)置寄存器235是圖2的端口 205、切換模塊210、控制器230和設(shè)置寄存器235。
適配卡350進一步包括第一存儲器模塊240a和第二存儲器模塊 240b。第一存儲器模塊240a存儲包括用于控制器230的軟件指令和設(shè) 置數(shù)據(jù)的第一控制存儲。在一個實施例中,第一控制存儲配置切換模 塊210和控制器230以將與第一端口 205a通信的處理器組105視為擁 有者處理器組并且將與第二端口 205b通信的處理器組105視為非擁有 者處理器組。第二存儲器模塊240b存儲還包括用于控制器230的軟件指令和 設(shè)置數(shù)據(jù)的第二控制存儲。在一個實施例中,第二控制存儲配置切換 模塊210和控制器230以將與第二端口 205b通信的處理器組105視為 擁有者處理器組并且將與第一端口 205a通信的處理器組105視為非擁 有者處理器組。
在一個實施例中,第一存儲器模塊240a和第二存儲器模塊240b 每一個均共享二進制地址總線和二進制數(shù)據(jù)總線。在設(shè)置寄存器235 中存儲的第一二進制值可以啟用第一存儲器模塊240a并且禁用第二 存儲器模塊240b,使得僅僅第一存儲器模塊240a在二進制數(shù)據(jù)總線 上輸出數(shù)據(jù)。在設(shè)置寄存器235中存儲的相反的第二二進制值可以禁 用第一存儲器模塊240a并且啟用第二存儲器模塊240b以在二進制數(shù) 據(jù)總線上輸出數(shù)據(jù)。因此,可以使用寫入設(shè)置寄存器235的值來選擇 由控制器230使用的控制存儲。
適配卡350進一步包括RAID控制器305和第一下游端口 310a 和第二下游端口 310b。第一下游端口 310a和第二下游端口 310b分別 與第一 RAID子系統(tǒng)315a和第二 RAID子系統(tǒng)315b通信。RAID控 制器305、下游端口 310和RAID子系統(tǒng)315是可以由適配卡350支 持且并未以限制方式示出的功能性示例。
在一個實施例中,第一處理器組105a和第二處理器組105b可以 各自均使用適配卡350的RAID控制器305來訪問RAID子系統(tǒng)315。 RAID控制器305和切換才莫塊210可以在第一和第二處理器組105之 間裁定優(yōu)先權(quán)(優(yōu)先級),使得每一個處理器組105均可以訪問RAID 子系統(tǒng)315。 RAID控制器305可以進一步自主地執(zhí)行一個或者多個 RAID控制器功能,例如計算奇偶條帶數(shù)據(jù)、從冗余數(shù)據(jù)恢復(fù)損失的 數(shù)據(jù)等。
圖4是例示本發(fā)明的故障轉(zhuǎn)移設(shè)備400的一個實施例的示意框 圖。設(shè)備400可以被實施為圖1的一個或者多個處理器組105和圖1-3 的適配卡110、 250、 350。對于設(shè)備400的說明參考圖1-3的元件, 同樣的數(shù)字是指同樣的元件。設(shè)備400包括切換模塊210、探測模塊405和設(shè)置模塊410。
切換模塊210包括本領(lǐng)域技術(shù)人員熟知的半導(dǎo)體邏輯塊。另外, 切換模塊210可以包括縱橫開關(guān)、非阻斷點對點開關(guān)等。在一個實施 例中,切換^t塊210可以將第一端口 205a和第二端口 205b連接到適 配卡110的一個或者多個半導(dǎo)體器件。
探測模塊405包括半導(dǎo)體邏輯塊和在例如第二處理器組105b和/ 或控制器處理器的處理器上執(zhí)行的軟件指令。另外,如將在此后所描 述地,探測模塊405探測第一處理器組105a的故障。
設(shè)置模塊410修改切換模塊210以將第二處理器組105b連接到 適配卡110作為擁有者處理器組并且響應(yīng)于探測到故障而在邏輯上從 適配卡斷開第一處理器組105a。設(shè)置^=莫塊410包括在諸如第二處理器 組105b和/或控制器處理器的處理器上執(zhí)行的軟件指令。該設(shè)備執(zhí)行 從第一處理器組到第二處理器組的故障轉(zhuǎn)移。
大體上以邏輯流程圖闡述隨后的示意流程圖。這樣,所描繪的次 序和所標(biāo)注的步驟表示所提出的方法的一個實施例。可以設(shè)想與所例 示方法的一個或者多個步驟或者其一些部分在功能、邏輯或者效果方 面等價的其它步驟和方法。另外地,所采用的格式和符號被提供用于 解釋該方法的邏輯步驟并且應(yīng)該被理解成并非用于限制該方法的范 圍。雖然可以在流程圖中采用各種箭頭類型和線條類型,但是它們應(yīng) 該被理解成并非用于限制相應(yīng)方法的范圍。實際上, 一些箭頭或者其 它連接器可以被用于僅僅表示該方法的邏輯流。例如,箭頭可以表示 在所描繪方法的所被列舉的步驟之間的、未規(guī)定持續(xù)時間的等待或者 監(jiān)視周期。另外地,其中具體方法所發(fā)生的次序可以或者可以不嚴(yán)格 地遵守所示的相應(yīng)步驟的次序。
圖5是例示本發(fā)明的故障轉(zhuǎn)移方法500的 一個實施例的示意流程 圖。方法500基本上包括用于執(zhí)行以上關(guān)于圖l-4的所述設(shè)備和系統(tǒng) 的操作而提出的功能的步驟。在一個實施例中,利用包括具有處理器 可讀程序的處理器可讀介質(zhì)的處理器程序產(chǎn)品實現(xiàn)所述方法。該處理 器可讀程序可以被集成到半導(dǎo)體器件,例如控制器230和/或處理器組105中,其中,與控制器230和/或處理器組105相結(jié)合,該程序能夠 執(zhí)行方法500。
方法500開始并且切換模塊210通過第一端口 205a將第一處理 器組105a連接505到適配卡110作為擁有者處理器組。除了第二端口 205b之外,擁有者處理器組管理適配卡110并且從適配卡110接收錯 誤消息。例如,如將在此后所描述地,擁有者處理器組可以在通電引 導(dǎo)期間初始化適配卡110。擁有者處理器組還可以與控制器230直接 通信。在另一個實例中,如果適配卡110被配置為RAID控制器適配 卡350并且RAID控制器適配卡350在RAID子系統(tǒng)315中探測到硬 盤驅(qū)動器故障,則RAID控制器適配卡350可以向擁有者處理器組傳 送描述該故障的錯誤消息。
切換模塊210進一步通過第二端口 205b將第二處理器組105b連 接510到適配卡IIO作為非擁有者處理器組。非擁有者處理器組并不 初始化適配卡110。另外,非擁有者處理器組可以不從適配卡110接 收錯誤消息、狀態(tài)消息等。繼續(xù)以上實例,如果RAID控制器適配卡 350遇到硬盤驅(qū)動故障,則RAID控制器適配卡350并不向非擁有者 處理器組傳送錯誤消息。
非擁有者處理器組管理笫二端口 205b。在一個實施例中,僅僅 非擁有者處理器組與第二端口 205b通信??商娲?,非擁有者處理器 組可以設(shè)定用于第二端口 205b的數(shù)據(jù)傳送速率、指引第二端口 205b 傳送數(shù)據(jù)等。
探測模塊405探測515第一處理器組105a的故障。在一個實施 例中,探測模塊405被配置為包括在第二處理器組105b上執(zhí)行的軟件 指令的處理器程序產(chǎn)品。探測模塊405可以周期性地與第一處理器組 105a通信。如果探測模塊405在規(guī)定間隔期間未能與第一處理器組 105a通信,則探測才莫塊405可以探測515第一處理器組105a的故障。
在一個可替代實施例中,在第一處理器組105a和第二處理器組 105b上執(zhí)行并且管理第一處理器組105a和第二處理器組105b的多節(jié) 點操作系統(tǒng)可以探測第 一處理器組105a的故障。多節(jié)點操作系統(tǒng)可以響應(yīng)于第一處理器組105a的故障向探測模塊405傳送錯誤消息并且探 測模塊405可以根據(jù)該錯誤消息探測515第一處理器組105a的故障。
在特定實施例中,探測模塊405被配置成與在控制器230的處理 器上執(zhí)行的處理器程序產(chǎn)品耦接的半導(dǎo)體邏輯塊。如果第一處理器組 105a在規(guī)定時間間隔期間未與適配卡110通信,則探測模塊405可以 探測515到第一處理器組105a的故障。例如,如果第一處理器組105a 在兩(2)分鐘時間間隔期間未與適配卡110通信,則探測模塊405 可以詢問第一處理器組105a。如果第一處理器組105a未響應(yīng),則探 測模塊104可以探測515到第一處理器組105a的故障。
設(shè)置模塊410修改520切換模塊210以響應(yīng)于探測到故障在邏輯 上將笫二處理器組105b連接到適配卡110作為擁有者處理器組。在一 個實施例中,設(shè)置模塊410包括在第二處理器組105b上執(zhí)行的處理器 程序產(chǎn)品。響應(yīng)于探測模塊405探測515到第 一處理器組105a的故障, 設(shè)置模塊410可以向適配卡110的第二端口 205b傳送規(guī)定的二進制 值。該規(guī)定的二進制值可以指引控制器230接受來自非擁有者處理器 組的命令。第二處理器組105b然后可以將二進制值寫入設(shè)置寄存器 235,該二進制值指定與第二端口 205b通信的處理器組105作為擁有 者處理器組。
在可替代實施例中,在第二處理器組105b上執(zhí)行的設(shè)置模塊410 將二進制值寫入設(shè)置寄存器235,該二進制值使控制器230采用第二 存儲器模塊240b的第二控制存儲。設(shè)置模塊410可以進一步重新初始 化適配卡110,使得控制器230加載并且執(zhí)行第二控制存儲。
在一個實施例中,設(shè)置模塊410包括在控制器230的處理器上執(zhí) 行的半導(dǎo)體邏輯塊和/或一個或者多個處理器程序產(chǎn)品。設(shè)置模塊410 可以修改寫入設(shè)置寄存器235的二進制值,該二進制值使切換模塊210 將與第二端口 205b通信的處理器組105視為擁有者處理器組。另外, 設(shè)置模塊410可以將請求第二處理器組105b承擔(dān)擁有者處理器組的任 務(wù)的消息傳送到第二處理器組105b。
設(shè)置模塊410可以進一步響應(yīng)于探測到故障而在邏輯上從適配卡110斷開第一處理器組105a。在一個實施例中,設(shè)置模塊410將二進 制值寫入設(shè)置寄存器235,該二進制值使切換模塊210停止通過第一 端口 205a接收通信。在特定實施例中,設(shè)置模塊410將請求從數(shù)據(jù)處 理系統(tǒng)IOO物理地斷開第一處理器組105a消息傳送給系統(tǒng)管理員。
通過探測515第一處理器組105a的故障并且修改520切換模塊 210以連接到作為擁有者處理器組的第二處理器組105b,當(dāng)?shù)谝惶幚?器組105a發(fā)生故障時,本發(fā)明支持從第一處理器組到第二處理器組 105b的快速故障轉(zhuǎn)移。結(jié)果, 一個或者多個處理器組105可以繼續(xù)使 用適配卡110。
圖6是例示本發(fā)明的適配卡通信部600的一個實施例的示意框 圖。對于通信部600的說明參考圖1-5的元件,同樣的數(shù)字是指同樣 的元件。通信部600包括第一處理器組105a、第二處理器組105b、適 配卡110和RAID子系統(tǒng)315的邏輯表示。
通信部600示出作為擁有者處理器組的第一處理器組105a。在初 始化例如通電引導(dǎo)、軟復(fù)位等的初始化期間,第一處理器組105a將發(fā) 現(xiàn)通信傳送到被連接到通信信道120的一個或者多個裝置。例如,如 果通信信道120是PCIe總線,則第一處理器組105a向被連接到PCIe 總線的每一個裝置例如適配卡110傳送發(fā)現(xiàn)請求。適配卡110可以利 用識別適配卡110的識別響應(yīng)而響應(yīng)于該發(fā)現(xiàn)請求。該發(fā)現(xiàn)請求和識 別響應(yīng)被示為擁有者通信605。切換模塊210僅僅支持在擁有者處理 器組第一處理器組605和適配卡110之間的擁有者通信605。
因為切換模塊210支持與第一處理器組105a的發(fā)現(xiàn)通信605,所 以第一處理器組105a可以初始化適配卡IIO并且指引適配卡110向第 一處理器組105a傳送錯誤消息、狀態(tài)消息等。第一處理器組105a還 可以與控制器230直接通信。第二處理器組105b不能初始化適配卡 110。
第 一處理器組105b還可以向裝置例如所描繪的RAID子系統(tǒng)315 通過適配卡110傳送發(fā)現(xiàn)通信610。因此,第一處理器組105a還可以 初始化RAID子系統(tǒng)315。相反,第二處理器組105b將適配卡110視
21為端點。因此第二處理器組105b并不負(fù)責(zé)或者試圖初始化諸如RAID 子系統(tǒng)315的裝置。
圖7是例示本發(fā)明的適配卡通信700的 一個可替代實施例的示意 框圖。通信700示出圖6的第一處理器組105a、第二處理器組105b、 適配卡110和RAID子系統(tǒng)115的邏輯表示。
如上所述,在設(shè)置模塊410修改520切換模塊210以在邏輯上將 第二處理器組105b連接到適配卡IIO作為擁有者處理器組之后,第二 處理器組105b具有與適配卡110的擁有者通信605。因此第二處理器 組可以初始化適配卡110、從適配卡IIO接收錯誤消息等。設(shè)置模塊 410還可以在邏輯上斷開第一處理器組105a。
圖8是例示本發(fā)明的故障轉(zhuǎn)移通信800的一個實施例的示意框 圖。通信800示出圖7的第一處理器組105a、第二處理器組105b、適 配卡110和RAID子系統(tǒng)115的邏輯表示。
作為擁有者處理器組,第二處理器組105b可以向RAID子系統(tǒng) 315傳送發(fā)現(xiàn)通信610。另外,設(shè)置模塊410修改540切換模塊210 以在邏輯上從適配卡110斷開第一處理器模塊110。因此,雖然第一 處理器模塊IIO可以向適配卡IIO傳送諸如隨機數(shù)據(jù)的二進制數(shù)據(jù), 但是適配卡110可以不接收所傳送的二進制數(shù)據(jù)。
本發(fā)明的實施例執(zhí)行從擁有適配卡110的第一處理器組105a到 第二處理器組105b的故障轉(zhuǎn)移。本發(fā)明優(yōu)選地支持當(dāng)?shù)谝惶幚砥鹘M 105a發(fā)生故障時繼續(xù)^f吏用適配卡110。
本發(fā)明可以被實施為其它具體形式而不偏離其精神或者基本特
本發(fā)明的范圍因此由所附權(quán)利要求而非由前述說明所表示。在與權(quán)利 要求等效的含義和范圍內(nèi)的所有改變均被涵蓋于它們的范圍內(nèi)。
權(quán)利要求
1.一種用于適配卡故障轉(zhuǎn)移的設(shè)備,所述設(shè)備包括切換模塊,所述切換模塊包括半導(dǎo)體邏輯塊并且被配置為通過第一端口在邏輯上將第一處理器組連接到適配卡作為擁有者處理器組,其中,除第二端口以外,所述擁有者處理器組管理所述適配卡并且從所述適配卡接收錯誤消息,并且所述切換模塊進一步通過所述第二端口在邏輯上將第二處理器組連接到所述適配卡作為非擁有者處理器組,其中所述非擁有者處理器組管理所述第二端口;探測模塊,所述探測模塊包括半導(dǎo)體邏輯塊和在處理器上執(zhí)行的軟件指令并且被配置為探測所述第一處理器組的故障;和設(shè)置模塊,所述設(shè)置模塊包括在處理器上執(zhí)行的軟件指令并且被配置為修改所述切換模塊以在邏輯上將所述第二處理器組連接到所述適配卡作為擁有者處理器組并且響應(yīng)于探測到所述故障在邏輯上從所述適配卡斷開所述第一處理器組。
2. 根據(jù)權(quán)利要求1所述的設(shè)備,其中所述切換模塊被配置為響 應(yīng)于來自所述非擁有者處理器組的發(fā)現(xiàn)命令而將所述適配卡識別為端 點。
3. 根據(jù)權(quán)利要求1或者2所述的設(shè)備,其中所述切換模塊被配 置為響應(yīng)于來自所述擁有者處理器組的發(fā)現(xiàn)命令向被連接到所述適配 卡的裝置提供可視性。
4. 根據(jù)權(quán)利要求l、 2或者3所述的設(shè)備,其中所述擁有者處理 器組通過所述切換模塊與所述適配卡的控制器通信。
5. 根據(jù)權(quán)利要求1、 2、 3或者4所述的設(shè)備,其中所述設(shè)置模 塊通過對于所述適配卡的設(shè)置寄存器重新編程而修改所述切換模塊以 在邏輯上將所述第二處理器組連接到所述適配卡作為擁有者處理器 組。
6. 根據(jù)權(quán)利要求1、 2、 3或者4所述的設(shè)備,其中所述設(shè)置模 塊通過將所述適配卡從使用第 一存儲器模塊的控制存儲切換為第二存儲器模塊的控制存儲而修改所述切換模塊以在邏輯上將所述第二處理 器組連接到所述適配卡作為擁有者處理器組。
7. 根據(jù)前面權(quán)利要求中任何一項所述的設(shè)備,其中所述適配卡 使用快速外圍設(shè)備互連(PCIe)接口與所述第 一和第二處理器組通信。
8. 根據(jù)權(quán)利要求1到6中任何一項所述的設(shè)備,其中所述適配卡使用選自外圍設(shè)備互連擴展(PCI-X)接口和外圍設(shè)備互連(PCI) 接口的接口與所述第一和第二處理器組通信。
9. 一種用于適配卡故障轉(zhuǎn)移的系統(tǒng),所述系統(tǒng)包括 與適配卡通信的第一處理器組;與所述適配卡通信并且包括被配置為探測所述第一處理器組的 故障的探測模塊的第二處理器組;所述適配卡包括被配置為管理所述適配卡的控制器;被配置為存儲包括用于所述控制器的軟件指令和設(shè)置數(shù)據(jù)的控 制存儲的第一存儲器模塊;切換模塊,所述切換模塊包括半導(dǎo)體邏輯塊并且通過第 一端口在 邏輯上將所述第一處理器組連接到所述適配卡作為擁有者處理器組,其中,除第二端口以外,所述擁有者處理器組管理所述適配卡并且從 所述適配卡接收錯誤消息,并且所述切換模塊進一步通過第二端口在 邏輯上將所述第二處理器組連接到所述適配卡作為非擁有者處理器 組,其中所述非擁有者處理器組管理所述第二端口;所述第二處理器組進一步包括設(shè)置模塊,所述設(shè)置模塊被配置為 修改所述切換模塊以在邏輯上將所述第二處理器組連接到所述適配卡 作為擁有者處理器組并且響應(yīng)于探測到故障在邏輯上從所述適配卡斷 開所述笫一處理器組。
10. 根據(jù)權(quán)利要求9所述的系統(tǒng),其中所述切換模塊被配置為響 應(yīng)于來自所述非擁有者處理器組的發(fā)現(xiàn)命令而將所述適配卡識別為端 點。
11. 根據(jù)權(quán)利要求9所述的系統(tǒng),其中所述切換模塊被配置為響 應(yīng)于來自所述擁有者處理器組的發(fā)現(xiàn)命令向被連接到所述適配卡的裝置提供可視性。
12. 根據(jù)權(quán)利要求9或者10所述的系統(tǒng),其中所述擁有者處理 器組通過所述切換模塊與所述適配卡的控制器通信。
13. 根據(jù)權(quán)利要求9、 10或者11所述的系統(tǒng),其中所述設(shè)置模 塊通過對于所述適配卡的設(shè)置寄存器重新編程而修改所述切換模塊以 在邏輯上將所述第二處理器組連接到所述適配卡作為擁有者處理器 組。
14. 根據(jù)權(quán)利要求9、 10或者11所述的系統(tǒng),其中所述設(shè)置模 塊通過將所述適配卡從使用第一存儲器模塊的控制存儲切換為第二存 儲器模塊的控制存儲而修改所述切換模塊以在邏輯上將所述第二處理 器組連接到所述適配卡作為擁有者處理器組。
15. 根據(jù)權(quán)利要求9到14中任何一項所述的系統(tǒng),其中所述適 配卡使用PCIe接口與所述第一和第二處理器組通信。
16. 根據(jù)權(quán)利要求9到14中任何一項所述的系統(tǒng),其中所述適 配卡使用選自PCI-X接口和PCI接口的接口與所述第 一和第二處理器 組通信。
17. 根據(jù)權(quán)利要求9到16中任何一項所述的系統(tǒng),其中所述適 配卡被配置為以太網(wǎng)控制器。
18. 根據(jù)權(quán)利要求9到16中任何一項所述的系統(tǒng),其中所述適 配卡被配置為獨立磁盤冗余陣列(RAID)控制器。
19. 根據(jù)權(quán)利要求9到16中任何一項所述的系統(tǒng),其中所述適 配卡被配置為存儲區(qū)網(wǎng)絡(luò)控制器。
20. —種包括具有處理器可讀程序的處理器可用介質(zhì)的處理器 程序產(chǎn)品,其中所述處理器可讀程序當(dāng)在處理器上執(zhí)行時使得所述處 理器通過第一端口將適配卡的切換模塊連接到第一處理器組作為擁 有者處理器組,其中,除第二端口以外,所述擁有者處理器組管理所 述適配卡并且從所述適配卡接收錯誤消息;通過第二端口將第二處理器組連接到所述適配卡作為非擁有者處理器組,其中所述非擁有者處理器組管理所述第二端口; 探測所述第一處理器組的故障;和修改所述切換模塊以在邏輯上將所述第二處理器組連接到所述 適配卡作為擁有者處理器組并且響應(yīng)于探測到故障而在邏輯上從所述 適配卡斷開所述第一處理器組。
21. 根據(jù)權(quán)利要求20所述的處理器程序產(chǎn)品,其中所述切換模 塊被配置為響應(yīng)于來自所述非擁有者處理器組的發(fā)現(xiàn)命令而將所述適 配卡識別為端點。
22. 根據(jù)權(quán)利要求20或者21所述的處理器程序產(chǎn)品,其中所述 切換模塊被配置為響應(yīng)于來自所述擁有者處理器組的發(fā)現(xiàn)命令向被連 接到所述適配卡的裝置提供可視性。
23. 根據(jù)權(quán)利要求20、 21或者22所述的處理器程序產(chǎn)品,其中 所述擁有者處理器組通過所述切換模塊與所述適配卡的控制器通信。
24. 根據(jù)權(quán)利要求20、 21、 22或者23所述的處理器程序產(chǎn)品, 其中所述處理器可讀程序被進一步配置為通過對于所述適配卡的設(shè)置 寄存器重新編程而使得所述處理器將所述第二處理器組連接到所述適 配卡作為擁有者處理器組。
25. 根據(jù)權(quán)利要求20、 21、 22或者23所述的處理器程序產(chǎn)品, 其中所述處理器可讀程序被進一步配置為通過將所述適配卡從使用第 一存儲器模塊的控制存儲切換為第二存儲器模塊的控制存儲而使得所 述處理器將所述第二處理器組連接到所述適配卡作為擁有者處理器 組。
26. 根據(jù)權(quán)利要求20到25中任何一項所述的處理器程序產(chǎn)品, 其中所述適配卡使用PCIe接口與所述第一和第二處理器組通信。
27. 根據(jù)權(quán)利要求20到25中任何一項所述的處理器程序產(chǎn)品, 其中所述適配卡使用選自PCI-X接口和PCI接口的接口與所述第 一和 第二處理器組通信。
28. —種用于適配卡故障轉(zhuǎn)移的方法,所述方法包括以下步驟 通過第一端口使用切換模塊在邏輯上將第一處理器組連接到適配卡作為擁有者處理器組,其中,除第二端口以外,所述擁有者處理器組管理所述適配卡并且從所述適配卡接收錯誤消息;通過第二端口使用所述切換模塊在邏輯上將第二處理器組連接到所述適配卡作為非擁有者處理器組,其中所述非擁有者處理器組管理所述第二端口;探測所述第一處理器組的故障;和修改所述切換模塊以在邏輯上將所述第二處理器組連接到所述 適配卡作為擁有者處理器組并且響應(yīng)于探測到故障在邏輯上從所述適 配卡斷開所述第一處理器組。
29. 根據(jù)權(quán)利要求28所述的方法,其中所述切換模塊被配置為 響應(yīng)于來自所述非擁有者處理器組的發(fā)現(xiàn)命令而將所述適配卡識別為
30. 根據(jù)權(quán)利要求28或者29所述的方法,其中所述切換模塊被 配置為響應(yīng)于來自所述擁有者處理器組的發(fā)現(xiàn)命令向被連接到所述適 配卡的裝置提供可視性。
31. 根據(jù)權(quán)利要求28、 29或者30所述的方法,其中所述擁有者 處理器組通過所述切換模塊與所述適配卡的控制器通信。
32. 根據(jù)權(quán)利要求28、 29、 30或者31所述的方法,其中修改所 述切換模塊以在邏輯上將所述第二處理器組連接到所述適配卡作為擁 有者處理器組的步驟包括對于所述適配卡的設(shè)置寄存器重新編程。
33. 根據(jù)權(quán)利要求28、 29、 30或者31所述的方法,其中修改所 述切換模塊以在邏輯上將所述第二處理器組連接到所述適配卡作為擁 有者處理器組的步驟包括將所述適配卡從使用第一存儲器模塊的控 制存儲切換為第二存儲器模塊的控制存儲。
34. 根據(jù)權(quán)利要求28到33中任何一項所述的方法,其中所述適 配卡使用快速外圍設(shè)備互連(PCIe)接口與所述第一和第二處理器組 通信。
35. 根據(jù)權(quán)利要求28到33中任何一項所述的方法,其中所述適 配卡使用選自外圍設(shè)備互連擴展(PCI-X )接口和外圍設(shè)備互連(PCI)接口的接口與所述第一和第二處理器組通信。
36. —種計算機程序,包括當(dāng)在計算機上運行所述程序時適于執(zhí) 行根據(jù)權(quán)利要求28到35中任何一項所述的方法的程序代碼裝置。
全文摘要
本發(fā)明公開了一種用于適配卡故障轉(zhuǎn)移的設(shè)備、系統(tǒng)和方法。切換模塊通過第一端口將第一處理器組連接到適配卡作為擁有者處理器組。除第二端口之外,擁有者處理器組管理適配卡并且從適配卡接收錯誤消息。切換模塊進一步通過第二端口將第二處理器組連接到適配卡作為非擁有者處理器組。非擁有者處理器組管理第二端口。探測模塊探測第一處理器組的故障。設(shè)置模塊修改切換模塊以在邏輯上將第二處理器組連接到適配卡作為擁有者處理器組并且響應(yīng)于探測到故障而在邏輯上從適配卡斷開第一處理器組。
文檔編號G06F11/20GK101663650SQ200880012500
公開日2010年3月3日 申請日期2008年4月18日 優(yōu)先權(quán)日2007年4月20日
發(fā)明者A·D·沃爾斯, C·斯帕尼爾, S·布里尼克, 宋正中 申請人:國際商業(yè)機器公司