裸金屬(Bare Metal),也常被稱為物理機,是指不安裝任何操作系統和其他軟件的計算機硬件設備,是最基礎的硬件層面,就如同一個 “赤身裸體” 的金屬機體,僅具備最原始的硬件資源,像處理器、內存、硬盤、網卡等物理組件,只有硬件本身而沒有預裝額外的用于提供通用服務的軟件層。
由于沒有虛擬化層帶來的額外性能損耗,裸金屬服務器可以充分發揮硬件的全部性能。在處理大數據存儲和讀寫密集型業務場景中,裸金屬憑借自身直接掛載的高速存儲設備,在數據的讀寫速度上有更好的表現,可以快速響應業務對數據的操作需求。
每個用戶獨占一臺物理服務器,和其他用戶的資源完全隔離,不存在像虛擬機那樣共享內核等可能帶來的安全隱患。例如對于對數據安全要求苛刻的金融企業,在處理核心交易數據、存儲用戶敏感信息時,使用裸金屬服務器可以避免因虛擬化環境下多租戶可能導致的數據泄露、惡意攻擊等安全風險,保障業務數據的絕對安全。用戶可以根據自身業務需求自由靈活地定制硬件配置,選擇合適的 CPU 型號、內存大小、存儲類型及容量等。比如一家從事圖形渲染的設計公司,就可以定制配置高端 GPU、大容量內存的裸金屬服務器,以便能夠快速處理復雜的圖形渲染任務,滿足自身業務對硬件資源的特定要求。
所有的硬件資源如 CPU 核心、內存空間、網絡帶寬等都歸單個用戶或單個業務獨占使用,不存在資源競爭的情況。以一個電商平臺在進行大型促銷活動時為例,其使用裸金屬服務器就能確保在活動期間,服務器有充足且穩定的資源來應對高并發的用戶訪問、訂單處理等業務操作,不會因為和其他用戶共享資源而出現卡頓、響應緩慢等問題。
不過,裸金屬也有一定的局限性,比如相較于虛擬化方案,其資源的靈活調配性稍弱,初始采購成本相對較高,而且維護管理需要專業的運維人員具備更深入的硬件知識等。
Ironic是OpenStack提供的裸金屬管理服務,旨在為用戶提供類似虛擬機管理的裸金屬資源管理體驗。通過 Ironic,用戶可以像管理虛擬機一樣管理裸金屬服務器,實現在云平臺中的裸金屬資源的自動化部署、配置和管理。Ironic為云平臺提供了“即開即用”的裸金屬服務器管理體驗,簡化了裸金屬的復雜管理過程。
在裸金屬自動化入云的實踐中,Ironic提供了與傳統虛擬機類似的操作體驗,但它依然面臨著一些挑戰,特別是在部署和配置方面的復雜性。以下是一個基于Ironic環境搭建和應用的具體實踐案例。

在進行裸金屬自動化管理時,首先需要搭建Ironic環境。這包括安裝并配置OpenStack的相關組件,如ironic-api、ironic-conductor等。確保各組件能夠正常通信并與底層硬件資源(如BIOS、BMC控制器等)進行交互,從而實現裸金屬服務器的管理。
安裝Ironic組件:通常通過包管理工具(如apt、yum等)進行安裝。包括ironic-api、ironic-conductor等核心服務。
配置Ironic組件之間的通信:配置Ironic組件之間的消息隊列(如RabbitMQ)和數據庫(如MySQL),以便各組件能夠有效通信和共享數據。
配置硬件管理協議:配置Ironic與裸金屬節點的硬件管理協議(如IPMI、Redfish)。這些協議使Ironic能夠遠程控制裸金屬節點的電源(如開關機、重啟)及獲取硬件狀態。同時,需要配置Ironic支持的硬件驅動程序,確保其能夠與多種硬件平臺兼容。
配置Ironic數據庫:配置MySQL或其他數據庫后端,創建Ironic所需的數據庫表,確保裸金屬節點的注冊、配置及管理信息能夠正確存儲并進行管理。同時,配置數據庫連接及用戶權限控制,保障數據安全和訪問管理。
裸金屬服務器的操作系統鏡像需要根據Ironic平臺進行適配,確保系統能夠通過PXE和DHCP服務自動化安裝。鏡像的定制化至關重要,需確保操作系統與硬件配置匹配,避免因硬件差異導致部署失敗。裸金屬部署過程中,提供兩種主要鏡像:
部署鏡像:通過ironic-python-agent控制和配置裸金屬節點。
使用diskimage-builder工具可以自動構建適配鏡像,并實現裸金屬環境中的無縫部署。由于diskimage-builder默認不包含bclinux元素,需添加相應的元素并補充適配邏輯。


