背景
html
最近上馬新項目 OpenCOS,有帶外管理和雲設施快速部署的需求,故而找到並研究 Ironic.
node
Ironic 概況
web
截止此文撰寫日期,Ironic 仍是 openstack 的孵化項目,準備在下個版本 Juno 中畢業,也有可能會變動。數據庫
Ironic 功能概述api
Ironic 提供裸機管理服務。相對於傳統的虛擬環境來講,在物理硬件上先跑 HostOS(hypervisor,例如 xen、kvm),再在其上跑 GuestOS(VM即虛擬機)。而 Ironic 則是直接在物理硬件上跑虛擬機,不借助 hypervisor。更直白的來講,就是日常說的裝機,PXE 網絡新安裝一個操做系統。
服務器
此處先介紹下幾個關鍵的術語:
網絡
1)baremetal host/compute host : 分別運行 ironic 服務(api 和 conductor)和 nova-compute 服務,通常都安裝在一個服務器上。
架構
2)baremetal node : 1)控制的可運行 baremetal instance 的服務器,可爲全新服務器或已安裝 OS 的服務器,此處的控制是經過驅動(IPMI或SSH)遠程控制。
spa
3)baremetal instance : 經過 nova(openstack 計算組件) api 建立的虛擬機,不過虛擬機的規格參數定製的,包括類型flavor/image,還有其餘的運行配置,會在後文中介紹。
操作系統
4)driver : 驅動,經過業內通用的技術,包括 PXE 、IPMI 等來覆蓋大多數的硬件,還支持可插拔的架構,使得廠商可自行定製的驅動。
5)deploy image : kernel 和 ramdisk 映像文件,供 PXE 使用。
Ironic 架構(摘自官網)
後語
介紹下 Ironic 的前世此生。
物理機和虛擬機管理有不少地方很是類似,好比物理機和虛擬機都須要開機關機,安裝部署,添加和刪除,爲了不重複造輪子,他們在nova中實現了一個物理機的driver,這樣把物理機管理作爲計算資源管理的一個子集了。
後來發現有以下不合適的地方:1)nova 項目有 2 個數據庫;2)物理機的信息,如 chassis/node 等經過 nova api 來獲取;3)流程,諸如驅動的發現;
比較好的辦法是當完成這些操做的時候,向nova去註冊信息,做爲nova中的可用的資源,最後經過nova boot去調用這些資源。
通過屢次討論,社區將 baremetal 從 nova 中剝離出來,新成立了 Ironic 項目。
參考文獻
http://docs.openstack.org/developer/ironic/
https://wiki.openstack.org/wiki/Ironic