本公開整體而言涉及計算機系統的自動恢復。更精確地,技術的某些實施方式涉及一種對帶有切換功能的高可用性(high-availability)的切換裝置自動恢復的方法及系統。
背景技術:
網絡切換器(network switch)是包含由系統總線連接許多元件的計算機。每個網絡切換器可包含將像是以太網絡的網絡接口上的其他的網絡裝置與切換器耦接的復數個端口。
網絡切換器提供切換功能以在網絡連接的裝置之間傳移信息,像是分組或數據幀。由切換器提供的切換功能通常包含自網絡裝置于來源端口接收數據、轉移數據通過背板(backplane)至至少一另外目標端口及傳送數據至網絡上的另一個裝置。
然而,自動檢測系統故障及從系統故障恢復網絡切換器仍然是具有挑戰性的。舉例而言,當切換中央處理單元(central processor unit,CPU)停擺時,通常用冷啟動(cool boot)初始化以從CPU停止對輸入產生回應的鎖定狀態中恢復切換器。然而冷啟動初始化程序通常花費相對長的時間而因此降低了系統效率。
技術實現要素:
本技術的各方面涉及可自動檢測系統故障并從系統故障回復切換裝置的手法。本技術的各方面也涉及可使切換裝置自系統故障中恢復而不會妨礙切換功能的技術。
根據某些實施方式,網絡切換器可包含切換CPU及特定應用集成電路(Application-Specific Integrated Circuit,ASIC)。本技術可利用監視計時器以監控并檢測切換系統故障,像是切換CPU停擺或鎖定。為了應對CPU鎖定,監視計時器可送出信號以重置CPU。當可配置多個監視計時器計數器時,監 視計時器可在系統操作的不同階段檢測并恢復系統故障。
根據某些實施方式,監視計時器可為內嵌于切換CPU中的電子計時器。根據某些實施方式,監視計時器可為獨立的服務控制器,像是基板服務控制器(baseboard service controller,BMC),其可以如本文所公開地實施監視計時器功能。根據某些實施方式,本技術使機架管理控制器(Rack Management Controller,RMC)及底板管理控制器(Chassis Management Controller,CMC)能夠提供監視計時器功能。
根據某些實施方式,本技術涉及啟動切換中央處理單元的計算機實施方法,包含:第一,設置監視計時器的第一監視計時器計數器,第一監視計時器計數器與啟動載入器階段相關聯,監視計時器在第一監視計時器計數器逾期之后可操作以重置切換中央處理單元;第二,設置監視計時器的第二監視計時器計數器,第二監視計時器計數器與操作系統啟動階段相關聯,監視計時器在第二監視計時器計數器逾期之后可操作以重置切換中央處理單元;以及第三,設置監視計時器的第三監視計時器計數器,第三監視計時器計數器與運行時間階段相關聯,監視計時器在第三監視計時器計數器逾期之后可操作以重置切換中央處理單元。
根據某些實施方式,重置網絡系統可進一步包含特定應用集成電路的暖啟動初始化。與會導致網絡停機時間的冷啟動初始程序不同,暖啟動初始程序可在CPU重置期間保存切換功能。舉例而言,像是學習及轉發的切換功能在CPU重置期間可繼續。因此,暖啟動初始化可保存切換功能的效率。
根據某些實施方式,盡管本文的許多示例是參考以太網絡切換器而描述的,但要理解的是其僅為示例且本技術在此方面不受限制。相反地,可使用提供計算機網絡連接的任意切換器,像是光纖通道切換器、非同步傳送模式(asynchronous transfer mode)切換器及InfiniBand切換器或其相似之物。
此外,盡管本討論使用BMC作為服務控制器的例子,但本技術可應用于其他獨立自主CPU及操作系統的服務控制器。
本公開額外的特征及優點將在下文的敘述列舉,且部分將從此敘述顯而易見或可借由實踐本文所公開的原理來習得。本公開特征及優點可借由在附加的權利要求中特別指出的儀器及組合的方法而了解及獲得。本公開的這些及其他特征將可由下列的敘述及附加的權利要求更加顯而易見,或可借由實踐列舉于本文的原則而習得。
附圖說明
發明的各種實施方式及示例公開于以下的詳細描述及附圖中:
圖1A是根據某些實施方式,說明帶有內部監視計時器的自動恢復切換系統示例的示意方塊圖;
圖1B是說明帶有如圖1A所示的內部監視計時器的自動恢復切換系統的另一示例的示意方塊圖;
圖2是根據某些實施方式,說明帶有外部監視計時器的自動恢復切換系統示例的示意方塊圖;
圖3是根據某些實施方式,自動恢復切換系統的示例流程圖;
圖4為根據某些實施方式,帶有高可用性切換功能的自動恢復切換系統的另一示例流程圖;以及
圖5是根據某些實施方式,說明計算裝置的計算平臺。
附圖符號說明
100、200:網絡切換系統
102、202:網絡切換器
104、204:存儲器
106、206:中央處理單元
108、208、508:特定應用集成電路(ASIC)
110、112、114、210、212、214:端口
116、216:系統總線
118、218:ASIC模塊數據庫
120:監視計時器
122、220:ASIC模塊
124、224:ASIC設置
126:以太網絡
222、502:基板管理控制器
302、304、306、402、404、406、408、410、412、414、416:步驟
500:系統架構
504:切換處理器
506:輸入裝置
510:網絡接口
512:顯示器
514:儲存裝置
516:系統存儲器
524:總線
具體實施方式
本技術的各種實施方式在下文詳述。當討論特定的實施行為時,其應被理解為其為說明的目的進行。相關領域技術人員將認識到在不偏離本技術的精神及范圍下可使用其他元件及配置。
作為近代信息技術的骨干,網絡切換器使多個計算裝置能夠經由像是以太網絡的網絡接口傳送數據。隨著不斷成長的網絡需求,特別是在像是大型數據中心的集群計算環境,需要網絡切換器(network switches)以提供具有高可用性及杰出可靠性的切換功能。
網絡切換器通常包含中央處理單元(central processing unit,CPU)及可操作的特定應用集成電路(application-specific integrated circuit,ASIC)以提供數據切換功能。一般而言,冷啟動初始化通常用來從CPU鎖定狀態(lock-up)中恢復切換器,在CPU鎖定狀態中,CPU停止對輸入產生回應。冷啟動初始程序通常花費相對長的時間以恢復切換器,因而導致切換功能的低可用性。
因此,具有提供切換系統故障的自動檢測及恢復的網絡切換器協議的改良需求。進一步地說,需要不妨礙切換功能地恢復網絡切換器。
本技術公開了可利用監視計時器(watchdog timer)而具備自動檢測并恢復切換系統故障可行的技術。根據某些實施方式,本技術可利用內嵌在切換CPU中的監視計時器提供本文公開的監視功能;根據某些實施方式,本技術可利用于切換CPU外部的服務控制器提供本文公開的監視功能。根據某些實施方式,本技術能夠無縫恢復網絡切換器而不會降低像是數據幀(data frames)的學習、溢流及轉發的切換功能。
監視計時器(watchdog timer)可為用以檢測并恢復系統故障的電子式計時器。監視計時器通常以可自起始值計數至零的計數器為基礎,其可觸發系統重置。當系統操作為正常時,系統可以自動且周期性地重置計數器使其不會 逾期并開始系統重置。相反地,當系統對重置計數器異常及失靈時,此監視計時器在計數器失效時可為了恢復正常系統操作而送出逾時信號以重置系統。
圖1A是根據某些實施方式,說明帶有內部監視計時器的自動恢復切換系統示例的示意方塊圖。需要察覺到的是在圖1A中的系統技術為示例,且像是服務器、切換器及網絡元件的任意數量的計算裝置可被包含于圖1A的系統中。
如圖1A所示,自動恢復切換系統可包含網絡切換器102,其可用以操作以對網絡系統提供切換功能。網絡切換器102可包含CPU 106,其可用以操作以執行像是實施網絡協議的運行時間應用程序(runtime applications)。這些網絡協議的例子包含鏈路匯聚控制協議(Link Aggregation Control Protocol,LACP)及開放式最短路徑優先(Open Shortest Path First,OSPF),其可助于提供高速主干網絡,像是網際網絡協議第四版(internet protocol version 4,IPv4)或網際網絡協議第六版(internet protocol version 6,IPv6)。舉例而言,LACP可用以操作以將數個物理端口聚集在一起以形成單一邏輯通道。LACP可允許一網絡裝置進行自動捆扎鏈路(automatic bundling of links)的協商。舉例而言,OSPF可用以操作以借由收集鏈路狀態信息來創造網絡的拓樸圖。CPU 106也可執行用以實施切換功能的其他網絡協議。
根據某些實施方式,CPU 106可經由像是PCIe(高速外圍組件互連接口(peripheral component interconnect express))鏈路的系統總線116與ASIC 108互相連接。ASIC 108可為包含切換控制器、存儲器及I/O接口(未顯示)的切換IC。根據某些實施方式,ASIC 108可與像是查找表的ASIC設置(ASIC Setting)124相關聯,其可相關聯與端口(port)對應的媒體存取控制(medium access control,MAC)地址。舉例而言,切換控制器可借由識別在分組標頭的目標MAC地址來判定分組路徑。切換控制器可進一步地將目標MAC地址與對應的輸出端口進行相關聯。進一步而言,ASIC 108可借由像是以太網絡126的上行鏈路傳送分組至網絡。
根據某些實施方式,網絡切換器102可包含存儲器104,其可用以操作以儲存切換相關的數據。舉例而言,存儲器104可為包含動態隨機存取存儲器群組的雙行存儲器模塊(dual in-line memory module,DIMM),存儲器技術為相關領域技術人員所已知,因此不需進一步的描述。
根據某些實施方式,CPU 106可執行ASIC模塊(ASIC Module)122且產生可被儲存于存儲器104中的ASIC模塊數據庫(ASIC Module Database)118。ASIC模塊數據庫118可儲存各種網絡參數,舉例而言,用于網絡功能的ASIC設置124的映射。
根據某些實施方式,網絡切換器102可進一步包含端口的群組像是端口110、端口112及端口114,其每一個都可與比如計算節點的網絡裝置相關聯。此外,這些端口中的一或多個可為用于分組切換的輸入端口或輸出端口。
如圖1所示,根據某些實施方式,監視計時器120(watchdog timer)可為嵌于CPU 106中的內部電子裝置。監視計時器120可檢測像是CPU鎖定或凍結的系統故障并且接著為了恢復系統而開始CPU 106的重置。根據某些實施方式,監視計時器120可包含可從起始值(比如60秒)倒數至零的計數器。當起始值逾期時,監視計時器120可送出可重置CPU 106以恢復系統的逾時信號。根據某些實施方式,監視計時器120的計數器可從起始值計數至溢出值。同樣地,當計數器達到溢出值時,監視計時器120可送出逾時信號以重置CPU106。
根據某些實施方式,監視計時器120可配置帶有多于一個的計數器,每一個計數器可對應至網絡切換器102相應的操作階段(operation stage)。同時,根據每一個相應操作階段的特性及功能,每個計數器的起始值可為不同。舉例而言,第一監視計時器計數器與啟動載入器階段(boot loader stage)相關聯。第一監視計時器計數器可具有比啟動載入器階段的預估時間更長的起始時間值。舉例而言,第二監視計時器計數器與操作系統啟動階段(operation system booting stage)相關聯。第二監視計時器計數器可具有比操作系統啟動階段的預估時間更長的起始時間值。舉例而言,第三監視計時器計數器與運行時間階段(runtime stage)相關聯。進一步而言,當運行時間階段可為不確定時,第三監視計時器可借由計時器重置程序或監視計時器常駐程序來周期性地重置。
更精確地說,在啟動載入器階段時,在CPU 106上執行的啟動載入器可設置監視計時器120的第一監視計數器。根據某些實施方式,第一監視計數器可根據啟動載入器階段的預期時間而設置。具體而言,第一監視計數器可長到足以涵蓋啟動載入器階段的預期時間。舉例而言,當啟動載入器階段可花費不超過10秒時,第一監視計數器可設置一個長于10秒的起始值。此方法可以避免當容許監視計時器120能夠自動檢測并恢復系統故障時,啟動程 序的意外重置。
進一步,當CPU 106對輸入的反應停擺或失靈比第一監視計數器要長的一段時間時,監視計時器120可傳送逾時信號給CPU 106以重置啟動程序。
同樣地,在操作系統啟動階段時,可設置監視計時器120的第二監視計數器。根據某些實施方式,第二監視計數器可根據操作系統啟動階段的預期時間而設置。具體而言,第二監視計數器可長到足以涵蓋操作系統啟動階段的預期時間。舉例而言,當操作系統啟動階段通常可花費不超過15秒時,第二監視計數器可設置一個長于15秒的起始值以避免CPU 106的意外重置。
進一步,當CPU 106對輸入的反應停擺或失靈比第二監視計數器要長的一段時間時,監視計時器120可傳送逾時信號以重置CPU 106。
在啟動載入器階段及操作啟動階段之后的運行時間階段中,在CPU 106上執行的監視計時器常駐程序可設置監視計時器120的第三監視計數器。根據某些實施方式,監視計時器常駐程序可為一個作為背景程序執行的計算機程序。當CPU 106功能正常時,CPU 106可產生心跳信號(heartbeat signal)并利用監視計時器常駐程序傳送之。因此,監視計時器常駐程序可自動且周期性地重置第三監視計數器的起始值以避免CPU 106的重置。在另一方面,當CPU 106遭受失靈且停止產生心跳信號時,監視計時器常駐程序可取消重置,因此使第三監視計時器經過(elapse)或逾期。于是,監視計時器可產生逾時信號以重置CPU 106。
進一步,監視計時器120可配置帶有用于網絡系統的其他啟動或操作階段的額外的監視計時器計數器。
根據某些實施方式,網絡系統的重置可進一步包含ASIC 108的暖啟動初始化(warm boot initialization)。與可造成網絡停機時間(network downtime)的冷啟動初始程序不同,暖啟動初始程序可在CPU重置時保存切換功能。舉例而言,由ASIC 108行使的切換功能像是學習(learning)或轉發(forwarding)可在CPU重啟動時持續。
在暖啟動初始程序中,當ASIC模塊122接收到來自監視計時器120或其他元件的逾時信號時,可開始暖啟動初始化。ASIC模塊122可探查連接至系統總線116的PCIe裝置,在此期間,ASIC模塊122可識別ASIC 108。接著ASIC模塊122可自ASIC 108接收ASIC設置124。因此,ASIC模塊122可重新載入各種裝置模塊或驅動程序,包含相關端口的MAC驅動程序。 ASIC模塊122也可利用ASIC設置124重建ASIC模塊數據庫118。最后,網絡系統可以根據ASIC模塊數據庫118建立網絡協議。這些網絡協議的例子可包含如本文所述的LACP及OSPF。
圖1B是說明如圖1A所示的自動恢復切換系統的另一示例的示意方塊圖。根據某些實施方式,當網絡系統進入運行時間階段,CPU 106可自動傳送重啟信號(restart signals)給監視計時器120使其不會傳送重置信號(reset signal)給CPU 106。舉例而言,在運行時間階段,監視計時器120可與計數5秒的監視計數器值相關聯。因此,CPU 106在每5秒中可周期且自動地傳送重啟信號給監視計時器120。根據某些實施方式,在CPU 106上執行的監視計時器常駐程序可周期地傳送重啟信號給監視計時器120。當CPU 106傳送重啟信號失靈,逾期5秒時,監視計時器120可傳送重置信號給CPU 106。在接收到重置信號后,網絡系統可立即強制啟動程序的重啟使其可從CPU鎖定或凍結中恢復。
圖2是根據某些實施方式,說明帶有外部監視計時器的自動恢復切換系統示例的示意方塊圖。需查覺到的是在圖2中的系統拓樸是舉例,且像是服務器、切換器及網絡元件的任意數量的計算裝置可被包含于圖2的系統中。
如圖2所示,自動恢復切換系統可包含網絡切換器202,其可用以操作以提供網絡系統切換功能。網絡切換器202可包含CPU 206,其可用以操作以執行像是實施網絡協議的運行時間應用程序。這些網絡協議的例子包含鏈路匯聚控制協議(LACP)及開放式最短路徑優先(OSPF),其可有助于提供高速主干網絡,像是網際網絡協議第四版(IPv4)或網際網絡協議第六版(IPv6)。舉例而言,LACP可用以操作以將數個物理端口聚集在一起以形成單一邏輯通道。LACP可允許讓一網絡裝置進行自動捆扎鏈路的協商。舉例而言,OSPF可用以操作以借由聚集鏈路狀態信息來創造網絡的拓樸圖。CPU 206也可執行用于實施切換功能的其他的網絡協議。
根據某些實施方式,CPU 206可經由像是PCIe(高速外圍組件互連接口)鏈路的系統總線216與ASIC 208互相連接。CPU 206可通過通信接口與可模擬監視計時器功能的基板管理控制器(Baseboard Management Controller,BMC)222互相連接。這種通信接口例如為智慧平臺管理總線(Intelligent Platform Management Bus/Bridge,IPMB),其可定義用以與嵌于計算裝置中的服務處理器(service processor)相接的協議。另一個通信接口的例子可為 RESTful(表征狀態轉移(Representational State Transfer)),例如Redfish。另一個通信接口的例子可為i2c(內部集成電路(Inter-Integrated Circuit))。另一個通信接口的例子可為SSIF(系統管理總線系統接口(SMBus system interface))。
BMC為獨立且內嵌式的微控制器,且在某些實施方式中,負責管理并監控主CPU、固件及操作系統。根據某些實施方式,BMC可借由從安裝于底板的感應器接收數據,比如風扇速度、CPU溫度、電力消耗程度等等來監控服務器的硬件元件。根據某些實施方式,機架管理控制器(Rack Management Controller,RMC)或底板管理控制器(chassis management controller,CMC)可用以操作以對網絡系統提供監視計時器功能。
根據某些實施方式,BMC 222可經由像是I2C的通信鏈路與網絡切換器202耦接。根據某些實施方式,BMC 222可經由通信鏈路連接至網絡切換器202的通用輸入/輸出引腳(general-purpose input/output,GPIO pin)。
根據某些實施方式,ASIC 208可與像是查找表的ASIC設置224相關聯,其可將端口與對應的媒體存取控制(medium access control,MAC)地址進行相關聯。舉例而言,切換控制器可借由識別在分組標頭的目標MAC地址判定分組的轉發路徑。切換控制器可進一步地將目標MAC地址與對應的輸出端口進行相關聯。
根據某些實施方式,網絡切換器202可包含存儲器204,其可用以操作以儲存切換相關的數據。舉例而言,存儲器204可為包含動態隨機存取存儲器群組的雙行存儲器模塊(DIMM),存儲器技術為相關領域技術人員所知,因此不需進一步的描述。
根據某些實施方式,CPU 206可執行ASIC模塊220且產生可被儲存于存儲器204中的ASIC模塊數據庫218。ASIC模塊數據庫218可儲存各種網絡參數,舉例而言,用于網絡功能的ASIC設置224的映射。
根據某些實施方式,網絡切換器202可進一步包含端口的群組像是端口210、端口212及端口214,其每一個都可與比如計算節點的網絡裝置相關聯。此外,這些端口中的一或多個可為用于分組切換的輸入端口或輸出端口。
如圖2所示,根據某些實施方式,BMC 222可為CPU 206外部的獨立裝置。BMC 222可檢測像是CPU鎖定或凍結的系統故障,并因此,為了恢復系統而開始CPU 206的重置。舉例而言,BMC 222可送出GPIO信號給CPU206以開始重置。根據某些實施方式,BMC 222可如同可自起始值(比如60 秒)倒數至零的計數器一般地運作。當起始值逾期時,BMC 222可送出可重置CPU 206以恢復系統的逾時信號。根據某些實施方式,BMC 222可從起始值計數至溢出值。同樣地,當計數器達到事先決定的溢出值時,BMC 222可送出逾時信號以重置CPU 206。
根據某些實施方式,BMC 222可配置帶有多于一個的計數器,每一個計數器可對應至網絡切換器202相應的操作階段。同時,根據每一個相應操作階段的特性功能,每個計數器的起始值可為不同。舉例而言,第一監視計時器計數器與啟動載入器階段相關聯。第一監視計時器計數器可具有比啟動載入器階段的預估時間更長的起始時間值。舉例而言,第二監視計時器計數器與操作系統啟動階段相關聯。第二監視計時器計數器可具有比操作系統啟動階段的預估時間更長的起始時間值。舉例而言,第三監視計時器計數器與運行時間階段相關聯。進一步而言,當運行時間階段可為不確定時,第三監視計時器可借由計時器重置程序或監視計時器常駐程序來周期性地重置。
更精確地說,在啟動載入器階段時,在CPU 206上執行的啟動載入器可設置BMC 222的第一監視計數器。舉例而言,經由自CPU 206而來的命令或指令通過通信接口至BMC 222。根據某些實施方式,第一監視計數器可根據啟動載入器階段的預期時間而設置。具體而言,第一監視計數器可長到足以涵蓋啟動載入器階段的預期時間。舉例而言,當啟動載入器階段可花費不超過10秒時,第一監視計數器可設置一個長于10秒的起始值。此方法可以避免當容許BMC 222能夠自動檢測并恢復系統故障時,啟動程序的意外重置。
進一步而言,當CPU 206對輸入的反應停擺或失靈比第一監視計數器要長(比如10秒)的一段時間時,BMC 222可傳送逾時信號給CPU 206以重置啟動程序。逾時信號的例子可為GPIO信號。
同樣地,在操作系統啟動階段時,可設置BMC 222的第二監視計數器。根據某些實施方式,第二監視計數器可根據操作系統啟動階段的預期時間而設置。具體而言,第二監視計數器可長到足以涵蓋操作系統啟動階段的預期時間。舉例而言,當操作系統啟動階段通常可花費不超過15秒時,第二監視計數器可設置一個長于15秒的起始值以避免CPU 206的意外重置。
進一步而言,當CPU 206對輸入的反應停擺或失靈比第二監視計數器要長(比如15秒)的一段時間時,監視器常駐程序可傳送逾時信號以重置CPU206。
在啟動載入器階段及操作啟動階段之后的運行時間階段中,在CPU 206上執行的監視計時器常駐程序可設置BMC 222的第三監視計數器。根據某些實施方式,監視計時器常駐程序可為一個作為背景程序執行的計算機程序。當CPU 206功能正常時,CPU 206可產生心跳信號并利用監視計時器常駐程序傳送之。因此,監視計時器常駐程序可自動且周期性地重置第三監視計數器的起始值以避免CPU 206的重置。在另一方面,當CPU 206遭受失靈且停止產生心跳信號時,監視計時器常駐程序可取消重置,因此使第三監視計時器經過或逾期。于是,監視計時器可產生逾時信號以重置CPU 206。
進一步,監視器常駐程序可配置帶有用于網絡系統的其他啟動或操作階段的額外的監視計時器計數器。
根據某些實施方式,網絡系統的重置可進一步開始ASIC 208的暖啟動初始化。與可造成網絡停機時間的冷啟動初始程序不同,暖啟動初始程序可在CPU重置時保存切換功能。舉例而言,像是由ASIC 208行使的學習或轉發的切換功能。在暖啟動初始程序中,網絡系統可自ASIC 208接收ASIC設置224,重載ASIC模塊220以在CPU 206上執行并根據ASIC設置224在存儲器204中重建ASIC模塊數據庫218。最后,網絡系統可根據ASIC模塊數據庫218建立網絡協議。這些網絡協議的例子可包含如本文所述的LACP及OSPF。
圖3是根據某些實施方式,自動恢復切換系統的示例流程圖。要被理解的是,除非有另外說明,否則在各種實施方式的范圍中,能夠以相似或輪流或兩者同時的方式行使額外的、較少的或替代的步驟。
在步驟302,自動恢復切換系統可設置監視計時器的第一監視計時器計數器。根據某些實施方式,監視計時器可為在切換CPU內部的電子式計時器。根據某些實施方式,第一監視計時器計數器的起始值可至少在某些程度上根據啟動載入器階段的預期時間長度來決定。進一步,在第一監視計時器計數器逾期后,監視計時器可送出逾時信號以重置切換中央處理單元。
舉例而言,如第1圖所示,在CPU 106上執行的啟動載入器可設置監視計時器120的第一監視計數器。具體而言,第一監視計數器可長到足以涵蓋啟動載入器階段的預期時間。舉例而言,當啟動載入器階段可花費不超過10秒時,第一監視計數器可設置一個長于10秒的起始值。此方法可以避免當容許監視計時器120能夠自動檢測并恢復系統故障時,啟動程序的意外重置。
在步驟304,自動恢復切換系統可設置監視計時器的第二監視計時器計數器。根據某些實施方式,第二監視計時器計數器的起始值可至少在某些程度上根據操作系統啟動階段的預期時間長度來決定。進一步而言,在第二監視計時器計數器逾期后,監視計時器可送出逾時信號以重置切換中央處理單元。
舉例而言,如第1圖所示,可設置監視計時器120的第二監視計數器。根據某些實施方式,可根據操作系統啟動階段的預期時間長度來設置第二監視計數器。具體而言,第二監視計數器可長到足以涵蓋操作系統啟動階段的預期時間。舉例而言,當操作系統啟動階段通常可花費不超過15秒時,第二監視計數器可設置一個長于15秒的起始值。以避免CPU 106的意外重置。
在步驟306,自動恢復切換系統可設置監視計時器的第三監視計時器計數器。根據某些實施方式,第三監視計時器計數器與運行時間階段相關聯。在第三監視計時器計數器逾期后,監視計時器可送出逾時信號以重置切換中央處理單元。根據某些實施方式,第三監視計時器可借由監視計時器常駐程序來周期性地重置,以防止第三監視計時器逾期。
再次參考第1圖,舉例而言,在啟動載入器階段及操作啟動階段之后的運行時間階段中,在CPU 106上執行的監視計時器常駐程序可設置監視計時器120的第三監視計數器。根據某些實施方式,監視計時器常駐程序可為一個作為背景程序執行的計算機程序。當CPU 106功能正常時,CPU 106可產生心跳信號并利用監視計時器常駐程序傳送之。因此,監視計時器常駐程序可自動且周期性地重置第三監視計數器的起始值以避免CPU 106的重置。在另一方面,當CPU 106遭受失靈且停止產生心跳信號時,監視計時器常駐程序可放棄重置并使第三監視計時器經過或逾期。于是,監視計時器可產生逾時信號以重置CPU 106。
圖4是根據某些實施方式,帶有高可用性切換功能的自動恢復切換系統的另一示例流程圖。要被理解的是,除非有另外說明,否則在各種實施方式的范圍中,能夠以相似或輪流或兩者同時的方式行使額外的、較少的或替代的步驟。
在步驟402,自動恢復切換系統可設置監視計時器的第一監視計時器計數器。根據某些實施方式,獨立于切換CPU的服務控制器像是BMC,可模擬電子監視計時器的功能。根據某些實施方式,第一監視計時器計數器的起 始值可至少在某些程度上根據啟動載入器階段的預期時間長度來決定。進一步,在第一監視計時器計數器逾期后,監視計時器可送出逾時信號以重置切換中央處理單元。
舉例而言,如圖2所示,在CPU 206上執行的啟動載入器可對設置BMC222的第一監視計數器。具體而言,第一監視計數器可長到足以涵蓋啟動載入器階段的預期時間。舉例而言,當啟動載入器階段可花費不超過10秒時,第一監視計數器可設置一個長于10秒的起始值。此方法可以避免當容許BMC222能夠自動檢測并恢復系統故障時,啟動程序的意外重置。
在步驟404,自動恢復切換系統可設置監視計時器的第二監視計時器計數器。根據某些實施方式,第二監視計時器計數器的起始值可至少在某些程度上根據操作系統啟動階段的預期時間長度來決定。進一步而言,在第二監視計時器計數器逾期后,監視計時器可送出逾時信號以重置切換中央處理單元。
舉例而言,如圖2所示,可設置BMC 222的第二監視計數器。根據某些實施方式,可根據操作系統啟動階段的預期時間長度來設置第二監視計數器。具體而言,第二監視計數器可長到足以涵蓋操作系統啟動階段的預期時間。舉例而言,當操作系統啟動階段通常可花費不超過15秒時,第二監視計數器可設置一個長于15秒的起始值。以避免CPU 206的意外重置。
在步驟406,自動恢復切換系統可設置監視計時器的第三監視計時器計數器。根據某些實施方式,第三監視計時器計數器與運行時間階段相關聯。在第三監視計時器計數器逾期后,監視計時器可送出逾時信號以重置切換中央處理單元。根據某些實施方式,第三監視計時器可借由監視計時器常駐程序來周期性地重置,以防止第三監視計時器逾期。
再次參考圖2,舉例而言,在啟動載入器階段及操作啟動階段之后的運行時間階段中,在CPU 206上執行的監視計時器常駐程序可設置BMC 222的第三監視計數器。根據某些實施方式,監視計時器常駐程序可為一個作為背景程序執行的計算機程序。當CPU 206功能正常時,CPU 206可產生心跳信號并利用監視計時器常駐程序傳送之。因此,監視計時器常駐程序可自動且周期性地重置第三監視計數器的起始值以避免CPU 206的重置。在另一方面,當CPU 206遭受失靈且停止產生心跳信號時,監視計時器常駐程序可放棄重置并使第三監視計時器經過或逾期。于是,監視計時器可產生逾時信號 以重置CPU 206。
在步驟408,當第一監視計時器計數器、第二監視計時器計數器或第三監視計時器計數器的其中之一逾期時,監視計時器可重置切換CPU使其可自故障中恢復。舉例而言,如圖2所示,在啟動載入器階段及操作啟動階段之后的運行時間階段中,在CPU 206上執行的監視計時器常駐程序可設置BMC222的第三監視計數器。當CPU 206遭受失靈且停止產生心跳信號時,監視計時器常駐程序可取消計數器重置,因此使第三監視計時器經過或逾期。于是,監視計時器可產生逾時信號以重置CPU 206。
在步驟410,自動恢復切換系統可自切換ASIC接收(receive)切換ASIC設置(switch ASIC setting)。舉例而言,如圖2所示,網絡切換器202在暖啟動初始化可自ASIC 208接收ASIC設置224而不用重置ASIC 208。
在步驟412,自動恢復切換系統可重載(reload)切換ASIC模塊。舉例而言,網絡切換器202可重載ASIC模塊220并在CPU 206上執行。ASIC模塊220可用以操作以產生ASIC模塊數據庫218,其可包含用以實施切換功能的參數。
在步驟414,自動恢復切換系統可利用ASIC設置重建(rebuild)切換ASIC數據庫。舉例而言,網絡切換器可重建ASIC模塊數據庫218以儲存在存儲器204中。ASIC模塊數據庫218可儲存各種網絡參數,舉例而言,用于網絡功能的ASIC設置224的映射。
在步驟416,自動恢復切換系統可利用切換ASIC模塊數據庫建立網絡協議。這些網絡協議的例子包含鏈路匯聚控制協議(LACP)及開放式最短路徑優先(OSPF),其可有助于提供高速主干網絡像是網際網絡協議第四版(IPv4)或網際網絡協議第六版(IPv6)。因此,當再啟動CPU 206時,網絡切換器202可維持切換功能的高可用性。
圖5說明用以實施圖1至4的系統及程序的示例系統架構500。系統架構500包含總線524,其相互連接子系統及裝置,像是BMC 502、處理器504、儲存裝置514、系統存儲器516、網絡接口510及ASIC 508。處理器504能夠以一個或多個像是由Corporation制造的中央處理單元(central processing units,CPUs)實施,或由一個或多個的虛擬處理器及CPUs與虛擬處理器的任意組合實施。系統架構500經由輸入及輸出裝置輸入裝置506及顯示器512交換表示輸入及輸出的數據,其中輸入及輸出裝置輸入裝置506及顯 示器512包含,但不局限于:鍵盤、鼠標、音頻輸入(比如語音至文字裝置)、用戶接口、顯示器、監視器、光標、觸感式顯示器、LCD或LED顯示器及其他與I/O有關的裝置。
系統架構500借由處理器504行使特定操作,執行儲存在系統存儲器516中一個或多個指令的一個或多個序列。系統架構500可在客戶端-服務器配置、對等式配置(peer-to-peer arrangement)、或作為任何移動計算裝置,包含智能手機及相似之物作為服務器裝置或客戶端裝置。從像是儲存裝置514的其他計算機可讀介質而來的這些指令或數據可被讀入系統存儲器516中。在某些示例中,硬布線電路系統可被用以實施的取代軟件指令或用以實施的軟件指令組合。指令可被嵌于軟件或固件之中。術語「計算機可讀介質(computer readable medium)」意指參與提供指令給處理器504執行的任何有形介質。這種介質可以許多形式為例,包含,但不局限于,非揮發性介質及揮發性介質。舉例而言,非揮發性介質包含光盤或磁盤及相似之物。揮發性介質包含動態存儲器,像是系統存儲器516。
舉例而言,計算機可讀介質的一般形式為軟盤、柔性盤、硬盤、磁帶、任意其他磁性介質、光盤只讀存儲器(CD-ROM)、任意其他光學介質、打孔卡、紙帶、任意其他帶有孔排列模式的物理介質、動態隨機存取存儲器(RAM)、可編程只讀存儲器(PROM)、可擦除可編程只讀存儲器(EPROM)、快閃可擦除可編程只讀存儲器(FLASH-EPROM)、任意其他存儲器芯片或匣、或任意其他計算機可讀介質。指令可進一步地利用傳輸介質來傳送或接收。術語「傳輸介質(transmission medium)」可包含任何有形或無形的介質,其能夠儲存、編碼或攜帶由機器執行的指令,且包含數字或模擬通信信號或其他無形介質以幫助這些指令進行通信。傳輸介質包含同軸電纜、銅線及光纖,包含那些包含于總線524中用以傳送計算機數據信號的線路。
在示例中顯示,系統存儲器516可包含各種模塊,其包含可執行指令以實施本文所述的功能。在示例中顯示,系統存儲器516包含日志管理器、日志緩沖或日志儲存庫,每一個均可配置以提供一個或多個的本文所述功能。
雖然上述示例已為了清楚的理解的目的而在一些細節上進行了描述,上述本發明的技術并不限于所提供的細節。有許多實現上述發明技術的替代方式。所公開的實例是說明性的而不是限制性的。