TWI823444B - 計算系統及由計算系統執行的方法 - Google Patents

計算系統及由計算系統執行的方法 Download PDF

Info

Publication number
TWI823444B
TWI823444B TW111124012A TW111124012A TWI823444B TW I823444 B TWI823444 B TW I823444B TW 111124012 A TW111124012 A TW 111124012A TW 111124012 A TW111124012 A TW 111124012A TW I823444 B TWI823444 B TW I823444B
Authority
TW
Taiwan
Prior art keywords
bios
mentioned
data structure
computing system
modified
Prior art date
Application number
TW111124012A
Other languages
English (en)
Other versions
TW202333057A (zh
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 TW202333057A publication Critical patent/TW202333057A/zh
Application granted granted Critical
Publication of TWI823444B publication Critical patent/TWI823444B/zh

Links

Classifications

    • 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
    • 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/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • 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
    • G06F9/4406Loading of operating system
    • 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/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • 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
    • G06F9/4406Loading of operating system
    • G06F9/4408Boot device selection

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Stored Programmes (AREA)
  • Hardware Redundancy (AREA)
  • Measuring Pulse, Heart Rate, Blood Pressure Or Blood Flow (AREA)

Abstract

一種包含資料處理器及非暫態電腦可讀取儲存媒體的計算系統,非暫態電腦可讀取儲存媒體包含多個指令,當指令在資料處理器上執行時,致使資料處理器執行多個操作。上述操作包含:使用應用程式介面(API)接收修改過的基本輸入輸出系統(BIOS)設定。修改過的BIOS設定包含描述至少一個可延伸韌體介面(EFI)變數的屬性。將修改過的BIOS設定儲存在基板管理控制器(BMC)中的未來設定資料結構中。提供儲存在BMC中的當前設定資料結構。使用修改過的BIOS設定取代當前設定資料結構的至少一部份,以提供修改過的當前設定資料結構。然後將修改過的當前設定資料結構應用到計算系統。

Description

計算系統及由計算系統執行的方法
本發明是關於連網計算系統(networked computing system),特別是關於使用可延伸韌體介面(extensible firmware interface(EFI))變數來配置連網計算系統。
計算系統(例如伺服器(server))被大量用於高需求應用程式(high demand application),例如基於網路(network-based)的系統或資料中心(data center)。雲端計算應用程式(cloud computing application)的出現使資料中心的需求增加。資料中心具有多個伺服器,用以儲存資料並執行由遠端連線的電腦設備用戶存取的應用程式。典型的資料中心具有附帶電源與通訊連接的實體機架結構(physical rack structure)。每個機架可以容納多個計算伺服器及儲存伺服器。一般而言,每個伺服器包含例如處理器、記憶裝置、網路介面卡、電源供應器以及其他特殊化硬體的硬體元件。伺服器通常包括基板管理控制器(baseboard management controller(BMC)),用以管理硬體元件及支援元件的操作,上述支援元件例如電源供應器及風扇。BMC也會將操作資料(operational data)傳送到中央管理站(central management station),中央管理站通過網路管理機架上的伺服器。BMC減輕了對於伺服器的中央處理單元(central processing unit(CPU))監控伺服器操作的需求。資料中心或資料中心內的計算系統的停機時間(downtime)是一個問題。BMC 可以進一步被增強以管理計算系統的啟動(boot),而不僅僅是監視計算系統。
實施例一詞及相似的用語(例如執行、配置、方面、範例及選項)旨在廣義上指本揭露及以下請求項的所有標的。包含這些用語的聲明應理解為不被限制於這裡描述的標的,或是不被用以限制以下請求項的意義或範圍。本揭露在此涵蓋的實施例由以下請求項定義,而不是本發明內容。本發明內容是一個揭露內容各面向的高層次概述,及介紹一些概念,上述概念會在實施方式中有進一步的描述。本發明內容不用以識別請求項標的的關鍵或必要特徵。本發明內容也不應單獨使用來決定請求項標的的範圍。標的內容應該以參考本揭露整個詳細說明的適當部份、任何或全部圖示,及每個請求項的方式理解。
本發明的一些實施例有關於一種計算系統,包含一或多個資料處理器以及一非暫態電腦可讀取儲存媒體(non-transitory computer-readable storage medium),上述非暫態電腦可讀取儲存媒體包含多個指令,當上述指令在上述一或多個資料處理器上執行時,致使上述一或多個資料處理器執行多個操作。上述操作包含使用一應用程式介面(application programming interface(API))接收一修改過的基本輸入輸出系統(basic input-output system(BIOS))設定。上述修改過的BIOS設定包含描述至少一個可延伸韌體介面(extensible firmware interface(EFI))變數的一屬性(attribute)。上述操作更包含將上述修改過的BIOS設定儲存在一基板管理控制器(BMC)中的一未來設定資料結構(future setting data structure)中。上述操作更包含提供儲存在上述BMC中的一當前設定資料結構(current setting data structure)。上述操作更包含使用上述修改過的BIOS設定取代上述當前設定資料結構的至少一部份,以提供一修改過的當前設定資料結構。然後將上述修改過的當前設定資料結構應用到上述計算系統。
在一些實施方式中, 上述EFI變數描述網際網路小型電腦系統介面(internet small computer system interface(iSCSI))裝置、統一EFI(unified EFI(UEFI)安全啟動設定、可啟動裝置的啟動順序(boot order)、傳輸層安全認證(transport layer security(TLS)  certificate),及/或虛擬區域網路(virtual local area network(VLAN))設定的多個屬性。在一些實施方式中,執行上述指令更致使上述一或多個資料處理器執行多個操作,更包含:判斷上述計算系統的一BIOS是否正在執行一第一次啟動,以及根據至少一部分上述BIOS正在執行上述第一次啟動的判斷,由上述BIOS將一屬性登錄檔(registry)傳送到上述BMC。在一些實施方式中,上述屬性登錄檔包含描述上述至少一個EFI變數的上述屬性的一定義。在一些實施方式中,描述上述至少一個EFI變數的上述屬性的類型關鍵字(type key)是一字串。在一些實施方式中,描述上述至少一個EFI變數的上述屬性的上述定義不包含預設值(default value)參數,而描述一通用(general)BIOS設定的一屬性的一定義包含預設值參數。
在一些實施方式中,上述API 是Redfish API。在一些實施方式中,上述未來設定資料結構及上述當前設定資料結構是JavaScript物件表示法(JavaScript object notation(JSON))格式。在一些實施方式中,執行上述指令更致使上述一或多個資料處理器執行多個操作,更包含將上述EFI變數儲存至上述當前設定資料結構。在一些實施方式中,將上述EFI變數儲存至上述當前設定資料結構的操作包含將上述EFI變數封包(pack)為一二進位結構、將上述二進位結構編碼為一字串,以及將上述字串作為上述屬性的值儲存在上述當前設定資料結構中。在一些實施方式中,將上述EFI變數儲存至上述當前設定資料結構的操作更包含在將上述二進制結構編碼前,壓縮上述二進位結構。在一些實施方式中,上述二進位結構使用Base64演算法進行編碼。
在一些實施方式中,使用來自上述未來設定資料結構的上述修改過的BIOS設定取代儲存在上述BMC中的上述當前設定資料結構的至少一部分的操作包含:從上述未來設定資料結構接收一字串,上述字串是上述屬性的值。上述字串之後解碼為二進位結構。基於作為EFI變數應用於上述BIOS中的上述二進位資料結構,使用上述未來設定資料結構中的上述字串取代上述當前設定資料結構的上述至少一部分。在一些實施方式中,使用來自上述未來設定資料結構的上述修改過的BIOS設定取代儲存在上述BMC中的一當前設定資料結構的至少一部分的操作更包含:在將上述字串解碼後解壓縮上述二進位結構。在一些實施方式中,上述二進位結構使用Base64演算法進行解碼。
在一些實施方式中,使用上述修改後的BIOS設定取代上述當前設定資料結構的至少一部分的操作,是在BIOS開機自我檢測(power-on self-test(POST))期間執行。在一些實施方式中,上述計算系統是伺服器。在一些實施方式中,上述計算系統是包含至少一個伺服器的資料中心。在一些實施方式中,上述當前設定資料結構、上述未來設定資料結構,或是一屬性登錄檔中的任一者是從一BIOS的一統一可延伸韌體介面(unified extensible firmware interface(UEFI))人類介面基礎架構(human interface infrastructure(HII))資料庫(database)產生的。在一些實施方式中,上述至少一個伺服器包含一第一伺服器及一第二伺服器,並且執行上述指令更致使上述資料處理器執行多個操作,更包含將上述第一伺服器的上述當前設定資料結構以及相關的屬性登錄檔表,移植(port)到上述第二伺服器。
本發明的實施例提供一種由一計算系統執行的方法,包含使用一應用程式介面(API)接收一修改過的基本輸入輸出系統(BIOS)設定。上述修改過的BIOS設定包含描述至少一個可延伸韌體介面(EFI)變數的一屬性。將上述修改過的BIOS設定儲存在一基板管理控制器(BMC)中的一未來設定資料結構中。提供儲存在上述BMC中的一當前設定資料結構。使用上述修改過的BIOS設定取代上述當前設定資料結構的至少一部份,以提供一修改過的當前設定資料結構。將上述修改過的當前設定資料結構應用到上述計算系統。
在一些實施方式中,上述未來設定資料結構及上述當前設定資料結構是JavaScript物件表示法(JSON)格式。在一些實施方式中,上述方法更包含判斷上述計算系統的一BIOS是否正在進行一第一次啟動。基於至少一部份上述BIOS正在執行上述第一次啟動的判斷,由上述BIOS將一屬性登錄檔傳送到上述BMC。
以上摘要的目的並不是要代表每個實施例或本發明的每個面向。應該說,以上摘要僅提供在此列出的一些新穎的面向及特徵的一個例子。以上特徵及優點,以及本發明的其它特徵及優點,藉由接下來代表性實施例及執行本發明的模式的詳細描述,並和附帶的圖式及請求項連結,將會十分清楚。本發明額外的面向在基於多個實施例的詳細說明並參考了圖式以後,對於本領域的通常知識者來說將會十分清楚,對於圖式的簡要說明在以下提供。
在現今的伺服器中,儲存基本輸入輸出系統(BIOS)設定有助於啟動設定的集中管理。已儲存的BIOS設定可以被更改、保存(preserve),或是從一個計算裝置移植到另一個計算裝置。目前只有通用(general)BIOS設定可以被儲存在現今的伺服器中。通用BIOS設定通常是可以採用二進位值的變數,例如啟用(enable)或關閉(disable)值。此類通用BIOS設定是靜態(static)變數。此類通用BIOS設定可以被儲存在與伺服器有關的BMC中。然而,BIOS設定涉及通用BIOS設定之外的設定變數。舉例來說,可能需要設定、保存或移植EFI變數,但是由於EFI變數的動態(dynamic)特性,EFI變數不會被儲存在 BMC 中。本發明的實施例提供了一種系統和方法,用以將EFI變數以一個與通用BIOS設定類似的方式儲存。本發明的實施例藉由允許移植(port)更完整的BIOS韌體,以及改進跨資料中心BIOS設定的管理,而改進計算系統及計算基礎架構。
在此參考附帶的圖式描述多個實施例,在上述圖式中,使用相似的參考編號來表示相似或相等的元素。上述圖式不一定是按照比例繪製的,而且僅用以示意說明本發明實施例及特徵。大量特定的細節、關係及方法被闡述以提供本發明實施例及特徵的完整理解,然而在相關技術領域中的通常知識者將會理解這些實施例及特徵可以在缺少一或多個上述特定細節、以其它關係或使用別的方法的情況下實踐。在一些例子中,為了說明的目的眾所皆知的結構或操作並沒有詳細的表示。在此揭露的多個實施例並不一定被限制於動作或事件示意說明的順序,一些動作可能以不同的順序及/或同時與其它動作或事件發生。進一步來說,並非所有示意說明的動作都是實施本發明實施例及特徵所必須的。
為了便於詳細說明,在適當的地方除非特別聲明,單數包含複數,且反之亦然。「包含」這個詞意思是「包含但不限於」。此外,用來表示近似的詞,例如「大約」、「幾乎」、「大致上」、「大概」及相似的詞在此可以被用以代表「在」、「附近」、「幾乎在」、「在3-5%內的」、「在可接受的製造容忍範圍內」或其中任何邏輯上的組合。同樣的,「垂直」或「水平」這些詞分別額外包含「在垂直或水平方向的3-5%內」。此外,表示方向的詞,例如「頂端」、「底部」、「左」、「右」、「以上」及「以下」意思是與參考圖式中描述的等效方向有關;應該以被參考的物體或元素為基準,根據上下文理解方位,例如以一個物體或元素通常被使用的位置為基準;或是根據在此的其它描述。
參考第1圖,第1圖是本發明實施例之計算系統100的元件的方塊圖。計算系統100可以是伺服器,但是任何合適的電腦裝置都可以與本文公開的原則結合。計算系統100包含電路板102。電路板102可以是一個主機板(motherboard),或是透過一或多根通訊電纜互相連接的多個主機板。電路板102上安裝有CPU 104、隨機存取記憶體(random access memory(RAM))模組106、BMC 108、BIOS 110、圖形處理單元(graphical processing unit(GPU))112及/或輸入/輸出(I/O)埠114。
雖然計算系統100的每個元件在第1圖中只示出一個,但是計算系統100可以支援一個以上的這些元件。舉例來說,CPU 104可以代表一或多個CPU(例如,兩個CPU、三個CPU、四個CPU、六個CPU等)。同樣地,RAM模組106可以代表多個RAM模組(例如,多個雙列直插式記憶體模組(dual in-line memory module(DIMM),例如兩個DIMM、四個DIMM、八個DIMM等)。GPU 112可用以提供特殊化的處理器功能。在一些實施方式中,特殊化功能由計算系統100中的場可程式化邏輯閘陣列(field programmable gate array(FPGA))及/或複雜可程式化邏輯裝置(complex programmable logic device(CPLD))或擴充卡(expansion card)提供。
CPU 104可以存取(access)RAM模組106。CPU 104可以通訊地耦接平台路徑控制器(platform controller hub)或電路板102的晶片組(chipset)。電路板102的晶片組可以提供對某些通訊標準的存取,上述通訊標準例如序列先進技術附接(serial advanced technology attachment(SATA))裝置、快捷週邊組件互連介面(peripheral component interconnect express(PCIe)) 裝置、網路介面卡 (network interface card(NIC))、廉價磁碟冗餘陣列卡(redundant array of inexpensive disk(RAID) card)、小型電腦系統介面(small computer system interface(SCSI))、FPGA 卡、GPU 112 等。
在一些實施方式中, GPU 112及/或視訊介面(video interface)允許監視器(monitor)或螢幕連接到電路板102。視訊處理(video processing)及輔助記憶體(secondary memory)存取(例如RAM模組106)通常需要高速的操作及存取CPU 104,因此可以在不經過電路板102的晶片組的情況下連接到CPU 104。在一些實施方式中,GPU 112是PCIe卡或加速圖形埠(accelerated graphics port(AGP))卡。從高層次來看,輸入/輸出埠114代表這些用於允許輸入及/或輸出裝置與計算系統100對接的介面中的任何一個。舉例來說,輸入/輸出埠114可以代表通用序列匯流排埠(universal serial bus(USB) port),上述通用序列匯流排埠支援例如USB 4、USB 3.2、USB 3.1、USB 3.0、USB 2.0等。輸入/輸出埠114可以代表支援有線介面或無線介面的網路介面控制器(network interface controller(NIC))埠,有線介面例如乙太網路(Ethernet),無線介面例如藍牙(Bluetooth®)、Wi-Fi等。輸入/輸出埠114可以代表其他類型的埠,例如高解析度多媒體介面(high definition multimedia interface(HDMI))埠、耳機插孔(headphone jack)、外部序列先進技術附件(external serial advanced technology attachment(external SATA)(eSATA))等。在一些實施方式中,輸入/輸出埠114內的一些埠經由GPU 112耦接到CPU 104。也就是說,GPU 112包含多個埠(例如USB-C埠、HDMI埠等)。在一些實施方式中,輸入/輸出埠114內的一些埠會通過電路板102的晶片組 (例如,乙太網路埠、耳機插孔、鍵盤介面、滑鼠介面、平行埠(parallel port)、序列埠(serial port)、USB 3.0埠等) 。
BIOS 110代表設置在電路板102上的唯讀記憶體 (read only memory(ROM))或快閃晶片(flash chip),允許存取和基本設定計算系統100。在計算系統100啟動時,BIOS 110包含有關於如何載入基本電腦硬體(例如,如上所述的一些元件,例如GPU 112、鍵盤介面、滑鼠介面等)的指令(或程式碼)。BIOS 110包含在計算系統100開機時執行的自我檢測,用以確保計算系統100滿足適當地啟動的要求。上述自我檢測被稱為BIOS開機自我檢測(power-on self-test(POST))。當計算系統100未能通過BIOS POST時,通常會發出一系列的嗶聲(beep)。嗶聲的模式可以指示哪個硬體元件發生故障。BIOS POST可以發現任何基本問題。舉例來說,BIOS POST可以提供(a)基本記憶體檢查(例如,檢查是否可以將項目(item)寫入記憶體以及從記憶體中讀取項目),(b)基本儲存檢查(例如,檢查硬碟驅動器(hard drive)是否啟動並接受命令及/或啟用(spin up)並允許存取),(c)輸入及輸出裝置的基本檢查(例如,檢查鍵盤上沒有卡住的按鍵或至少連接了一個鍵盤或滑鼠)等。
BIOS 110更包含允許尋找計算系統100的一或多個作業系統(operating system)分割區(partition)的程式碼。BIOS 110可以根據BIOS設定對作業系統進行排序。BIOS 110幫助從分割區讀取開機載入程式(bootloader),以及載入作業系統。一旦作業系統載入完成,BIOS 110放棄對作業系統的控制。如果是快閃BIOS(flash BIOS),則BIOS設定可以被更新,並且這些設定可以確保在啟動計算系統100時裝置適當的配置。
BIOS設定可能會在BIOS 110的韌體更新期間丟失。BIOS 110中的代碼可以因為各種原因進行更新。在範例中,BIOS 110的韌體更新可以包含驅動程式(driver)更新,以更好地控制週邊裝置(peripheral device),例如滑鼠和鍵盤。BIOS的韌體更新可以包含增加額外的功能,例如將基於文字(text-based)的BIOS升級為基於圖形使用者界面(graphical user interface(GUI))的BIOS。一般來說,當對BIOS 110進行韌體更新時,BIOS設定可能會丟失。因此,BMC 108可用於儲存通用BIOS設定。
參考第2圖,第2圖是本發明實施例之流程圖,示意說明用以儲存BIOS設定的流程200。計算系統100的使用者可以使用應用程式介面(API)(例如Redfish API 202)來查看和控制儲存在BMC 108上的BIOS設定。在一些實施方式中,BIOS設定以JavaScript物件表示法(JSON)格式儲存,以便計算系統100的使用者可以使用Redfish API 202來控制BIOS設定,或將BIOS設定從計算系統100移植到其他計算系統(未示出)。此處使用BMC 108作為範例,但其他在啟動時可用的位置也可用於儲存BIOS設定。由於BMC 108支援Redfish API 202,因此此處的BMC 108是有益的。在一些實施方式中,包含支援Redfish的遠程伺服器(remote server)的其他儲存位置也可以儲存BIOS設定,並且可以經由網路存取。也就是說,遠程伺服器可以執行一或多個類似BMC 108的功能 (例如,儲存計算系統100的BIOS設定,並為使用者提供Redfish API,以改變所儲存的BIOS設定) 。
通用BIOS設定不是唯一可以因為被儲存在BMC 108中而受益的BIOS設定類型。本公開的實施例允許儲存其他類型的BIOS設定,這些設定的值可以具有變動的長度,或是可以從一個開機會話(boot session)變更為其他的開機會話。這些BIOS設定的類型目前未儲存在現今伺服器的BMC中,因為它們值的長度通常是在啟動時動態地決定。舉例來說,UEFI安全啟動設定包含多個用於儲存認證/簽章(certificates/signature)的資料庫,並且儲存的認證/簽章的總數可能會變化。因此,用於儲存UEFI安全啟動設定的值的長度不是靜態的。在其他範例中,可啟動裝置(例如,固態硬碟(solid state disk)、光碟機(DVDROM)、預啟動執行環境(preboot execution environment(PXE)等)的啟動順序設定不是靜態的,因為可啟動裝置的數量會根據安裝在計算系統100中的實際裝置而變化。在其他範例中,用於啟動超文本傳輸安全協定(hypertext transfer protocol secure(HTTPs))的傳輸層安全性協定(transport layer security(TLS))認證不是靜態的,因為註冊在BIOS 110中用於驗證HTTPs啟動伺服器的數位憑證認證機構(certificate authority(CA))認證的數量可能會改變。在其他範例中,網際網路小型電腦系統介面網路(Internet small computer system interface(iSCSI))及虛擬區域網路(virtual local area network(VLAN))的設定並非是靜態的,因為每個網路埠(network port)都可以有自己的設定,因此對應於埠的總數的值其長度將取決於計算系統100中的網路埠數量。
因此,為了在BMC 108中處理這些動態BIOS設定,無法使用原本用於描述通用BIOS設定的方式,因為通用BIOS設定的值具有固定的長度,而需要為每種動態BIOS設定設計特定的模式。舉例來說,需要一個特定的模式來描述儲存在UEFI安全啟動中使用的認證和簽章的資料庫,並且需要另一個特定的模式來描述每個網路端口的iSCSI和VLAN設定。這樣的流程可能是低效的,因此本公開的一些實施方式提供了一些系統及方法,能夠以原本用於描述通用BIOS設定的模式來處理複雜的動態BIOS設定。這些系統和方法涉及使用EFI變數,而不需要為不同種類的動態變數設計多種特定的模式。
流程200不只是可以儲存通用BIOS設定,也可以儲存動態BIOS設定。動態BIOS設定通常以EFI變數表示,並且具有不同於通用BIOS設定的格式。在資料中心中,現今的伺服器目前是從UEFI人類介面基礎架構(HII)資料庫中提取(extract)通用BIOS設定,並且將通用BIOS設定轉換為JSON格式BIOS設定資料204,以在BMC 108中儲存。UEFI HII資料庫通常位於計算系統100的RAM模組106(例如DRAM)中。UEFI HII在RAM模組106中被創造,並且由BIOS 110在每個BIOS啟動中使用,以向使用者顯示BIOS設定選單(BIOS setup menu)。因為HII資料庫包含來自BIOS設定的資料,HII也被BIOS 110用於產生JSON格式BIOS設定,JSON格式BIOS設定在後續將在Redfish API 202中使用。EFI變數中儲存的值或內容並非直接儲存在HII資料庫中。此外,EFI變數的內容通常是二進位的內容,無法直接使用JSON格式。本揭露的實施例提供用以處理EFI變數的系統及方法。流程200可以被用以將EFI變數的內容轉換為多個字串,上述字串可以與通用BIOS設定以JSON格式結合,並儲存於BMC 108中。藉由將EFI變數儲存於BMC 108中,計算系統100的使用者能夠使用Redfish API 202,以類似於通用BIOS設定的方式保存、改變,或是移植EFI變數。
通用BIOS設定可以由BMC 108以三種JSON格式的資料結構儲存,以在Redfish API 202中使用。這三種JSON格式的資料結構為屬性登錄檔資料結構、當前設定資料結構,以及未來設定資料結構。
屬性登錄檔資料結構儲存關鍵字(key)可以持有的每個選擇或值。舉例來說,以下提供屬性登錄檔的範例。 屬性登錄檔的範例
{ "AttributeName": "SELS015", "DefaultValue": "Enable", "DisplayName": "PCIE Corrected Error Threshold Counter", "HelpText": "Enable/Disable PCIE Corrected Error Counter", "ReadOnly": false, "ResetRequired": true, "Type": "Enumeration", "UefiNamespaceId": "x-UEFI", "Value": [      {             "ValueDisplayName": "Disable",             "ValueName": "Disable"      },      {             "ValueDisplayName": "Enable",             "ValueName": "Enable"      } ] }
上述屬性登錄檔的範例包含關鍵字-值對(key-value pair)。屬性名稱關鍵字「屬性名稱(AttributeName)」用以辨識正在設定的屬性,而在本範例中正在設定的屬性為SELS015。屬性可以具有設定為「啟用(Enable)」的預設值(即,關鍵字「預設值(DefaultValue)」)。屬性可以具有顯示名稱(即,「顯示名稱DisplayName」) ,為屬性提供人類可辨識的名稱,而不只是由「屬性名稱」關鍵字所提供的變數名稱。屬性可以具有人類可讀的描述 (即,「幫助文字(HelpText) 」) ,提供更多屬性的資訊。在一些實施方式中,關鍵字「唯讀(ReadOnly)」及/或「需要重新設定(ResetRequired)」可以使用是(true)或否(false)的布林(Boolean)值設定,以進一步訂制屬性。屬性可以具有相關的關鍵字「類型(Type)」及/或「UEFI名稱空間ID (UefiNamespaceId) 」。雖然已經設定預設值,屬性能夠採用的不同值可以在關鍵字「值(Value)」下面設定。 在本範例中,關鍵字「值」可以為「啟用(Enable)」或「關閉(Disable)」。
當前設定資料結構儲存目前由計算系統100所使用的當前BIOS設定的值。舉例來說,屬性SELS015可以設定為「啟用」。以下提供當前設定資料結構的範例: 當前設定的範例
{      …      "SELS015": " Enable ",      "SELS016": 10,      "SETUP003": 5,      "SETUP005": false,      … }
當前設定資料結構具有將屬性名稱與值配對的清單。在以上的範例中,由「屬性名稱(AttributeName)」SELS015所辨識的屬性的「值(Value)」為「啟用(Enable)」、由「屬性名稱(AttributeName)」SELS016所辨識的屬性的「值(Value)」為10、由「屬性名稱(AttributeName)」SETUP003所辨識的屬性的「值(Value)」為5,以及由「屬性名稱(AttributeName)」SETUP005所辨識的屬性的「值(Value)」為否。在當前設定資料結構中的每個屬性在屬性登錄檔資料結構中都有相應的定義。以上提供的屬性登錄檔資料結構的範例只是SELS015的定義的一個例子。
未來設定資料結構與當前設定資料結構相似,包含屬性名稱及一或多個值的配對。未來設定資料結構與當前設定資料結構的差別在於兩者使用的方式。當前設定資料結構描述正在系統上被使用的當前值,未來設定資料結構描述當計算系統100重新設定或是開機時將會被應用的未來值。此外,計算系統100的使用者無法修改當前的設定,只能修改未來的設定。
參考第3圖,第3圖是本發明實施例之流程圖,示意說明用以對計算系統(例如計算系統100)應用啟動設定的流程300。在步驟302中,計算系統100(第2圖)的使用者對BIOS設定做出多個修改,修改過的BIOS設定使用Redfish API 202(第2圖)儲存在BMC 108(第2圖)中。在步驟304中,修改過的BIOS設定被儲存在位於BMC 108上的未來設定資料結構中,並且提供訊號以重新啟動主機(例如計算系統100)。步驟302由BMC 108執行,步驟304可以由任何能夠重新啟動計算系統100(即,主機系統)的元件執行。能夠重新啟動計算系統的元件包含BMC 108、BIOS 110、在CPU 104上運行的作業系統等。
在步驟306中,於計算系統100啟動期間,BIOS  110判斷當前用以啟動計算系統100的訊號(步驟304)是否是從最後一次BIOS更新以後,BIOS 110(第2圖)的第一次啟動。如果這次啟動是BIOS 110的第一次啟動,在步驟308中,BIOS 110將本身的屬性登錄檔傳送到BMC 108。如果這次啟動不是BIOS 110的第一次啟動,跳過步驟308直接執行步驟310。屬性登錄檔只在需要時傳送,因為屬性登錄檔是一個很大的檔案,每次都傳送屬性登錄檔會使啟動流程變慢。
在步驟310中,BIOS 110讀取(retrieve)儲存在BMC 108中的未來設定資料結構,並且判斷未來設定資料結構中是否包含任何修改過的BIOS設定。如果未來設定資料結構中有修改過的BIOS設定,在步驟314中,BIOS 110將修改過的BIOS設定應用到儲存於BIOS 110中的BIOS設定(即,包含BIOS的快閃晶片或是其他實體記憶體)。BIOS 110之後清除來自BMC 108的未來設定資料結構。如果在步驟310中未來設定資料結構中沒有修改過的BIOS設定,在步驟312中,BIOS 110將當前設定資料結構傳送到BMC 108。
在步驟316中,BIOS 110判斷儲存在步驟312的當前設定資料結構中的設定是否需要重新啟動才能生效。如果不需要重新啟動,在步驟318中,BIOS 110允許計算系統100啟動到作業系統中。如果需要重新啟動,在步驟304中,由BIOS 110執行重新啟動。
參考第4圖,第4圖是本發明實施例之流程圖,示意說明用以在BIOS POST期間將EFI變數儲存到當前設定資料結構的流程400。在一些實施方式中,第4圖中的所有步驟由BIOS 110執行。在步驟402中,BIOS POST開始。在步驟404中,BIOS 110判斷是否有任何EFI變數需要被儲存到當前設定資料結構中。如果沒有任何EFI變數需要被儲存,BIOS POST在步驟406結束。
如果有EFI變數需要被儲存,在步驟408中,BIOS 110將需要被儲存的EFI變數封包(pack)為二進位結構。上述二進位結構可以包含EFI變數名稱(或是屬性名稱)、全域唯一識別碼(globally unique identifier(GUID))、與EFI變數相關的值、資料大小(data size)等。以下提供EFI變數的屬性登錄檔條目(entry)的範例。 EFI變數的屬性登錄檔範例
{         " AttributeName ": "OEMVAR_ISCSI00",         " DisplayName ": "OEMVAR_ISCSI00",         " MaxLength ": 65535,         " MinLength ": 0,         " ReadOnly ": false,         " Type ": " String " }, …
EFI變數的屬性登錄檔條目包含屬性名稱(AttributeName)、顯示名稱(DisplayName)、類型(Type)、「值」參數的最小長度(MinLength),以及「值」參數的最大長度(MaxLength)。因為EFI變數的值是動態的,所以在EFI變數中不會有預設的「值」參數。「類型(Type)」參數為「字串(String)」指示用於儲存字串,上述字串將從EFI變數的二進位結構轉換。
在步驟410中,可選擇地壓縮步驟408的二進位結構。可以使用任何壓縮二進位資料的演算法。在一些實施方式中,使用在UEFI規格中建議的方法,也就是LZ77演算法與霍夫曼編碼(Huffman Coding)的組合。因為有在UEFI規格中描述,通常UEFI BIOS已經包含可以用來壓縮及解壓縮的多個函式庫(library)。
在步驟412中,二進位結構被編碼為美國標準資訊交換碼(American Standard Code for Information Interchange (ASCII))字串。在一些實施方式中,使用Base64演算法將二進位結構編碼為ASCII字串。在步驟414中,將ASCII字串作為對應於EFI變數的屬性的值儲存在當前設定資料結構中。以下提供當前設定資料結構中「OEMVAR_ISCSI00」屬性的條目的範例。
{          …         "OEMVAR_ISCSI00":       "V1QgAAAGAAAAAAOEtR2qUS+plnhJCQSmuzAO1VZ3gbjl/Rc4CSbiBqclhkaG5oosbHB2nkXKqt1zuRwxdk+GcfZzWWx18rHn/WAAA=",         … },
參考第5圖,第5圖是本發明實施例之流程圖,示意說明用以在BIOS POST期間從未來設定資料結構提取EFI變數的流程500。在一些實施方式中,第5圖中的所有步驟由BIOS 110執行。在步驟502中,BIOS POST開始。在步驟504中,BIOS 110判斷是否有任何來自未來設定資料結構的EFI變數需要在當前設定資料結構中設定。如果沒有EFI變數需要設定,BIOS POST在步驟506結束。
如果有EFI變數需要設定,在步驟508中,BIOS 110從未來設定資料結構取得對應於EFI變數的ASCII字串。在步驟510中,BIOS 110將ASCII字串解碼,以取得二進位結構。解碼演算法可以為Base64解碼演算法。
可選擇地,在步驟512中,BIOS 110將二進位結構解壓縮為EFI變數結構。
在步驟514中,基於解壓縮的ASCII字串,BIOS 110使用UEFI BIOS服務函式SetVariable修改EFI變數。在步驟510取得的二進位結構被用以確認二進位結構是否可以作為EFI變數應用於BIOS快閃中。如果此確認流程是成功的,EFI變數在之後使用SetVariable函式進行修改。
由於能夠顯示三種JSON資料格式的EFI變數的值或內容,計算系統100的使用者、計算系統100的使用者管理軟體(user management software),或是BMC 108可以經由Redfish API 202改變、保存,或移植EFI變數。當使用者、管理軟體,或BMC 108使用Redfish API 202修改未來設定資料結構中的值時,EFI變數的內容可以被改變。BMC 108可以將儲存在BMC 108中的當前設定資料結構中的EFI變數的值進行保存。EFI變數的值可以在之後被放到未來設定資料結構中,以向更新後的BIOS 110提供EFI變數原本的值。如果沒有執行這些操作,EFI變數的內容會因為BIOS 110在韌體更新期間的抹除(erasure)而在BIOS韌體更新期間被清除並丟失。
在一些實施方式中,使用者或管理軟體可以從一個計算系統將EFI變數的內容複製(或移植)到另一個計算系統。藉由從源系統(source system)複製當前設定資料結構,並將複製的內容經由Redfish API 202貼上到目標系統的未來設定資料結構,可以移植EFI變數的內容。
雖然本揭露的實施例已經參照一或多個實施方式示意說明及描述,本技術領域的其他技術人員在閱讀及理解本詳細說明及附屬的圖式時,將想到或知道相等的改動及修改。此外,雖然本發明的特定特徵可能已經參照一些實施方式中的一個揭露,那樣的特徵可以和一或多個其他實施方式的其他特徵結合,並且在任何給定的或特定的應用中可能是有需要或是有利的。
雖然本揭露的多個實施例已在之前描述過,應該理解描述過的實施例只是以例子的方式呈現,並不是限制。已揭露的實施例可以根據本揭露做出多個改變,而沒有離開本揭露的精神或範圍。因此,本發明的廣泛性及範圍不應該被限制於任何以上描述過的實施例。反而,本發明的範圍應該根據接下來的請求項及請求項的均等範圍定義。
100:計算系統 102:電路板 104:中央處理單元(CPU) 106:隨機存取記憶體(RAM)模組 108:基板管理控制器(BMC) 110:基本輸入輸出系統(BIOS) 112:圖形處理單元(GPU) 114:輸入/輸出(I/O)埠 200, 300, 400, 500:流程 202:Redfish 應用程式介面(API) 204:JSON格式BIOS設定資料 302, 304, 306, 308, 310, 312, 314, 316, 318, 402, 404, 406, 408, 410, 412, 414, 502, 504, 506, 508, 510, 512, 514:步驟
本發明從以下代表性實施例的描述並參考附帶的圖式可以更好的理解。這些圖式只描述了代表性的實施例,因此不應該作為多個實施例及請求項的限制。 第1圖是本發明實施例之計算系統的方塊圖。 第2圖是本發明實施例之流程圖,示意說明儲存啟動設定的步驟。 第3圖是本發明實施例之流程圖,示意說明在計算環境中應用啟動設定的步驟。 第4圖是本發明實施例之第一流程圖,示意說明在BIOS POST期間執行的步驟。 第5圖是本發明實施例之第二流程圖,示意說明在BIOS POST期間執行的步驟。
300:流程 302, 304, 306, 308, 310, 312, 314, 316, 318:步驟

Claims (9)

  1. 一種計算系統,包含:一或多個資料處理器;以及一非暫態電腦可讀取儲存媒體,包含多個指令,當上述指令在上述一或多個資料處理器上執行時,致使上述一或多個資料處理器執行多個操作,包含:使用一應用程式介面(API)接收一修改過的基本輸入輸出系統(BIOS)設定,上述修改過的BIOS設定包含描述至少一個可延伸韌體介面(EFI)變數的一屬性,上述修改過的BIOS設定的至少一個值的長度在啟動時動態地決定;將上述修改過的BIOS設定儲存在一基板管理控制器(BMC)中的一未來設定資料結構中;提供儲存在上述BMC中的一當前設定資料結構;使用上述修改過的BIOS設定取代上述當前設定資料結構的至少一部份,以提供一修改過的當前設定資料結構;以及將上述修改過的當前設定資料結構應用到上述計算系統;其中,描述上述至少一個EFI變數的上述屬性的一類型關鍵字是字串。
  2. 如請求項1之計算系統,其中執行上述指令更致使上述一或多個資料處理器執行多個操作,更包含:判斷上述計算系統的一BIOS是否正在執行一第一次啟動;以及基於至少一部份上述BIOS正在執行上述第一次啟動的判斷,由 上述BIOS將一屬性登錄檔送到上述BMC。
  3. 如請求項2之計算系統,其中上述屬性登錄檔包含描述上述至少一個EFI變數的上述屬性的一定義。
  4. 如請求項3之計算系統,其中描述上述至少一個EFI變數的上述屬性的上述定義並不包含預設值參數,而描述一通用BIOS設定的一屬性的一定義包含預設值參數。
  5. 如請求項1之計算系統,執行上述指令更致使上述一或多個資料處理器執行多個操作,更包含:將上述EFI變數儲存至上述當前設定資料結構。
  6. 如請求項5之計算系統,其中將上述EFI變數儲存至上述當前設定資料結構的操作包含:將上述EFI變數封包為一二進位結構;將上述二進位結構編碼為一字串;以及將上述字串作為上述屬性的值儲存在上述當前設定資料結構中。
  7. 如請求項1之計算系統,其中使用上述修改過的BIOS設定取代上述當前設定資料結構的至少一部份的操作包含:從上述未來設定資料結構接收一字串,上述字串是上述屬性的值;將上述字串解碼為一二進位結構;確認上述二進位結構可以作為上述EFI變數應用在一BIOS中;以及基於上述二進位結構可以作為上述EFI變數應用在上述BIOS 中,使用上述未來設定資料結構中的上述字串取代上述當前設定資料結構的上述至少一部份。
  8. 一種由一計算系統執行的方法,包含:使用一應用程式介面(API)接收一修改過的基本輸入輸出系統(BIOS)設定,上述修改過的BIOS設定包含描述至少一個可延伸韌體介面(EFI)變數的一屬性,上述修改過的BIOS設定的至少一個值的長度在啟動時動態地決定;將上述修改過的BIOS設定儲存在一基板管理控制器(BMC)中的一未來設定資料結構中;提供儲存在上述BMC中的一當前設定資料結構;使用上述修改過的BIOS設定取代上述當前設定資料結構的至少一部份,以提供一修改過的當前設定資料結構;以及將上述修改過的當前設定資料結構應用到上述計算系統;其中,描述上述至少一個EFI變數的上述屬性的一類型關鍵字是字串。
  9. 如請求項8之方法,更包含:判斷上述計算系統的一BIOS是否正在執行一第一次啟動;以及基於至少一部份上述BIOS正在執行上述第一次啟動的判斷,由上述BIOS將一屬性登錄檔傳送到上述BMC。
TW111124012A 2022-02-09 2022-06-28 計算系統及由計算系統執行的方法 TWI823444B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/668,253 US11934838B2 (en) 2022-02-09 2022-02-09 Storing EFI variables in a BMC using an API
US17/668,253 2022-02-09

Publications (2)

Publication Number Publication Date
TW202333057A TW202333057A (zh) 2023-08-16
TWI823444B true TWI823444B (zh) 2023-11-21

Family

ID=87520906

Family Applications (1)

Application Number Title Priority Date Filing Date
TW111124012A TWI823444B (zh) 2022-02-09 2022-06-28 計算系統及由計算系統執行的方法

Country Status (4)

Country Link
US (1) US11934838B2 (zh)
JP (1) JP2023116381A (zh)
CN (1) CN116610610A (zh)
TW (1) TWI823444B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230409342A1 (en) * 2022-06-17 2023-12-21 Arista Networks, Inc. Supporting different security schemes with different boot personalities for network devices
CN116991606B (zh) * 2023-09-25 2024-02-02 苏州元脑智能科技有限公司 基板管理控制器、基本输入输出***的处理方法和装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI627527B (zh) * 2015-10-16 2018-06-21 廣達電腦股份有限公司 基板管理控制器的回復方法及基板管理控制器
US20190050351A1 (en) * 2017-08-10 2019-02-14 Seagate Technology Llc Enabling out-of-band hardware management via an in-band communications channel
US20200133712A1 (en) * 2018-10-24 2020-04-30 American Megatrends, Inc. Techniques of securely performing logic as service in bmc
CN113010217A (zh) * 2021-03-18 2021-06-22 山东英信计算机技术有限公司 一种bios参数设置方法、装置、电子设备及存储介质
TW202136996A (zh) * 2020-03-16 2021-10-01 廣達電腦股份有限公司 用於網路裝置之最佳啟動路徑之方法和系統

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7472141B1 (en) * 2006-02-14 2008-12-30 Symantec Operating Corporation System and method for controlling off-host policies
US9779241B2 (en) * 2013-09-25 2017-10-03 Cisco Technology, Inc. Synchronization of UEFI secure boot variables on a managed server
CN104683133A (zh) * 2013-11-29 2015-06-03 英业达科技有限公司 基本输入输出***维护方法
US10592232B2 (en) * 2017-09-26 2020-03-17 Quanta Computer Inc. Preserving firmware setting during firmware update
CN112003826A (zh) 2020-07-24 2020-11-27 苏州浪潮智能科技有限公司 一种ipmi数据扩展方法和装置
CN113064625B (zh) 2021-04-26 2024-02-09 山东英信计算机技术有限公司 一种带外升级bios的方法、装置、设备及介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI627527B (zh) * 2015-10-16 2018-06-21 廣達電腦股份有限公司 基板管理控制器的回復方法及基板管理控制器
US20190050351A1 (en) * 2017-08-10 2019-02-14 Seagate Technology Llc Enabling out-of-band hardware management via an in-band communications channel
US20200133712A1 (en) * 2018-10-24 2020-04-30 American Megatrends, Inc. Techniques of securely performing logic as service in bmc
TW202136996A (zh) * 2020-03-16 2021-10-01 廣達電腦股份有限公司 用於網路裝置之最佳啟動路徑之方法和系統
CN113010217A (zh) * 2021-03-18 2021-06-22 山东英信计算机技术有限公司 一种bios参数设置方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN116610610A (zh) 2023-08-18
JP2023116381A (ja) 2023-08-22
US11934838B2 (en) 2024-03-19
TW202333057A (zh) 2023-08-16
US20230251866A1 (en) 2023-08-10

Similar Documents

Publication Publication Date Title
US11385908B1 (en) Cloning of firmware configuration settings using rest over IPMI interface
TWI823444B (zh) 計算系統及由計算系統執行的方法
US10860308B1 (en) Peripheral device firmware update using rest over IPMI interface firmware update module
US20210226846A1 (en) Systems and methods for operating system deployment and lifecycle management of a smart network interface card
US9930051B1 (en) Remote management of hardware hosts in cloud infrastructure
CN106528194B (zh) 网络交换器与使用网络交换器更新装置的方法
US10866801B1 (en) Non-destructive update of discrete components of firmware
TWI465901B (zh) Method and system for verification of computerized systems for cloud testing and remote monitoring of integrated circuit devices
US10404538B1 (en) Remote platform configuration
JP6316694B2 (ja) クラウドスケールの異種データセンタ管理インフラストラクチャ
US10949539B2 (en) Systems and methods for secure boot and runtime tamper detection
US10416988B1 (en) Peripheral device firmware update using rest over IPMI interface firmware shell utility
US10996940B1 (en) Secure firmware integrity monitoring using rest over IPMI interface
WO2021174828A1 (zh) 数据处理方法、装置、计算机***及可读存储介质
US10268628B2 (en) Method for extracting BIOS attributes for BIOS management and system therefor
US11188407B1 (en) Obtaining computer crash analysis data
US10628176B1 (en) Firmware configuration using REST over IPMI interface
US11886886B2 (en) System and method for runtime synchronization and authentication of pre-boot device drivers for a rescue operating system
US10776286B1 (en) Rest over IPMI interface for firmware to BMC communication
US11416446B2 (en) Systems and methods for remote management of non-standard devices
US11113070B1 (en) Automated identification and disablement of system devices in a computing system
US11308002B2 (en) Systems and methods for detecting expected user intervention across multiple blades during a keyboard, video, and mouse (KVM) session
US10768948B2 (en) Apparatus and method for dynamic modification of machine branding of information handling systems based on hardware inventory
US11385905B2 (en) Managing boot device orders for computing devices
US11936511B2 (en) Payload template generator for an information handling system