構建完成后生成以下文件:


部署鏡像和內核:ipa-bclinuxoe2110-aarch64.initramfs和ipa-bclinuxoe2110-aarch64.kernel。
操作系統鏡像:bclinux-os-oe2110-aarch64.qcow2。
在裸金屬的PXE引導安裝過程中,DHCP服務起著至關重要的作用,它為裸金屬節點分配臨時IP地址,確保節點能夠與Ironic控制節點進行通信,并下載所需的部署內核、鏡像和操作系統鏡像等文件。根據網絡拓撲,DHCP服務的配置可以分為兩種場景:同網段和跨網段。
同網段的DHCP配置
如果DHCP服務和裸金屬節點處于同一網段,配置起來相對簡單。裸金屬節點通過四步DHCP協議交互獲取IP地址及網絡配置信息:


1.DHCP Discover:客戶端廣播請求IP地址。
2.DHCP Offer:DHCP服務器提供可用的IP地址。
3.DHCP Request:客戶端確認使用該IP地址。
4.DHCP Ack:服務器確認并分配IP地址。
通過這一過程,裸金屬節點可以順利接入網絡,開始下載后續部署文件。
跨網段的DHCP配置
在復雜網絡環境中,DHCP服務和裸金屬節點可能位于不同網段,此時需要通過DHCP中繼來實現IP地址的分配。傳統的做法是配置DHCP中繼代理,轉發DHCP請求和應答報文,確??蛻舳撕头掌髦g的通信不受網絡分段的影響。

在跨網段場景中,DHCP客戶端首先向網絡發送DHCP Discover報文,DHCP中繼將該請求轉發給遠程DHCP服務器,后者會做出響應并通過中繼返回DHCP Offer報文。最終,客戶端和DHCP服務器完成四步交互,實現IP地址的分配。
應對跨網段DHCP配置不生效的解決方案
在省份實施過程中,發現跨網段的DHCP中繼配置不能生效,因此采用了以下替代方案:在每個網段內開通一臺低配的云主機作為DHCP服務節點。這臺云主機會負責為所在網段內的裸金屬節點提供IP分配,同時通過網絡配置將請求轉發到Ironic控制節點。
通過這種方式,我們可以避免復雜的中繼配置問題,同時確保各網段的裸金屬節點能夠順利完成DHCP交互并啟動后續的PXE引導。

在裸金屬節點注冊完成后,Ironic通過自動化流程來實現操作系統的部署。以下是通過Ironic進行裸金屬節點操作系統安裝的過程。

