BMC 是什麼意思?伺服器帶外管理晶片詳解
BMC 是什麼意思?它是 Baseboard Management Controller(基板管理控制器)的縮寫:焊在伺服器主機板上的一顆獨立管理晶片,自帶處理器、記憶體、韌體和網口,只要電源線插著就一直執行。它在作業系統之外監控硬體、控制電源、提供遠端畫面;IPMI 和 Redfish 是和它對話的協議,iDRAC、iLO 是各廠商給它起的名字。
BMC 是一顆什麼樣的晶片
BMC 本質上是焊在伺服器主機板上的一台小型計算機,和主機的 CPU、記憶體、硬碟完全分開:
| 部件 | 說明 |
|---|---|
| 處理器 | ARM 架構的片上系統(SoC),主流型號來自 ASPEED 和 Nuvoton:ASPEED AST2500 為單核 ARM11(800 MHz),AST2600 為雙核 Cortex-A7(1.2 GHz)並帶一個 Cortex-M3 協處理器;Nuvoton NPCM7xx 為雙核 Cortex-A9 |
| 記憶體 | 獨立的 DDR 記憶體顆粒,幾百 MB 到 1 GB 量級 |
| 韌體儲存 | SPI 快閃記憶體,容量幾十 MB,存放 BMC 韌體;部分主機板配雙份快閃記憶體做冗餘 |
| 網口 | 一個專用的 RJ45 管理口,或者透過 NC-SI 介面複用主機板板載網路卡 |
| 顯示控制器 | ASPEED 系列 BMC 同時是主機板的整合顯示卡,主機畫面直接在 BMC 內部被捕獲,這是遠端 KVM 能看到 BIOS 畫面的原因 |
BMC 韌體多數基於精簡的 Linux,來源有三類:廠商自研(如 Dell iDRAC、HPE iLO)、商業方案 AMI MegaRAC(白牌和不少中小廠商採用)、開源專案 OpenBMC(Linux 基金會專案,超大規模資料中心和部分廠商採用)。
它和主機之間有一組專用連線,每條對應一項能力:
| 介面 | 連線物件 | 提供的能力 |
|---|---|---|
| LPC 或 eSPI(KCS 通道) | 主機晶片組 | 帶內 IPMI:在作業系統裡執行 ipmitool 不需要密碼 |
| I2C、SMBus、PMBus | 溫度感測器、電源模組、FRU 儲存晶片、記憶體 SPD | 感測器讀數、電源狀態、主機板序列號 |
| PECI | CPU | 讀取 CPU 溫度 |
| 影片捕獲 | 主機顯示卡輸出 | 遠端 KVM 畫面 |
| USB | 主機 USB 控制器 | 模擬鍵盤滑鼠、虛擬光碟機與 U 盤 |
| UART | 主機串列連接埠 | 串列連接埠重定向(SOL) |
| GPIO、PWM、轉速反饋 | 電源按鈕、復位線、風扇、指示燈 | 開關機、強制重啟、風扇調速、定位燈 |
獨立供電與獨立網口
為什麼主機關機了 BMC 還在執行
伺服器電源模組有兩路輸出:主電源給 CPU、記憶體、硬碟供電,主機關機後就斷開;待機電源(standby)只要交流電接通就一直有輸出。BMC 掛在待機電源上,所以:
- 主機關機(S5 狀態):BMC 執行,可以遠端開機;
- 作業系統崩潰:BMC 不受影響,因為它不依賴主機 CPU;
- 拔掉電源線或 PDU 斷電:BMC 也斷電,什麼都做不了。
BMC 自身的功耗只有幾瓦,不佔用主機 CPU 和記憶體,這也是它能常年待機的原因。
BMC 的網口:專用還是共享
BMC 有兩種接入網路的方式,出廠預設因廠商而異,在 BIOS 或 BMC 設定裡可以切換:
| 模式 | 連線 | 優點 | 缺點 |
|---|---|---|---|
| 專用管理口(Dedicated) | 主機板上單獨的 RJ45 口接管理交換器 | 管理流量與業務流量物理隔離;業務網路卡故障或被限速時管理不受影響 | 每台伺服器多佔一個交換器連接埠和一根網線 |
| 共享網口(Shared、NC-SI) | BMC 透過 NC-SI 旁路借用一塊業務網路卡,同一根線上跑兩個 MAC 位址 | 省連接埠、省線 | 業務連接埠被關閉、被 VLAN 隔離或欠費斷網時,BMC 也一起失聯 |
IDC 裡通常用專用管理口,接入獨立的管理 VLAN,不和客戶業務混在一起。開通伺服器時,BMC 的位址來自專門的 IPMI 位址段,與公網位址分開管理。
BMC 和 IPMI、Redfish 的區別
最常見的混淆是“BMC 和 IPMI 有什麼區別”。一句話:BMC 是硬體,IPMI 和 Redfish 是存取這塊硬體的協議。
| BMC | IPMI | Redfish | |
|---|---|---|---|
| 是什麼 | 主機板上的管理晶片及其韌體 | 平台管理介面規範 | 基於 REST 的管理 API 規範 |
| 制定者 | 各伺服器與主機板廠商 | Intel、Dell、HP、NEC 於 1998 年釋出 1.0,2004 年釋出 2.0 | DMTF 於 2015 年釋出 1.0 |
| 傳輸方式 | — | 帶外走 RMCP+(UDP 623 連接埠),帶內走 KCS 等系統介面 | HTTPS 上的 JSON,路徑以 /redfish/v1/ 開頭 |
| 常用工具 | 廠商 Web 介面 | ipmitool、FreeIPMI | curl、redfishtool、廠商 CLI(如 racadm、ilorest) |
| 現狀 | 每台伺服器都有 | 普遍支援,規範在 2.0 之後沒有大版本更新 | 新功能的主要方向,現代 BMC 同時支援 |
同一顆 BMC 通常同時提供三種入口:廠商的 Web 介面、IPMI(供指令碼和管理系統呼叫)、Redfish(供新的自動化工具呼叫)。用 ipmitool 能做的事,用 Redfish 基本都能做,而且能拿到更結構化的資料,比如硬碟、網路卡、韌體版本的完整清單。
各廠商把 BMC 叫什麼
| 廠商 | BMC 名稱 | 備註 |
|---|---|---|
| 戴爾 Dell | iDRAC | 分 Basic、Express、Enterprise、Datacenter 等授權級別 |
| 慧與 HPE | iLO | 分 Standard、Advanced 等授權 |
| 聯想 Lenovo | XClarity Controller(XCC) | 分 Standard、Advanced、Enterprise 授權 |
| 華為 | iBMC | 早期機型叫 iMana |
| 新華三 H3C | HDM | — |
| 浪潮 Inspur | BMC | 文件中直接稱 BMC |
| 思科 Cisco | CIMC / IMC | — |
| 超微 Supermicro | BMC / IPMI | 帶外刷 BIOS 等功能需要 SFT-OOB-LIC 授權 |
| 白牌與其他 | AMI MegaRAC、OpenBMC | 介面和功能取決於韌體方案 |
需要注意授權:戴爾、慧與、聯想都把圖形遠端控制檯、虛擬介質等功能放在高階授權裡,基礎授權通常只能看狀態和控制電源。採購二手伺服器或白牌機時,先確認授權是否隨機附帶,否則 BMC 有,但控制檯打不開。授權級別和各級別包含的功能以各廠商當前文件為準。
主機各種狀態下 BMC 能做什麼
| 主機狀態 | BMC 能做 | BMC 做不了 |
|---|---|---|
| 已通電、主機關機 | 遠端開機;讀溫度、電壓、風扇轉速;讀系統事件日誌(SEL)和主機板 FRU 資訊;設定下次啟動裝置;掛載虛擬光碟機;部分機型帶外更新 BIOS 和韌體 | 看到作業系統畫面(主機還沒執行) |
| 主機開機、系統當機 | KVM 看當前畫面;強制重啟或斷電;傳送 NMI 讓系統轉儲;透過 SOL 看串列連接埠輸出 | 優雅關機(依賴作業系統回應 ACPI 訊號) |
| 主機開機、沒裝系統 | 透過虛擬介質或設定 PXE 啟動來裝系統;在 KVM 裡操作 BIOS | — |
| 電源線拔掉或 PDU 斷電 | 無 | 全部;這時只能靠可遠端控制的 PDU 恢復供電 |
用命令和 BMC 打交道:檢視、配置與排障
常用命令
以下命令在裝了 ipmitool 的 Linux 上可用。在伺服器作業系統裡執行(帶內)不需要位址和密碼;從別的機器遠端執行(帶外)加上 -I lanplus -H 位址 -U 使用者 -P 密碼 即可。
# 帶內使用前載入 IPMI 驅動
modprobe ipmi_si
modprobe ipmi_devintf
# 看 BMC 自己的資訊:韌體版本、廠商 ID、支援的功能
ipmitool mc info
# 看 BMC 管理口的網路配置(通道號多為 1,個別機型為 2 或 8,以廠商文件為準)
ipmitool lan print 1
# 給 BMC 配靜態位址
ipmitool lan set 1 ipsrc static
ipmitool lan set 1 ipaddr 10.0.0.10
ipmitool lan set 1 netmask 255.255.255.0
ipmitool lan set 1 defgw ipaddr 10.0.0.1
# 讀主機板 FRU(型號、序列號)和溫度類感測器
ipmitool fru print 0
ipmitool sdr type Temperature
# 檢視 BMC 使用者列表,再按使用者 ID 重置密碼
ipmitool user list 1
ipmitool user set password 2 '新密碼'
# 讓機箱定位燈閃 60 秒,方便在機房裡找到這台機器
ipmitool chassis identify 60
# BMC 卡住時冷重啟 BMC,不影響主機執行
ipmitool mc reset cold
同樣的資訊也可以用 Redfish 讀取,返回 JSON:
# 列出這台伺服器的管理器(BMC)和系統資源
curl -k -u admin:'密碼' https://10.0.0.10/redfish/v1/Managers/
curl -k -u admin:'密碼' https://10.0.0.10/redfish/v1/Systems/
Managers 下面具體資源的 ID 因廠商而異(例如 iDRAC 為 iDRAC.Embedded.1,很多機型為 1),先列出再進入。
常見問題的處理
- BMC 無回應、Web 打不開:先在作業系統裡執行
ipmitool mc reset cold;如果帶內也無回應,只能斷開伺服器的交流電、等半分鐘左右再上電,讓 BMC 從待機電源重新啟動。這是 BMC 獨立供電帶來的副作用:主機重啟不會重啟 BMC。 - 管理口不亮燈:檢查 BIOS 或 BMC 設定裡的網口模式是專用還是共享,很多“BMC 連不上”是網線插在了專用口而設定卻是共享模式。
- 忘記密碼:在作業系統裡用帶內 ipmitool 重置,不需要舊密碼;或者用廠商工具(戴爾 racadm、慧與 hponcfg)。
- 時間不對:SEL 日誌時間戳依賴 BMC 時鐘,用
ipmitool sel time set或在 Web 介面裡配置 NTP。 - 韌體太舊:BMC 韌體有過多次公開的安全漏洞,而 BMC 擁有整台伺服器的控制權,上架前先升級到廠商當前版本,之後定期檢查。
安全上的原則和 IPMI 一樣:管理口不上公網、改掉預設密碼、只允許管理系統和跳板機存取。這些在 IPMI 是什麼 裡有更完整的說明。
在管理系統裡 BMC 處在什麼位置
對於機房裡成百上千台不同品牌的伺服器,BMC 是管理系統伸進每台機器內部的手。Toplink DCIM 的做法是:為伺服器錄入 BMC 的位址、使用者名稱和密碼,之後遠端開關機、設定啟動項、掛載 ISO、開啟 VNC 控制檯都在網頁完成,遠端控制檯針對 iDRAC、iLO、iBMC、超微、XClarity 等主流 BMC 做了支援(見 IPMI 遠端管理);BMC 的位址段在 IP 位址管理 裡標記為 IPMI 型別單獨分配;硬體型號範本裡記錄該型號是否支援 IPMI 和控制檯型別;BMC 無回應時可以在後台遠端重置,客戶也能在自助端自己重置 BMC。
常見問題
BMC 和 BIOS 有什麼區別?
BIOS(或 UEFI)是主機 CPU 開機時執行的韌體,負責初始化硬體並引導作業系統,主機關機它就不執行;BMC 是另一顆晶片上的獨立系統,主機關機時仍在執行,可以遠端開機、看 BIOS 畫面,部分機型還能帶外更新 BIOS。
普通桌上型電腦或工作站有 BMC 嗎?
消費級主機板一般沒有。少數工作站主機板和伺服器級主機板帶 BMC;一些商用桌上型電腦用 Intel AMT 之類的技術提供類似的遠端管理,但那不是 BMC。
BMC 的預設帳號密碼在哪裡找?
先看機身或拉手上的標籤:近年出廠的伺服器多數使用隨機初始密碼並印在標籤上;舊機型多用廠商統一的預設帳號,具體以廠商文件為準。無論哪種,接入管理網之前都應改掉。
BMC 韌體怎麼升級?
透過廠商 Web 介面上傳韌體包,或者用 Redfish、廠商命令列工具推送;部分廠商支援從作業系統內更新。升級過程中不要斷電,升級後 BMC 自行重啟,一般不影響主機執行,具體步驟以廠商文件為準。