TW202232318A - 超載開機錯誤訊號機制以啟用將被執行的錯誤減輕行動 - Google Patents

超載開機錯誤訊號機制以啟用將被執行的錯誤減輕行動 Download PDF

Info

Publication number
TW202232318A
TW202232318A TW110142946A TW110142946A TW202232318A TW 202232318 A TW202232318 A TW 202232318A TW 110142946 A TW110142946 A TW 110142946A TW 110142946 A TW110142946 A TW 110142946A TW 202232318 A TW202232318 A TW 202232318A
Authority
TW
Taiwan
Prior art keywords
error
server
computing device
boot
memory
Prior art date
Application number
TW110142946A
Other languages
English (en)
Inventor
米力克 布魯蘇
洛比 麥索尚恩堤摩西
穆罕默德艾許福 阿曼
Original Assignee
美商微軟技術授權有限責任公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 美商微軟技術授權有限責任公司 filed Critical 美商微軟技術授權有限責任公司
Publication of TW202232318A publication Critical patent/TW202232318A/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1417Boot up procedures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0772Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0778Dumping, i.e. gathering error/state information after a fault for later diagnosis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0787Storage of error reports, e.g. persistent data storage, storage using memory protection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1441Resetting or repowering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/203Failover techniques using migration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2035Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant without idle spare hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2048Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant where the redundant components share neither address space nor persistent storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/82Solving problems relating to consistency

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Biomedical Technology (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Security & Cryptography (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)
  • Retry When Errors Occur (AREA)

Abstract

一種計算裝置,諸如雲端計算系統中的伺服器,可以經配置為啟用當該計算裝置經歷故障時將被執行的錯誤減輕行動。計算裝置包括可以經配置為進行以下操作的韌體:在伺服器的開機序列期間偵測錯誤指示、至少部分地基於錯誤指示來決定至少一個期望的錯誤減輕行動、及創建識別至少一個期望的錯誤減輕行動的開機錯誤記錄。計算裝置亦包括作業系統,該作業系統可以經配置為在開機序列期間獲得開機錯誤記錄並且導致在開機錯誤記錄中識別的至少一個期望的錯誤減輕行動將被執行。

Description

超載開機錯誤訊號機制以啟用將被執行的錯誤減輕行動
本揭示係關於超載開機錯誤訊號機制以啟用將被執行的錯誤減輕行動。
雲端計算係在網際網路上遞送計算服務。可以藉由雲端計算系統提供的計算服務的一些實例包括儲存、資料庫、網路連接、軟體、及分析。近年來,至少部分歸因於高容量網路以及相對低成本的電腦及儲存裝置的開發,雲端計算技術的使用已迅速增長。
概括而言,雲端計算系統包括經由網際網路彼此通訊的兩個部分,前端及後端。前端包括使用者經由客戶端裝置遇到的介面。後端包括遞送雲端計算服務的資源,包括處理器、記憶體、儲存器、及網路連接硬體。此等資源藉由一或多個通訊網路連接。有利的是,提供服務的網路連接元件的群組不必由使用者單獨定址或管理。相反,整個供應商管理的硬體及軟體的套組可以被認為係「雲端」。
雲端計算系統的後端通常包括一或多個資料中心。資料中心係用於容納計算系統及相關聯的部件的實體設施。資料中心通常包括大量的計算系統(例如,伺服器),該等計算系統可以在成行放置的機架中堆疊。擁有及/或操作雲端計算系統的實體可以被稱為雲端計算供應商。雲端計算供應商可以具有複數個資料中心,並且此等資料中心可以位於不同的地理區域中。
「私有雲端」係僅針對單個組織操作的雲端基礎設施,不論內部管理還是由第三方管理,並且內部或外部地代管。當在開放用於公共使用的網路上提供服務時,雲端被稱為「公共雲端」。大體上,公共雲端服務供應商在其資料中心處擁有且操作雲端基礎設施,並且使用者的存取大體經由網際網路發生。
雲端計算供應商可以向消費者提供許多不同類型的服務。一種類型的雲端計算裝置被稱為基礎設施即服務(IaaS)。IaaS係一種雲端計算形式,該雲端計算在網際網路上依須求向消費者遞送計算、網路、及儲存資源。IaaS使終端使用者能夠按需要擴大及縮小資源,從而減少對大量前期資本支出的需求。此舉可以對於預期具有可變工作負荷的使用者特別有益。
在常見的IaaS場景中,消費者租用在雲端計算供應商維護的伺服器上運行的虛擬機的使用。在此上下文中,術語「伺服器」指實體電腦系統,而術語「虛擬機」指電腦系統在伺服器上的仿真。換言之,虛擬機係在類似虛擬電腦操作的伺服器上運行的程式。類似實體電腦,虛擬機運行作業系統及一或多個應用。
在剛剛描述的場景中,正由不同消費者租用的虛擬機可以在相同伺服器上運行。然而,在另一IaaS場景中,雲端計算供應商可以將整個伺服器租用給消費者。具有單個租戶的伺服器可以被稱為「裸金屬伺服器」。換言之,裸金屬伺服器完全專用於正租用裸金屬伺服器的單個消費者(而非在消費者之間共享)。
在另一常見的IaaS場景中,消費者租用在由雲端計算供應商維護的伺服器上運行的容器的使用。容器化係軟體開發的途徑,其中應用及其需要的任何事物(諸如程式庫及其他依賴性)封裝在一起作為被稱為容器影像的標準單元。當部署容器影像時,其被稱為容器。容器的使用允許應用在各種不同的計算環境中適當地運行,而不管特定計算環境可能具有的可以與用於寫入及測試應用的計算環境不同的任何定製的設定。容器亦在共享的作業系統上將應用彼此隔離。容器以計算功率的一小部分提供虛擬機的大部分隔離。
根據本揭示的一個態樣,揭示了一種方法,包括啟用當計算裝置經歷故障時將被執行的錯誤減輕行動。方法藉由計算裝置中的韌體來實施。方法包括在計算裝置的開機序列期間偵測錯誤指示。開機序列在計算裝置的熱重新開機之後發生。開機序列在計算裝置中的記憶體處於自我再新模式時發生。方法進一步包括至少部分地基於錯誤指示來決定至少一個期望的錯誤減輕行動。方法進一步包括產生識別至少一個期望的錯誤減輕行動的開機錯誤記錄。方法進一步包括使開機錯誤記錄可用於計算裝置的作業系統。
偵測錯誤指示可包括在計算裝置的記憶體中的預定位置處偵測錯誤旗標。
與錯誤旗標相關聯的資料結構可識別至少一個記憶體位址範圍。至少一個期望的錯誤減輕行動可包括將來自至少一個記憶體位址範圍的記憶體內容發送到錯誤分析系統。
偵測錯誤指示可包括查詢計算裝置中的輔助服務處理器。
至少一個期望的錯誤減輕行動可包括將錯誤上下文發送到錯誤分析系統。
使用者上下文的複數個實例可在計算裝置上運行。至少一個期望的錯誤減輕行動可包括將使用者上下文的複數個實例的至少一者遷移到另一計算裝置。
至少一個期望的錯誤減輕行動可包括鎖定計算裝置用於硬體除錯。
根據本揭示的一個態樣,揭示了一種用於啟用當計算裝置經歷故障時將被執行的錯誤減輕行動的方法。方法藉由計算裝置中的作業系統來實施。方法包括在計算裝置的開機序列期間獲得開機錯誤記錄。開機序列在計算裝置的熱重新開機之後發生。開機序列在計算裝置中的記憶體處於自我再新模式時發生。開機錯誤記錄藉由計算裝置的韌體在開機序列中較早地創建。方法進一步包括決定在開機錯誤記錄中識別的至少一個期望的錯誤減輕行動。方法進一步包括導致至少一個期望的錯誤減輕行動將被執行。
導致至少一個期望的錯誤減輕行動將被執行可包括導致將錯誤上下文發送到錯誤分析系統。
計算裝置可係雲端計算系統的一部分的伺服器。使用者上下文的複數個實例可在伺服器上運行。導致至少一個期望的錯誤減輕行動將被執行可包括導致將使用者上下文的複數個實例的至少一者遷移到另一伺服器。
導致至少一個期望的錯誤減輕行動將被執行可包括導致計算裝置被鎖定用於硬體除錯。
獲得開機錯誤記錄可包括搜尋為計算裝置中的作業系統及韌體兩者已知的預定記憶體位置。
開機錯誤記錄可包括對應於將被執行的複數個錯誤減輕行動的複數個行動識別符。方法可額外包括存取將複數個行動識別符與指令相關聯的一或多個資料結構,當執行時,該等指令導致複數個錯誤減輕行動將被執行。
根據本揭示的另一態樣,揭示了一種雲端計算系統中的伺服器。伺服器經配置為啟用當伺服器經歷故障時將被執行的錯誤減輕行動。伺服器包括一或多個處理器、與一或多個處理器電子通訊的記憶體、及包括開機錯誤產生器的韌體。開機錯誤產生器可藉由一或多個處理器執行以在伺服器的開機序列期間偵測錯誤指示。開機序列在伺服器的熱重新開機之後發生。開機序列在記憶體處於自我再新模式時發生。開機錯誤產生器亦可藉由一或多個處理器執行以至少部分地基於錯誤指示來決定至少一個期望的錯誤減輕行動。開機錯誤產生器亦可藉由一或多個處理器執行以創建識別至少一個期望的錯誤減輕行動的開機錯誤記錄。伺服器亦包括作業系統,該作業系統包括開機錯誤處置器,該開機錯誤處置器可藉由一或多個處理器執行以在開機序列期間獲得開機錯誤記錄並且導致在開機錯誤記錄中識別的至少一個期望的錯誤減輕行動將被執行。
偵測錯誤指示可包括在伺服器的記憶體中的預定位置處偵測錯誤旗標。
與錯誤旗標相關聯的資料結構可識別至少一個記憶體位址範圍。至少一個期望的錯誤減輕行動可包括導致將來自至少一個記憶體位址範圍的記憶體內容發送到錯誤分析系統。
伺服器可進一步包括輔助服務處理器。偵測錯誤指示可包括查詢輔助服務處理器。
導致至少一個期望的錯誤減輕行動將被執行可包括導致將錯誤上下文發送到錯誤分析系統。
伺服器可進一步包括在伺服器上運行的使用者上下文的複數個實例。導致至少一個期望的錯誤減輕行動將被執行可包括導致將使用者上下文的複數個實例的至少一者遷移到另一伺服器。
導致至少一個期望的錯誤減輕行動將被執行可包括導致伺服器被鎖定用於硬體除錯。
提供此「發明內容」來以簡化形式引入將在下文「實施方式」中進一步描述的概念選擇。此「發明內容」不意欲識別要求保護的標的的關鍵特徵或必要特徵,亦不意欲用作輔助決定要求保護的標的的範疇。
額外特徵及優點將在以下描述中闡述。本揭示的特徵及優點可藉由在隨附的申請專利範圍中特別指出的系統及方法來實現及獲得。本揭示的特徵將從以下描述及隨附申請專利範圍更完全顯而易見,或可藉由實踐如後文闡述的揭示的標的來獲知。
時常地,雲端計算系統中的伺服器可以經歷意外的故障。伺服器可以出現故障的原因有許多不同。例如,當電腦程式(諸如軟體應用或作業系統)正常停止工作時,可以發生故障。作為另一實例,故障可以藉由一或多個硬體部件的功能失效來導致。
當發生故障時希望採取某些行動。例如,希望捕獲錯誤上下文。術語「錯誤上下文」可以指當故障發生時伺服器的記憶體的一些或全部內容。分析錯誤上下文可以提供關於伺服器故障的原因的線索。當伺服器經歷故障時,希望捕獲錯誤上下文並且將錯誤上下文發送到遠端位置用於分析。此舉有時被稱為執行當機傾印(crash dump)。
作為另一實例,若運行使用者上下文的一或多個實例的伺服器經歷故障,則可希望將彼使用者上下文遷移到另一伺服器以便限制使用者經歷對其服務的中斷的程度。若伺服器的故障係藉由一或多個硬體部件的故障導致的,則特別希望將使用者上下文遷移到另一伺服器。
術語「使用者上下文」可以指關於正由使用者執行的工作的伺服器的記憶體的一些或全部內容。使用者上下文的一些實例包括虛擬機及容器。如上文論述,使用者上下文的此等實例可以關於IaaS場景,其中消費者從公共雲端計算供應商租用虛擬機及/或容器的使用。
剛剛描述的兩種行動(將錯誤上下文發送到遠端位置用於分析、及將使用者上下文遷移到另一伺服器)可以涉及在網路連接上發送大量資料。然而,當伺服器經歷故障時,故障可以導致伺服器的輸入/輸出(I/O)子系統處於降低功能模式。此舉可以使採取行動(如剛剛描述的彼等)係困難或甚至不可能的。
本揭示提出了用於啟用當雲端計算系統中的伺服器經歷故障時將被執行的某些錯誤減輕行動(諸如將錯誤上下文發送到遠端位置用於分析,及/或將使用者上下文遷移到另一伺服器)的技術。根據本揭示的至少一些實施例,當伺服器經歷故障時,在伺服器的記憶體處於自我再新模式時可以執行熱重新開機。隨後,在後續的開機序列期間創建的開機錯誤記錄可以用額外資訊超載,該額外資訊識別將藉由伺服器的作業系統執行的至少一個期望的錯誤減輕行動。在此上下文中,當結合開機錯誤記錄使用時,術語「超載」可以指在開機錯誤記錄中除了通常在開機錯誤記錄中包括者之外還包括額外資訊。此舉將在下文更詳細描述。
術語「開機序列」指計算裝置當其啟動時執行的操作的初始序列。在常見的開機序列中,中央處理單元(central processing unit; CPU)執行在非揮發性記憶體中儲存的韌體。韌體的實例包括基本輸入/輸出系統(Basic Input/Output System; BIOS)及統一可延伸韌體介面(Unified Extensible Firmware Interface; UEFI)。韌體初始化計算裝置的硬體部件、定位非揮發性記憶體中的作業系統、將作業系統載入揮發性記憶體(例如,隨機存取記憶體(random access memory; RAM))中、及將控制轉移到作業系統。
術語「熱重新開機」可以指在不中斷其電力供應的情況下重啟已經通電的計算裝置。相比之下,「冷開機」係其中計算裝置從完全無電力狀態開始的開機序列。熱重新開機可以替代地稱為軟重新開機、熱重置、或熱重啟。
術語「自我再新模式」可以指其中記憶體裝置的內容跨熱重新開機保留的記憶體裝置的操作模式。由此,當在伺服器已經歷故障之後執行熱重新開機時,就在故障之前存在的記憶體的內容在後續的開機序列期間仍可用。
術語「開機錯誤記錄」可以指一或多個資料結構,該等資料結構可以在伺服器的開機序列期間藉由韌體創建。開機錯誤記錄可以被認為係用於向計算裝置中的其他實體(例如,作業系統)通知在開機序列期間已經偵測的錯誤的一類訊號機制。開機錯誤記錄的一個實例係在先進組態與電力介面(Advanced Configuration and Power Interface; ACPI)標準中定義的開機錯誤記錄表(Boot Error Record Table; BERT)。
當前,開機錯誤記錄(諸如BERT)僅包括關於已經偵測的錯誤的資訊。其等不包括關於應當回應於錯誤執行的行動的任何資訊。本揭示提出了用關於應當回應於已經偵測的錯誤執行的行動的額外資訊超載開機錯誤記錄。此種行動可以在本文中被稱為錯誤減輕行動,因為其等大體緩解錯誤的影響。當作業系統接收已經用此額外資訊超載的開機錯誤記錄時,作業系統可以導致一些或全部期望的錯誤減輕行動將被執行。
例如,根據本文揭示的技術,開機錯誤記錄可以經修改為包括關於應當將錯誤上下文發送到遠端位置用於分析的指示及/或關於應當將使用者上下文的一或多個實例遷移到另一伺服器的指示。當作業系統獲得開機錯誤記錄時,作業系統可以執行此等錯誤減輕行動中的一者或兩者。因為熱重新開機用在故障之後處於自我再新模式的伺服器的記憶體執行,所以在故障之前就存在的記憶體的內容在後續的開機序列期間仍儲存在記憶體中。由此,在故障時可用的任何錯誤上下文在後續的開機序列期間仍儲存在記憶體中並且可以經發送到遠端位置用於分析。類似地,在故障之前在伺服器上運行的使用者上下文的所有實例(例如,VM、容器)在後續的開機序列期間仍儲存在記憶體中,藉此可能將使用者上下文的一些或全部實例遷移到不同伺服器。
第1圖示出了可以經配置為實施本文揭示的技術的計算裝置102的態樣。在一些實施例中,計算裝置102可以係雲端計算系統的部分的伺服器。
計算裝置102包括各種硬體部件104。可以包括在計算裝置102中的硬體部件104的一些實例包括一或多個處理器、記憶體、儲存器、I/O子系統、一或多個通訊介面、及顯示控制器。
計算裝置102亦包括韌體106。韌體106係特殊類別的電腦軟體,該電腦軟體提供對計算裝置102的硬體部件104的低位準控制。韌體106可以儲存在非揮發性記憶體裝置中,諸如唯讀記憶體(read-only memory; ROM)、可抹除可程式化ROM(erasable programmable ROM; EPROM)、或電子可抹除可程式化ROM(electrically erasable programmable ROM; EEPROM)。韌體106可以用於在計算裝置102的開機序列期間初始化硬體部件104,並且亦用於為作業系統108及在計算裝置102上運行的程式提供運行時間服務。韌體106的實例包括基本輸入/輸出系統(BIOS)及統一可延伸韌體介面(UEFI)。
計算裝置102亦包括作業系統108。作業系統108係管理硬體及軟體資源並且為在計算裝置102上運行的程式提供公共服務的系統軟體。在藉由開機程式載入記憶體中之後,作業系統108管理在計算裝置102上運行的其他程式。針對某些硬體功能(例如,輸入與輸出及記憶體分配),作業系統108可以用作在計算裝置102上運行的程式與計算裝置102的硬體部件104之間的中介。作業系統108啟用程式以與硬體部件104相互作用,而不需要知道關於硬體部件104的任何細節。
韌體106包括開機錯誤記錄(BER)產生器110,該BER產生器可以經配置為在計算裝置102的開機序列期間產生開機錯誤記錄112。開機錯誤記錄112可以包括錯誤資訊114及一或多個行動識別符116。可以藉由BER產生器110執行的操作的實例將在下文結合第2圖描述。
作業系統108包括BER處置器118,該BER處置器可以經配置為處理藉由韌體106內的BER產生器110創建的開機錯誤記錄112。在一些實施例中,BER處置器118可以經配置為在與BER產生器110創建開機錯誤記錄112相同的開機序列期間處理開機錯誤記錄112。換言之,BER產生器110可以在計算裝置102的開機序列期間創建開機錯誤記錄112。BER產生器110亦可以使開機錯誤記錄112可用於作業系統108。隨後,稍後在相同的開機序列中,BER處置器118可以處理開機錯誤記錄112。可以藉由BER處置器118執行的操作的實例將在下文結合第3圖描述。
第2圖示出了用於啟用當計算裝置102經歷故障時將被執行的某些錯誤減輕行動的方法200的實例。方法200將關於第1圖所示的計算裝置102描述。方法200可以藉由計算裝置102中的韌體106實施。特定而言,方法200可以藉由韌體106內的BER產生器110實施。
方法200可以在計算裝置102的開機序列期間執行,該開機序列在計算裝置102的故障之後發生。計算裝置102的熱重新開機可以回應於故障執行,並且開機序列可以回應於計算裝置102的熱重新開機發生。當故障發生時並且亦在計算裝置102的後續熱重新開機期間,計算裝置102中的記憶體可以處於自我再新模式。
方法200可以包括偵測202錯誤指示。偵測錯誤指示可以包括發現或獲知在計算裝置102上指示已發生一或多個錯誤的某物的存在。例如,偵測錯誤指示可以包括在計算裝置102的記憶體中的預定位置處偵測錯誤旗標。作為另一實例,偵測錯誤指示可以包括查詢位於計算裝置102上的輔助服務處理器。作為另一實例,偵測錯誤指示可以包括查詢計算裝置102中的硬體部件104的錯誤狀態。此等實例將在下文更詳細描述。
方法200亦可以包括決定204應當回應於偵測202錯誤指示而執行的至少一個期望的錯誤減輕行動。錯誤減輕行動的類型可以至少部分地基於偵測的錯誤指示。換言之,偵測202的錯誤指示的類型可以影響BER產生器110決定204應當執行的錯誤減輕行動的類型。
例如,若錯誤指示表明一或多個軟體錯誤已在計算裝置102上發生,則BER產生器110可以決定應當將錯誤上下文發送到遠端位置用於分析。在一些情況下,BER產生器110可以決定應當回應於偵測錯誤指示將計算裝置102的記憶體的完整內容發送到遠端位置用於分析。計算裝置102的記憶體的完整內容可以包括CPU暫存器的內容。在其他情況下,BER產生器110可以決定應當回應於偵測錯誤指示將計算裝置102的記憶體的僅一些內容發送到遠端位置用於分析。
另一實例係關於其中計算裝置102係雲端計算系統的一部分的伺服器的場景,並且使用者上下文的一或多個實例(例如,VM、容器)正在伺服器上運行。在此種場景中,若錯誤指示表明已在伺服器上發生一或多個硬體錯誤,則BER產生器110可以決定應當將正在伺服器上運行的使用者上下文的至少一些實例遷移到另一伺服器。在一些實施例中,BER產生器110亦可以決定應當鎖定伺服器用於硬體除錯。因此,將使用者上下文的一或多個實例遷移到另一伺服器並且鎖定伺服器用於硬體除錯係可以回應於偵測錯誤指示來決定的期望錯誤減輕行動的額外實例。
在一些實施例中,韌體106可以考慮在特定伺服器上已發生的錯誤頻率以決定是否應當將使用者上下文的一或多個實例(例如,VM、容器)遷移到另一伺服器。例如,伺服器可能經歷錯誤(其可以係軟體錯誤及/或硬體錯誤),該等錯誤不被認為足夠嚴重以導致將使用者上下文的實例遷移到另一伺服器。然而,若足夠頻繁地經歷錯誤,則韌體106可以斷定錯誤的頻率足以證明應當將使用者上下文的實例遷移到另一伺服器。在一些實施例中,若由特定伺服器經歷的錯誤數量超過定義的時間週期內的定義的閾值,則韌體106可以斷定應當將使用者上下文的一或多個實例遷移到另一伺服器。除了將錯誤上下文發送到遠端位置用於分析之外,可以發生使用者上下文的此遷移。
類似地,韌體106可以考慮在特定伺服器上已發生的熱重置的頻率以決定是否應當將使用者上下文的一或多個實例遷移到另一伺服器。例如,若伺服器在定義的時間週期內經歷的熱重置的數量超過定義的閾值,則韌體106可以斷定應當將使用者上下文的一或多個實例遷移到另一伺服器。與之前一樣,除了將錯誤上下文發送到遠端位置用於分析之外,可以發生使用者上下文的此遷移。
方法200亦可以包括創建206至少一個開機錯誤記錄112,該開機錯誤記錄識別決定204的期望錯誤減輕行動。如第1圖所示,開機錯誤記錄112可以包括錯誤資訊114及一或多個行動識別符116。錯誤資訊114可以包括關於在開機序列期間偵測202的錯誤指示的資訊。如上文論述,錯誤指示可以係指示已在計算裝置102上發生一或多個錯誤的任何事物。在一些實施例中,開機錯誤記錄112中的錯誤資訊114可以描述計算裝置102經歷的故障的原因。行動識別符116可以包括識別應當回應於錯誤指示而採取的一或多個行動的資訊(如先前藉由BER產生器110決定204)。在一些實施例中,行動識別符116可以包括關於應當由作業系統108回應於錯誤指示而採取的一或多個行動的資訊。
方法200亦可以包括將開機錯誤記錄112提供208到作業系統108。在一些實施例中,將開機錯誤記錄112提供208到作業系統108可以包括在為韌體106及作業系統108兩者已知的預定記憶體位置中儲存開機錯誤記錄112。預定記憶體位置可以專用於儲存開機錯誤記錄112。或者,將開機錯誤記錄112提供208到作業系統108可以包括將開機錯誤記錄112儲存在記憶體位置(其可能不必為作業系統108已知)中並且隨後向作業系統108通知開機錯誤記錄112的記憶體位置。存在許多不同的韌體106可以向作業系統108通知開機錯誤記錄112的位置的方式。例如,韌體106可以將開機錯誤記錄112的位置寫入為韌體106及作業系統108兩者已知的預定位置。
第3圖示出了用於啟用當計算裝置102經歷故障時將被執行的某些錯誤減輕行動的方法300的另一實例。將關於第1圖所示的計算裝置102描述第3圖所示的方法300。方法300可以藉由計算裝置102中的作業系統108實施。特定而言,方法300可以藉由作業系統108內的BER處置器118實施。
與上文結合第2圖描述的方法200一樣,第3圖所示的方法可以在計算裝置102的開機序列期間執行,該開機序列在計算裝置102的故障之後發生。開機序列可以回應於故障之後的計算裝置102的熱重新開機而發生。當故障發生時並且亦在計算裝置102的後續熱重新開機期間,計算裝置102中的記憶體可以處於自我再新模式。
方法300可以包括獲得302開機錯誤記錄112。存在許多不同的可以獲得302開機錯誤記錄112的方式。在一些實施例中,在作業系統108已經載入記憶體中之後,BER處置器118可以搜尋為韌體106及作業系統108兩者已知的預定記憶體位置中的開機錯誤記錄112。若BER處置器118找到預定記憶體位置中的開機錯誤記錄112,則開機錯誤記錄112可以如在方法300的剩餘部分中描述般處理。在其他實施例中,預定記憶體位置可以包括開機錯誤記錄112的位置替代開機錯誤記錄112本身。換言之,BER處置器118可以查找預定記憶體位置,以查看預定記憶體位置是否識別開機錯誤記錄112的位置。若其識別,則BER處置器118可以藉由存取識別的位置獲得302開機錯誤記錄112。
方法300亦可以包括決定304在開機錯誤記錄112中識別的至少一個期望的錯誤減輕行動。如上文論述,開機錯誤記錄112可以包括一或多個行動識別符116。行動識別符116可以識別應當回應於藉由韌體106偵測的錯誤指示而採取的一或多個錯誤減輕行動。在一些實施例中,決定304在開機錯誤記錄112中識別的至少一個期望的錯誤減輕行動可以包括在開機錯誤記錄112中定位一或多個行動識別符116並且隨後決定對應於行動識別符116的錯誤減輕行動。
一旦已經決定304至少一個期望的錯誤減輕行動,方法300亦可以包括導致306期望的錯誤減輕行動將被執行。在一些實施例中,導致306特定錯誤減輕行動將被執行可以包括全部或部分執行錯誤減輕行動。在一些實施例中,導致306特定錯誤減輕行動將被執行可以包括向另一部件或實體(在計算裝置102內及/或在計算裝置102外部)通知錯誤減輕行動。若計算裝置102係雲端計算系統的一部分的伺服器,導致306特定錯誤減輕行動將被執行可以包括與構成控制器通訊。構成控制器可以經配置為關於雲端計算系統的一部分的伺服器執行管理操作。
例如,假設開機錯誤記錄112包括對應於將在伺服器上運行的使用者上下文的一或多個實例(例如,VM、容器)遷移到另一伺服器的行動的行動識別符116。導致306此錯誤減輕行動將被執行可以包括向構成控制器通知應當遷移使用者上下文的實例。類似地,若開機錯誤記錄112包括對應於鎖定伺服器用於硬體除錯的行動的行動識別符116,導致306此錯誤減輕行動將被執行可以包括向構成控制器通知應當鎖定伺服器。
鎖定伺服器用於硬體除錯可以包括防止將使用者上下文的新實例指派給伺服器。如上文提及,雲端計算供應商可以向消費者租用其伺服器上的各種使用者上下文(例如,VM、容器)的使用。雲端計算供應商可以提供消費者可以經由客戶端裝置存取的介面。當消費者希望從雲端計算系統租用使用者上下文的一或多個實例的使用時,消費者可以存取介面並且提交請求連同請求以便繼續進行的任何其他資訊(例如,支付資訊)。若請求被雲端計算供應商批准,則在某一點將消費者希望租用的使用者上下文指派給一或多個特定伺服器。構成控制器可以執行決定將指派哪個(哪些)伺服器以代管消費者正在租用的使用者上下文的任務。當鎖定伺服器用於硬體除錯時,此舉可以意味著只要伺服器保持鎖定,就不應當將新的使用者上下文的實例指派給伺服器。構成控制器可以追蹤哪些伺服器已經被鎖定用於硬體除錯。例如,構成控制器可以維持鎖定伺服器的列表。當消費者已訂購使用者上下文的一或多個新實例並且構成控制器正在將使用者上下文的新實例指派給一或多個伺服器時,構成控制器可以檢查鎖定伺服器的列表並且不將使用者上下文的新實例指派給列表上的任何伺服器。因此,若開機錯誤記錄112包括對應於鎖定伺服器用於硬體除錯的行動的行動識別符116,導致306此錯誤減輕行動將被執行可以包括向構成控制器通知應當將伺服器添加到鎖定伺服器的列表。
第4圖示出了展示在計算裝置402的韌體406中的BER產生器410在開機序列期間可以如何偵測錯誤指示的實例。在所描繪的實例中,BER產生器410可以經配置為在計算裝置402的開機序列期間搜尋計算裝置402的記憶體中的特定記憶體位置434。若BER產生器410在此記憶體位置434中找到錯誤旗標438,則BER產生器410可以經配置為將錯誤旗標438解讀為錯誤指示。換言之,BER產生器410可以經配置為將錯誤旗標438的存在解讀為關於計算裝置402已經歷一或多個錯誤並且應當創建開機錯誤記錄412的指示。
在一些實施例中,錯誤旗標438可以藉由計算裝置402中的作業系統408設定。在所描繪的實例中,將作業系統408圖示為具有經配置為設定錯誤旗標438的當機處置器440。在一些實施例中,在計算裝置402經歷了故障之後並且在執行計算裝置402的熱重新開機之前,錯誤旗標438可以藉由作業系統408設定。除了設定錯誤旗標438之外,作業系統408亦可以指示應當執行的期望的錯誤減輕行動(例如,將錯誤上下文發送到遠端位置、將使用者上下文的一或多個實例遷移到另一伺服器、鎖定伺服器用於硬體除錯)的性質。關於期望的錯誤減輕行動的資訊可以在記憶體位置434中連同錯誤旗標438一起保存,或該資訊可以在不同的記憶體位置中保存。
在一些實施例中,其中設定錯誤旗標438的記憶體位置434可以係非揮發性記憶體內的位置。例如,記憶體位置434可以係在儲存韌體406的非揮發性記憶體內的位置。
在一些實施例中,其中設定錯誤旗標438的記憶體位置434可以藉由計算裝置402的韌體406及作業系統408來預定。在此上下文中,術語「預定」可以指計算裝置402的韌體406及作業系統408提前決定的記憶體位置434。換言之,在設定錯誤旗標438之前,記憶體位置434可以為韌體406及作業系統408兩者已知為錯誤旗標438的位置。
儘管在第4圖中僅圖示單個錯誤旗標438,在一些實施例中,複數個錯誤旗標438可以對應於在計算裝置402上發生的不同錯誤而設定。
在一些實施例中,錯誤旗標438可以藉由調用由韌體406暴露的服務來設定。例如,若韌體406係UEFI,則錯誤旗標438可以藉由調用由UEFI暴露的更新封裝服務來設定。
如上文論述,回應於偵測錯誤旗標438,BER產生器410可以決定應當執行的至少一個期望的錯誤減輕行動。BER產生器410亦可以創建開機錯誤記錄412。開機錯誤記錄412可以包括錯誤資訊414以及一或多個行動識別符416,該等行動識別符識別BER產生器410決定應當執行的錯誤減輕行動。
如上文亦論述,BER產生器410可以回應於偵測錯誤旗標438而決定應當將錯誤上下文發送到遠端位置用於分析。錯誤上下文可以包括計算裝置402的記憶體的一些或全部內容。
在一些實施例中,錯誤旗標438可以與識別一或多個記憶體位址範圍444的一或多個資料結構442相關聯。在此種實施例中,BER產生器410可以決定應當將對應於記憶體位址範圍444的記憶體的內容發送到遠端位置用於分析。在一些實施例中,BER產生器410可以將規定記憶體位址範圍444的資料結構442的存在解讀為關於僅應當將對應於規定的記憶體位址範圍444的記憶體內容發送到遠端位置用於分析,並且不應當將規定的記憶體位址範圍444外部的記憶體的內容發送到遠端位置用於分析的指示。換言之,BER產生器410可以將規定記憶體位址範圍444的資料結構442的存在解讀為關於僅應當將記憶體的內容的子集被發送到遠端位置用於分析並且規定的記憶體位址範圍444識別子集的指示。BER產生器410可以在行動識別符416中包括記憶體位址範圍444,該等行動識別符包括在開機錯誤記錄412中。
在一些實施例中,BER產生器410可以經配置為基於存在還是缺乏規定記憶體位址範圍444的資料結構442結合錯誤旗標438來決定將記憶體的一些內容還是記憶體的全部內容發送到遠端位置用於分析。換言之,若BER產生器410偵測到錯誤旗標438但未偵測到規定任何記憶體位址範圍444的任何資料結構442結合錯誤旗標438,則BER產生器410可以創建行動識別符416,該行動識別符將導致作業系統408將記憶體的全部內容發送到遠端位置用於分析。另一方面,若BER產生器410偵測到錯誤旗標438並且亦偵測到一或多個記憶體位址範圍444結合錯誤旗標438,則BER產生器410可以創建行動識別符418,該行動識別符將導致作業系統408僅將對應於規定的記憶體位址範圍444的記憶體的內容發送到遠端位置用於分析。
在所描繪的實施例中,錯誤旗標438及識別記憶體位址範圍444的資料結構442在相同的記憶體位置434中圖示。或者,錯誤旗標438及識別記憶體位址範圍444的資料結構442可以在不同的記憶體位置中。在一些實施例中,記憶體位置434可以包括錯誤旗標438及識別記憶體位址範圍444的資料結構442的指標。
第5圖示出了圖示在計算裝置502的作業系統508中的BER處置器518可以如何決定在開機錯誤記錄512中識別的至少一個期望的錯誤減輕行動並且導致期望的錯誤減輕行動將被執行的實例。
在所描繪的實例中,開機錯誤記錄512包括錯誤資訊514及對應於N個錯誤減輕行動的N個行動識別符516,該等錯誤減輕行動應當回應於在計算裝置502的開機序列期間偵測錯誤指示而執行。N的值可以係大於或等於零的任何整數。如上文論述,存在可以根據本文揭示的技術執行的許多不同類型的錯誤減輕行動。例如,第一行動識別符516-1可以對應於將錯誤上下文發送到遠端位置用於分析的錯誤減輕行動,第二行動識別符516-2可以對應於將在計算裝置502上運行的使用者上下文的一或多個實例遷移到另一計算裝置(例如,另一伺服器)的錯誤減輕行動,並且第N行動識別符516-N可以對應於鎖定計算裝置502用於硬體除錯的錯誤減輕行動。
行動識別符516的格式可以預定並且為韌體506及作業系統508兩者已知。韌體506中的BER產生器510可以上文描述的方式產生開機錯誤記錄512,並且使開機錯誤記錄512可用於作業系統508。一旦作業系統508中的BER處置器518獲得開機錯誤記錄512並且決定開機錯誤記錄512包括一或多個行動識別符516,BER處置器518就可以存取將行動識別符516與可執行指令522相關聯的一或多個資料結構520。在所描繪的實例中,資料結構520將第一行動識別符516-1與可執行指令的第一集合522-1相關聯,第二行動識別符516-2與可執行指令的第二集合522-2相關聯,並且將第N行動識別符516-N與可執行指令的第N集合522-N相關聯。資料結構520可以位於計算裝置502本身上,及/或資料結構520可以在計算裝置502外部的可存取的計算裝置502的一或多個其他位置中。
如上文論述,一旦BER處置器518決定在開機錯誤記錄512中識別的至少一個期望的錯誤減輕行動,BER處置器518可以導致期望的錯誤減輕行動將被執行。在一些實施例中,BER處置器518可以經配置為導致與特定行動識別符516相關聯的指令522在BER處置器518獲得包括行動識別符516的開機錯誤記錄512時執行。因此,在所描繪的實例中,BER處置器518可以經配置為導致指令的第一集合522-1回應於決定開機錯誤記錄512包括第一行動識別符516-1而執行,導致指令的第二集合522-2回應於決定開機錯誤記錄512包括第二行動識別符516-2而執行,並且導致指令的第N集合522-N回應於決定開機錯誤記錄512包括第N行動識別符516-N而執行。
指令522的特定集合的執行可以導致與對應行動識別符516相關聯的錯誤減輕行動將被執行。因此,在本實例中,執行指令的第一集合522-1可以導致與第一行動識別符516-1相關聯的錯誤減輕行動(例如,將錯誤上下文發送到遠端位置用於分析)將被執行,執行指令的第二集合522-2可以導致與第二行動識別符516-2相關聯的錯誤減輕行動(例如,將在計算裝置502上運行的使用者上下文的一或多個實例遷移到另一伺服器)將被執行,並且執行指令的第N集合522-N可以導致與第N行動識別符516-N相關聯的錯誤減輕行動(例如,鎖定計算裝置502用於硬體除錯)將被執行。
當然,上文描述的具體行動僅出於實例目的而提供並且不應當被解釋為限制本揭示的範疇。根據本文揭示的技術創建的開機錯誤記錄512不必包括對應於此等具體錯誤減輕行動的行動識別符516。根據本文揭示的技術創建的開機錯誤記錄512可以包括對應於其他類型的錯誤減輕行動的行動識別符516。
第6圖示出了其中可以利用本文揭示的技術的系統600的實例。在一些實施例中,系統600可以係包括複數個伺服器602的雲端計算系統。第6圖圖示了在複數個伺服器602之中的特定伺服器602-1內的一些部件。系統600中的一些或全部其他伺服器602可以類似於所描繪伺服器602-1配置。
伺服器602-1可以包括與第1圖所示的計算裝置102相同的一些部件。例如,伺服器602-1可以包括各種硬體部件604、韌體606、及作業系統608。韌體606可以包括BER產生器610,並且作業系統608可以包括BER處置器618。此等部件可以類似於在上文論述的第1圖所示的計算裝置102中的對應部件。
在第6圖所示的系統600中,伺服器602-1包括超管理器624。超管理器624係創建並且運行虛擬機(VM) 626的軟體。超管理器允許伺服器602-1藉由虛擬地共享伺服器602-1的資源(例如,處理器及記憶體)來支援複數個VM 626。在所描繪的實施例中,將超管理器624圖示為作業系統608的一部分。在替代實施例中,超管理器624可以與作業系統608分離。
如上文提及,伺服器602可以係雲端計算系統的一部分。雲端計算系統可以係公共雲端計算系統。雲端計算系統的供應商可以向消費者租用此等伺服器602上的VM 626的使用。然而,甚至在雲端計算系統的上下文中,本文揭示的技術不限於其中VM 626在伺服器602上運行的場景。例如,如上文論述,本文揭示的技術可以在其中容器在伺服器602上運行(具有或不具有VM 626)的場景中利用。此外,在一些實施例中,本文揭示的技術可以應用於裸金屬場景,其中雲端計算系統中的至少一些伺服器602僅具有單個租戶(具有或不具有VM 626或容器)。
雲端計算系統的伺服器602可以與構成控制器628電子通訊。構成控制器628可以經配置為關於雲端計算系統的伺服器602執行管理操作。構成控制器628可以係執行管理操作的單個計算裝置或一起用於執行管理操作的複數個計算裝置的組合。在伺服器602與構成控制器628之間的通訊可以經由一或多個電腦網路630發生。
伺服器602-1亦可以包括輔助服務處理器646。輔助服務處理器646可以係與通用處理器分離的伺服器602-1內的專用微控制器。輔助服務處理器646的實例係基底板管理控制器(baseboard management controller; BMC)。將輔助服務處理器646包括在雲端計算系統的一部分的伺服器602中可以係有用的,因為其等允許系統管理人員遠端地執行各種任務。例如,系統管理人員可以使用構成控制器628(或另一管理系統)以與輔助服務處理器646遠端通訊來採取正確行動,諸如重置或電力循環伺服器602。
雲端計算系統的伺服器602亦可以與錯誤分析系統632電子通訊。錯誤分析系統632可以經配置為分析從伺服器602接收的錯誤上下文。在一些實施例中,錯誤分析系統632亦可以經配置為基於分析結果來對伺服器602做出關於應當進行的改變的建議。錯誤分析系統632可以係執行分析的單個計算裝置或一起用於執行分析的複數個計算裝置的組合。在伺服器602與錯誤分析系統632之間的通訊可以經由一或多個電腦網路630發生。
在一些實施例中,韌體606內的BER產生器610可以經配置為實施上文結合第2圖描述的方法200。類似地,作業系統608內的BER處置器618可以經配置為實施上文結合第3圖描述的方法300。
現將結合第7圖描述可以藉由韌體606內的BER產生器610實施的方法700的另一實例。特定而言,第7圖示出了用於啟用當雲端計算系統中的伺服器602-1經歷故障時將被執行的某些錯誤減輕行動的方法700的實例。將關於第6圖所示的系統600描述方法700。方法700可以藉由伺服器602-1中的韌體606實施。特定而言,方法700可以藉由韌體606內的BER產生器610實施。方法700可以在伺服器602-1的開機序列期間執行,該開機序列在伺服器602-1的故障之後發生。
方法700可以包括決定702是否執行伺服器602-1的熱重新開機。若決定702未執行伺服器602-1的熱重新開機,則方法700可以包括繼續704開機序列而不創建開機錯誤記錄612。
若決定702已執行伺服器602-1的熱重新開機,則方法700可以包括決定706是否可以在伺服器602-1上偵測到任何錯誤指示。如上文論述,偵測錯誤指示可以包括發現或獲知在伺服器602-1上指示已發生一或多個錯誤的某物的存在。例如,偵測錯誤指示可以包括在伺服器602-1的記憶體中的預定記憶體位置434處偵測錯誤旗標438。作為另一實例,偵測錯誤指示可以包括查詢伺服器602-1內的輔助服務處理器646。
若決定706在伺服器602-1上没有偵測到錯誤指示,則方法700可以包括繼續704開機序列而不創建開機錯誤記錄612。然而,若在伺服器602-1上偵測到至少一個錯誤指示,則方法700可以包括創建708開機錯誤記錄612。方法700可以隨後繼續進行以評估偵測的錯誤指示的類型。包括在開機錯誤記錄612中的行動識別符616的類型可以取決於偵測的錯誤指示的類型。
例如,方法700可以包括決定710是否已在伺服器602-1上發生任何軟體錯誤。若一或多個軟體錯誤已在伺服器602-1上發生,則方法700可以包括決定應當回應於軟體錯誤而執行的至少一個期望的錯誤減輕行動。在一些實施例中,當偵測到一或多個軟體錯誤時,BER產生器610可以決定應當將錯誤上下文發送到遠端位置用於分析。因此,方法700可以包括創建712行動識別符616,該行動識別符指示應當將錯誤上下文發送到遠端位置(諸如在第6圖所示的系統600中的錯誤分析系統632)用於分析。
如上文論述,在一些實施例中,錯誤旗標438可以與識別一或多個記憶體位址範圍444的一或多個資料結構442相關聯,並且BER產生器610可以將此等資料結構442的存在解讀為關於僅應當將對應於規定的記憶體位址範圍444的記憶體的內容發送到遠端位址用於分析的指示。在此種實施例中,在開機錯誤記錄612中的行動識別符616可以包括規定的記憶體位址範圍444。
方法700亦可以包括決定714是否已在伺服器602-1上發生任何硬體錯誤。若一或多個硬體錯誤已在伺服器602-1上發生,則方法700可以包括決定應當回應於硬體錯誤而執行的至少一個期望的錯誤減輕行動。在一些實施例中,當偵測到一或多個硬體錯誤時,BER產生器610可以決定應當將在伺服器602-1上運行的使用者上下文的至少一些實例(例如,VM 626及/或容器)遷移到另一伺服器602。因此,方法700可以包括創建716行動識別符616,該行動識別符指示應當將在伺服器602-1上運行的使用者上下文的一或多個實例遷移到另一伺服器602。在一些實施例中,行動識別符616可以指示應當將在伺服器602-1上運行的使用者上下文的所有實例遷移到另一伺服器602。在其他實施例中,行動識別符616可以指示應當將在伺服器602-1上運行的使用者上下文的實例的子集遷移到另一伺服器602。行動識別符616可以指示應當遷移的使用者上下文的具體實例(例如,特定VM626及/或容器)。
在一些實施例中,當偵測到一或多個硬體錯誤時,BER產生器610可以決定應當鎖定伺服器602-1用於硬體除錯。因此,方法700亦可以包括創建718行動識別符616,該行動識別符指示應當鎖定伺服器602-1用於硬體除錯。
當開機錯誤記錄612已經用行動識別符616創建時,該(等)行動識別符針對已經偵測的錯誤是適當的,方法700可以包括使720開機錯誤記錄612可用於作業系統608並且隨後繼續722開機序列。如上文論述,稍後在開機序列中,作業系統608可以獲得開機錯誤記錄612,決定在開機錯誤記錄612中識別的錯誤減輕行動(如由開機錯誤記錄612中的行動識別符616指示),並且導致彼等錯誤減輕行動將被執行。
現在參考第8圖。一或多個計算裝置800可以用於實施本文揭示的技術的至少一些態樣。第8圖示出了可以包括在計算裝置800內的某些部件。
計算裝置800包括處理器801及與處理器801電子通訊的記憶體803。指令805及資料807可以儲存在記憶體803中。指令805可以由處理器801可執行以實施本文揭示的一些或全部方法、步驟、操作、行動、或其他功能。執行指令805可以涉及使用在記憶體803中儲存的資料807。除非另外聲明,否則本文描述的模組及部件的各個實例的任一者可以部分或完全實施為在記憶體803中儲存並且由處理器801執行的指令805。本文描述的資料的各個實例的任一者可以在記憶體803中儲存的資料807之中並且在由處理器801執行指令805期間使用。
儘管在第8圖的計算裝置800中僅圖示單個處理器801,但在替代配置中,可以使用處理器(例如,ARM及DSP)的組合。
計算裝置800亦可以包括用於與其他電子裝置通訊的一或多個通訊介面809。通訊介面809可以基於有線通訊技術、無線通訊技術、或兩者。通訊介面809的一些實例包括通用串列匯流排(Universal Serial Bus; USB)、乙太網適配器、根據電氣與電子工程師協會(Institute  of  Electrical  and  Electronics  Engineers; IEEE) 802.11無線通訊協定操作的無線適配器、藍牙®無線通訊適配器、及紅外(IR)通訊埠。
計算裝置800亦可以包括一或多個輸入裝置811及一或多個輸出裝置813。輸入裝置811的一些實例包括鍵盤、滑鼠、麥克風、遠端控制裝置、按鈕、操縱桿、軌跡球、觸控板、及光筆。通常包括在計算裝置800中的輸出裝置813的一個具體類型係顯示裝置815。與本文揭示的實施例一起使用的顯示裝置815可以利用任何適宜的影像投射技術,諸如液晶顯示器(liquid crystal display; LCD)、發光二極體(light-emitting diode; LED)、氣體電漿、電致發光、或類似者。亦可以提供用於將儲存在記憶體803中的資料807轉換為在顯示裝置815上顯示的文本、圖形、及/或移動影像(若適當)的顯示控制器817。計算裝置800亦可以包括其他類型的輸出裝置813,諸如揚聲器、印表機等。
計算裝置800的各個部件可以藉由一或多個匯流排耦接在一起,該等匯流排可以包括電力匯流排、控制訊號匯流排、狀態訊號匯流排、資料匯流排等。出於清楚的緣故,各個匯流排在第8圖中示出為匯流排系統819。
本文揭示的技術可以在硬體、軟體、韌體、或其任何組合中實施,除非具體描述為以具體方式實施。描述為模組、部件、或類似者的任何特徵亦可以一起在整合的邏輯裝置中實施或獨立地作為離散但可相互操作的邏輯裝置實施。若在軟體中實施,技術可以至少部分藉由其上儲存有電腦可執行指令的非暫時性電腦可讀取媒體來實現,當藉由至少一個處理器執行時,該等電腦可執行指令執行本文揭示的一些或全部步驟、操作、行動、或其他功能。指令可以組織為常式、程式、物件、部件、資料結構等,其等可以執行特定任務及/或實施特定資料類型,並且在各個實施例中可以如期望組合或分散。
術語「處理器」可以指通用單晶片或多晶片微處理器(例如,進階RISC(精簡指令集電腦)機器(ARM))、專用微處理器(例如,數位訊號處理器(digital signal processor; DSP))、微控制器、可程式化閘陣列、或類似者。處理器可以係中央處理單元(central processing unit; CPU)。在一些實施例中,處理器(例如,ARM及DSP)的組合可以用於實施本文揭示的一些或全部技術。
術語「記憶體」可以指能夠儲存電子資訊的任何電子部件。例如,記憶體可體現為隨機存取記憶體(random access memory; RAM)、唯讀記憶體(read-only memory; ROM)、磁碟儲存媒體、光學儲存媒體、RAM中的快閃記憶體裝置、處理器中包括的機載記憶體、可抹除可程式化唯讀記憶體(erasable programmable read-only memory; EPROM)、電子可抹除可程式化唯讀記憶體(electrically  erasable  programmable  read-only memory; EEPROM)記憶體、暫存器等等,包括其組合。
作為一實例,術語「電路系統」可以指一或多個積體電路,其中積體電路可以包括在一片半導體材料(例如,矽)上的一組電子電路。在一些實施例中,電路可以包括可程式化邏輯裝置,諸如現場可程式化閘陣列(field programmable gate  array; FPGA)及/或複雜可程式化邏輯裝置(complex programmable logic device; CPLD)。在一些實施例中,電路可以包括特殊應用積體電路(application specific integrated circuit; ASIC)。作為另一實例,術語「電路系統」可以指包括獨立電子部件的一或多個離散電子電路。作為另一實例,術語「電路系統」可以指數位電路、類比電路、或混合訊號電路。「電路系統」亦可以包括前述的組合。
本文描述的方法的步驟、操作、及/或行動可彼此互換而不脫離申請專利範圍的範疇。換言之,除非需要具體順序的步驟、操作、及/或行動來正確運行所描述的方法,否則可修改具體步驟、操作、及/或行動的順序及/或使用而不脫離申請專利範圍的範疇。
術語「決定」(及其語法變形)可以包含各種各樣的行動。例如,「決定」可以包括計算、運算、處理、導出、調查、查找(例如,查找表、資料庫或另一資料結構)、確認及類似者。此外,「決定」可以包括接收(例如,接收資訊)、存取(例如,存取記憶體中的資料)及類似者。此外,「決定」可以包括求解、選擇、選定、建立及類似者。
術語「包含(comprising)」、「包括(including)」、及「具有(having)」意欲為包括性的,並且表示可能存在與所列出的元件不同的額外元件。此外,應當理解,提及本揭示的「一個實施例」或「一實施例」不意欲解釋為排除存在亦整合記載的特徵的額外實施例。例如,在兼容的情況下,關於本文的實施例描述的任何元件或特徵可與本文描述的任何其他實施例的任何元件或特徵組合。
本揭示可以其他具體形式體現而不脫離其精神或特性。所描述的實施例被認為係說明性且非限制性。由此,本揭示的範疇藉由隨附申請專利範圍而非以上描述來指示。在申請專利範圍的等同物的意義及範圍內的改變將包含在其範疇內。
102:計算裝置 104:硬體部件 106:韌體 108:作業系統 110:開機錯誤記錄(BER)產生器 112:開機錯誤記錄 114:錯誤資訊 116:行動識別符 118:BER處置器 200:方法 202:偵測 204:決定 206:創建 208:提供 300:方法 302:獲得 304:決定 306:導致 402:計算裝置 406:韌體 408:作業系統 410:BER產生器 412:開機錯誤記錄 414:錯誤資訊 416:行動識別符 434:記憶體位置 438:錯誤旗標 440:當機處置器 442:資料結構 444:記憶體位址範圍 502:計算裝置 506:韌體 508:作業系統 510:BER產生器 512:開機錯誤記錄 514:錯誤資訊 516:行動識別符 518:BER處置器 520:資料結構 522:可執行指令 600:系統 602:伺服器 602-1:伺服器 604:硬體部件 606:韌體 608:作業系統 610:BER產生器 612:開機錯誤記錄 616:行動識別符 618:BER處置器 624:超管理器 626:虛擬機(VM) 628:構成控制器 630:電腦網路 632:錯誤分析系統 646:輔助服務處理器 700:方法 702:決定 704:繼續 706:決定 708:創建 710:決定 712:創建 714:決定 716:創建 718:創建 720:使之可用 722:繼續 800:計算裝置 801:處理器 803:記憶體 805:指令 807:資料 809:通訊介面 811:輸入裝置 813:輸出裝置 815:顯示裝置 817:顯示控制器 819:匯流排系統
為了描述可以獲得本揭示的上文記載及其他特徵的方式,將藉由參考其具體實施例來呈現更特定描述,該等實施例在附圖中示出。為了較佳理解,在各個附圖中類似元件已經藉由類似元件符號指定。將理解,圖式描繪了一些示例實施例,實施例將經由使用附圖進行額外的具體和詳細的描述及解釋,在附圖中:
第1圖示出了可以經配置為實施本文揭示的技術的計算裝置的態樣。
第2圖示出了可以藉由計算裝置的韌體執行以啟用當計算裝置經歷故障時將被執行的某些錯誤減輕行動的方法的實例。
第3圖示出了可以藉由計算裝置的作業系統執行以啟用當計算裝置經歷故障時將被執行的某些錯誤減輕行動的方法的實例。
第4圖示出了圖示在計算裝置的韌體中的開機錯誤記錄產生器在開機序列期間可以如何偵測錯誤指示的實例。
第5圖示出了圖示在計算裝置的作業系統中的開機錯誤記錄處置器可以如何決定在開機錯誤記錄中識別的至少一個期望的錯誤減輕行動並且導致期望的錯誤減輕行動將被執行的實例。
第6圖示出了其中可以利用本文揭示的技術的雲端計算系統的實例。
第7圖示出了可以藉由雲端計算系統中的伺服器的韌體執行以啟用當伺服器經歷故障時將被執行的某些錯誤減輕行動的方法的實例。
第8圖示出了可以包括在計算裝置內的某些部件。
國內寄存資訊(請依寄存機構、日期、號碼順序註記) 無 國外寄存資訊(請依寄存國家、機構、日期、號碼順序註記) 無
102:計算裝置
104:硬體部件
106:韌體
108:作業系統
110:開機錯誤記錄(BER)產生器
112:開機錯誤記錄
114:錯誤資訊
116:行動識別符
118:BER處置器

Claims (20)

  1. 一種用於啟用當一計算裝置經歷一故障時將被執行的錯誤減輕行動的方法,該方法藉由該計算裝置中的韌體實施,該方法包含以下步驟: 在該計算裝置的一開機序列期間偵測一錯誤指示,其中該開機序列在該計算裝置的一熱重新開機之後發生,並且其中該開機序列在該計算裝置中的記憶體處於一自我再新模式時發生; 至少部分地基於該錯誤指示來決定至少一個期望的錯誤減輕行動; 創建識別該至少一個期望的錯誤減輕行動的一開機錯誤記錄;以及 使該開機錯誤記錄可用於該計算裝置的一作業系統。
  2. 如請求項1所述的方法,其中偵測該錯誤指示之步驟包含以下步驟:在該計算裝置的該記憶體中的一預定位置處偵測一錯誤旗標。
  3. 如請求項2所述的方法,其中: 與該錯誤旗標相關聯的一資料結構識別至少一個記憶體位址範圍;以及 該至少一個期望的錯誤減輕行動包含將來自該至少一個記憶體位址範圍的記憶體內容發送到一錯誤分析系統。
  4. 如請求項1所述的方法,其中偵測該錯誤指示之步驟包含以下步驟:查詢該計算裝置中的一輔助服務處理器。
  5. 如請求項1所述的方法,其中該至少一個期望的錯誤減輕行動包含將錯誤上下文發送到一錯誤分析系統。
  6. 如請求項1所述的方法,其中: 使用者上下文的複數個實例正在該計算裝置上運行;以及 該至少一個期望的錯誤減輕行動包含將使用者上下文的該複數個實例的至少一者遷移到另一計算裝置。
  7. 如請求項1所述的方法,其中該至少一個期望的錯誤減輕行動包含鎖定該計算裝置用於硬體除錯。
  8. 一種用於啟用當一計算裝置經歷一故障時將被執行的錯誤減輕行動的方法,該方法藉由該計算裝置中的一作業系統實施,該方法包含以下步驟: 在該計算裝置的一開機序列期間獲得一開機錯誤記錄,其中該開機序列在該計算裝置的一熱重新開機之後發生,其中該開機序列在該計算裝置中的記憶體處於一自我再新模式時發生,並且其中該開機錯誤記錄藉由該計算裝置的韌體在該開機序列中較早地創建; 決定在該開機錯誤記錄中識別的至少一個期望的錯誤減輕行動;以及 導致該至少一個期望的錯誤減輕行動將被執行。
  9. 如請求項8所述的方法,其中導致該至少一個期望的錯誤減輕行動將被執行之步驟包含以下步驟:導致將錯誤上下文發送到一錯誤分析系統。
  10. 如請求項8所述的方法,其中: 該計算裝置係一雲端計算系統的一部分的一伺服器; 使用者上下文的複數個實例正在該伺服器上運行;以及 導致該至少一個期望的錯誤減輕行動將被執行之步驟包含以下步驟:導致將使用者上下文的該複數個實例的至少一者遷移到另一伺服器。
  11. 如請求項8所述的方法,其中導致該至少一個期望的錯誤減輕行動將被執行之步驟包含以下步驟:導致鎖定該計算裝置用於硬體除錯。
  12. 如請求項8所述的方法,其中獲得該開機錯誤記錄之步驟包含以下步驟:搜尋為該計算裝置中的該作業系統及該韌體兩者已知的一預定記憶體位置。
  13. 如請求項8所述的方法,其中: 該開機錯誤記錄包含對應於將被執行的複數個錯誤減輕行動的複數個行動識別符;以及 該方法進一步包含以下步驟:存取將該複數個行動識別符與指令相關聯的一或多個資料結構,當執行時,該等指令導致該複數個錯誤減輕行動將被執行。
  14. 一種在一雲端計算系統中的伺服器,該伺服器經配置為啟用當該伺服器經歷一故障時將被執行的錯誤減輕行動,該伺服器包含: 一或多個處理器; 記憶體,與該一或多個處理器電子通訊; 韌體,包含藉由該一或多個處理器可執行以進行以下步驟的一開機錯誤產生器: 在該伺服器的一開機序列期間偵測一錯誤指示,其中該開機序列在該伺服器的一熱重新開機之後發生,並且其中該開機序列在該記憶體處於一自我再新模式時發生; 至少部分地基於該錯誤指示來決定至少一個期望的錯誤減輕行動;以及 創建識別該至少一個期望的錯誤減輕行動的一開機錯誤記錄;以及 一作業系統,包含藉由該一或多個處理器可執行以進行以下操作的一開機錯誤處置器: 在該開機序列期間獲得該開機錯誤記錄;以及 導致在該開機錯誤記錄中識別的該至少一個期望的錯誤減輕行動將被執行。
  15. 如請求項14所述的伺服器,其中偵測該錯誤指示之步驟包含以下步驟:在該伺服器的該記憶體中的一預定位置處偵測一錯誤旗標。
  16. 如請求項15所述的伺服器,其中: 與該錯誤旗標相關聯的一資料結構識別至少一個記憶體位址範圍;以及 該至少一個期望的錯誤減輕行動包含導致將來自該至少一個記憶體位址範圍的記憶體內容發送到一錯誤分析系統。
  17. 如請求項14所述的伺服器,其中: 該伺服器進一步包含一輔助服務處理器;以及 偵測該錯誤指示包含查詢該輔助服務處理器。
  18. 如請求項14所述的伺服器,其中導致該至少一個期望的錯誤減輕行動將被執行之步驟包含以下步驟:導致將錯誤上下文發送到一錯誤分析系統。
  19. 如請求項14所述的伺服器,其中: 該伺服器進一步包含在該伺服器上運行的使用者上下文的複數個實例;以及 導致該至少一個期望的錯誤減輕行動將被執行之步驟包含以下步驟:導致將使用者上下文的該複數個實例的至少一者遷移到另一伺服器。
  20. 如請求項14所述的伺服器,其中導致該至少一個期望的錯誤減輕行動將被執行之步驟包含以下步驟:導致鎖定該伺服器用於硬體除錯。
TW110142946A 2020-12-21 2021-11-18 超載開機錯誤訊號機制以啟用將被執行的錯誤減輕行動 TW202232318A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/128,546 US11269729B1 (en) 2020-12-21 2020-12-21 Overloading a boot error signaling mechanism to enable error mitigation actions to be performed
US17/128,546 2020-12-21

Publications (1)

Publication Number Publication Date
TW202232318A true TW202232318A (zh) 2022-08-16

Family

ID=78820786

Family Applications (1)

Application Number Title Priority Date Filing Date
TW110142946A TW202232318A (zh) 2020-12-21 2021-11-18 超載開機錯誤訊號機制以啟用將被執行的錯誤減輕行動

Country Status (3)

Country Link
US (1) US11269729B1 (zh)
TW (1) TW202232318A (zh)
WO (1) WO2022139951A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12001302B2 (en) * 2022-09-07 2024-06-04 Dell Products, L.P. Systems and methods for memory serviceability mitigation

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6502208B1 (en) * 1997-03-31 2002-12-31 International Business Machines Corporation Method and system for check stop error handling
US7900090B2 (en) * 2009-02-13 2011-03-01 Oracle America, Inc. Systems and methods for memory retention across resets
US8132057B2 (en) * 2009-08-07 2012-03-06 International Business Machines Corporation Automated transition to a recovery kernel via firmware-assisted-dump flows providing automated operating system diagnosis and repair
US8775781B2 (en) 2010-03-25 2014-07-08 Microsoft Corporation Intelligent boot device selection and recovery
US8671405B2 (en) 2010-03-31 2014-03-11 Microsoft Corporation Virtual machine crash file generation techniques
US9471355B2 (en) 2012-07-31 2016-10-18 Hewlett-Packard Development Company, L.P. Secure operations for virtual machines
US9286152B2 (en) * 2013-06-14 2016-03-15 Microsoft Technology Licensing, Llc Securely obtaining memory content after device malfunction
US9053216B1 (en) 2013-08-09 2015-06-09 Datto, Inc. CPU register assisted virtual machine screenshot capture timing apparatuses, methods and systems
SG11201607545PA (en) * 2014-06-24 2016-10-28 Huawei Tech Co Ltd Fault processing method, related apparatus, and computer
US10102073B2 (en) * 2015-05-20 2018-10-16 Dell Products, L.P. Systems and methods for providing automatic system stop and boot-to-service OS for forensics analysis
US10365961B2 (en) * 2016-09-09 2019-07-30 Dell Products L.P. Information handling system pre-boot fault management
US11243782B2 (en) 2016-12-14 2022-02-08 Microsoft Technology Licensing, Llc Kernel soft reset using non-volatile RAM
US10387261B2 (en) * 2017-05-05 2019-08-20 Dell Products L.P. System and method to capture stored data following system crash
US11494248B2 (en) * 2019-12-20 2022-11-08 Qualcomm Incorporated Warm mission-mode reset in a portable computing device
US11157349B2 (en) * 2020-02-03 2021-10-26 Dell Products L.P. Systems and methods for pre-boot BIOS healing of platform issues from operating system stop error code crashes

Also Published As

Publication number Publication date
WO2022139951A1 (en) 2022-06-30
US11269729B1 (en) 2022-03-08

Similar Documents

Publication Publication Date Title
US10095559B2 (en) Interface for translating software commands and hardware commands for a distributed computing system
US9880866B2 (en) Cryptographically attested resources for hosting virtual machines
US8856294B2 (en) System and method for converting a Java application into a virtual server image for cloud deployment
US9104461B2 (en) Hypervisor-based management and migration of services executing within virtual environments based on service dependencies and hardware requirements
US10372565B2 (en) Method and apparatus for failover processing
US10216531B2 (en) Techniques for virtual machine shifting
US8413148B2 (en) Virtualization support in platform management (PLM) information model
US20130055261A1 (en) Controlling virtual machine in cloud computing system
US20180157444A1 (en) Virtual storage controller
US10725890B1 (en) Program testing service
US20160253501A1 (en) Method for Detecting a Unified Extensible Firmware Interface Protocol Reload Attack and System Therefor
US11544148B2 (en) Preserving error context during a reboot of a computing device
US9329953B2 (en) Reducing application downtime during failover
US10972350B2 (en) Asynchronous imaging of computing nodes
TW202232318A (zh) 超載開機錯誤訊號機制以啟用將被執行的錯誤減輕行動
US11640290B2 (en) Pushing a firmware update patch to a computing device via an out-of-band path
TW201523447A (zh) 伺服器系統與韌體更新方法
US11726852B2 (en) Hardware-assisted paravirtualized hardware watchdog
US20100223366A1 (en) Automated virtual server deployment
US11625338B1 (en) Extending supervisory services into trusted cloud operator domains
US11675602B2 (en) Methods and systems for creating root-of-trust for computing system components
US11327824B2 (en) Using a web server to obtain service data for a failed software application
US11144487B1 (en) Method to overload hardware pin for improved system management
US20240020103A1 (en) Parallelizing data processing unit provisioning