裸金屬節點注冊:用戶首先通過Ironic提供的API或命令行工具注冊裸金屬節點。注冊時,系統記錄節點的硬件信息、管理接口和網絡配置等參數,節點信息被存入Ironic數據庫,并標記為待部署狀態。
節點信息驗證與狀態更新:Ironic Conductor驗證節點的硬件信息和網絡配置,并將節點的狀態更新為“待提供”。系統定期檢查節點狀態,確保管理接口和硬件配置正確。
啟動并引導裸金屬節點:節點注冊完成后,Ironic Conductor通過IPMI或其他硬件管理協議向裸金屬節點下發初始化命令。節點啟動時,利用PXE引導,從DHCP服務器獲取臨時IP地址并通過TFTP服務獲取引導文件。
下載并啟動部署鏡像:完成PXE引導后,裸金屬節點通過HTTP下載部署鏡像。該鏡像為最小化操作系統,包含配置硬件和啟動操作系統安裝的工具。部署鏡像啟動后,會連接到Ironic Conductor,獲取操作系統鏡像并開始安裝。
操作系統鏡像安裝及初始化配置:Ironic Conductor根據請求提供操作系統鏡像。此鏡像通過HTTP服務傳輸到裸金屬節點,并在部署鏡像的幫助下,安裝到裸金屬節點的硬盤上。安裝過程包括:
部署完成與節點準備:操作系統安裝完成后,裸金屬節點自動重啟,并通過Ironic進行最后的狀態更新。此時,裸金屬節點已具備完整的操作系統環境,準備投入實際使用。
在裸金屬節點的部署中,網卡的網絡配置尤為重要。特別是在業務面、樣本面和參數面網絡中,裸金屬節點通常需要特定的網卡驅動和網絡配置。雖然OpenStack提供的Neutron網絡組件功能強大,但在不同的網絡環境下,配置過程往往復雜且難以統一,尤其在國內不同省份和甲方的多變網絡環境中,Neutron的配置可能不如預期那樣順暢和易用。
在實際實施過程中,由于操作系統已經安裝且已分配帶內管理網絡,可以通過ssh的方式連接到裸金屬服務器中,實現網卡驅動的安裝以及業務面、樣本面、參數面網絡的配置。在進行網絡配置之前,需要了解硬件及交換機的連線架構,確保配置的準確性和高效性。例如,在配置業務網絡時,以下幾個關鍵因素需要提前確認:
網卡信息:要知道哪些網口對應業務網絡。以某種典型架構為例,假設業務網絡對應的網口是NIC1-2和NIC2-2。

Bond配置:需要提前規劃好這兩個網口是否做Bond,以及Bond的網絡類型。
VLAN信息:了解業務網絡的VLAN標識,確保數據流能正確路由和隔離。
因此,首先需要通過腳本在操作系統中查詢這兩個網口的MAC地址,然后根據這些信息進一步確認網卡的名稱。接下來,可以自定義Bond網絡腳本,并根據具體的網絡配置要求進行相應的設置。

裸金屬延伸:基于裸金屬與K8s的GPU/NPU容器化隨著裸金屬服務器在智算領域的廣泛應用,裸金屬管理逐漸從傳統的資源交付轉向智能化調度與多樣化的場景適配。在多云管理平臺的統一管理下,裸金屬資源能夠以兩種主要模式交付客戶使用,滿足不同場景的需求。

通過多云管理平臺,裸金屬服務器以最小化抽象的形式直接交付給用戶。這種模式適用于對底層硬件資源有精細化控制需求的客戶。
直接交互:用戶通過多云管理平臺分配裸金屬資源,可通過SSH直接登錄服務器完成操作。
狀態監控:多云管理平臺提供裸金屬節點的實時監控與管理視圖,全面呈現資源狀態、性能和利用率,幫助用戶高效掌控硬件資源。
容器化調度模式:基于Rancher+K8s的容器化場景基于Rancher和Kubernetes的容器化管理,實現資源的細粒度分配與靈活調度。
異構資源封裝與容器化:通過K8s在裸金屬之上構建統一的容器化平臺,將GPU、NPU等異構硬件資源封裝為對應的容器單元,并以Pod的形式調度。
智算場景優化:用戶可快速開通GPU容器,用于深度學習模型的訓練與推理,滿足AI應用對高并發、高性能的需求場景,例如大規模圖像處理、自然語言理解與生成等任務。
全生命周期管理:Rancher結合Kubernetes提供從資源分配到任務完成的全生命周期管理,用戶不僅可以通過多云管理平臺監控容器運行狀態,還能通過API網關訪問容器服務或集成自定義應用。
性能可視化:多云管理平臺支持對容器和底層裸金屬的多維度性能監控,提供推理吞吐、訓練時長等關鍵指標,便于智算任務的精細化優化。
裸金屬自動化入云已成功落地湖南移動項目,客戶能夠快速獲取和使用裸金屬資源,免去復雜的前期準備工作。該方案解決了傳統模式下手動安裝操作系統和配置網絡設備的痛點,將每臺裸金屬的安裝時間從4小時縮短至0.5小時,不僅大幅提升了部署效率,還為業務應用的快速上線提供了有力支持??蛻裟軌蛟诟痰臅r間內響應市場需求,優化了整體業務運轉效率和用戶體驗。