一,Ironic簡述
所謂裸機,就是指沒有配置操作系統的計算機。從裸機到應用還需要進行以下操作:
(1)硬盤RAID、分區和格式化;
(2)安裝操作系統、驅動程序;
(3)安裝應用程序。
Ironic實現的功能,就是可以很方便的對指定的一臺或多臺裸機,執行以上一系列的操作。例如部署大數據羣集需要同時部署多臺物理機,就可以使用Ironic來實現。
Ironic可以實現硬件基礎設施資源的快速交付。
二,Why Provision Bare Metal
(1)High-performance computing clusters
(2)Computing tasks that require access to hardware devices which can’t be virtualized
(3)Database hosting (some databases run poorly in a hypervisor)
(4)Single tenant, dedicated hardware for performance, security, dependability and other regulatory requirements
(5)Or, rapidly deploying a cloud infrastructure
這個是官網的,快速翻譯下:
1,高性能計算;
2,無法使用虛擬化的計算任務;
3,數據庫主機;
4,單租戶、專用硬件、安全性、可靠性以及其它需求;
5,快速部署雲基礎設施(比如部署一個虛擬化節點)
三,Ironic在OpenStack項目中的使用
但是一些應用場景下,僅有虛擬化的服務是不夠的,這些場景下用戶需要直接使用物理服務器資源,以滿足特定需求的可行性及高效性,因此,OpenStack需要支持裸機的直接部署功能。此時,裸機也是IaaS 基礎設施的池化資源的一部分。
目前,在OpenStack體系結構中,Ironic還是通過Nova來調用的,模擬Nova的一個虛擬化驅動(其它的虛擬化驅動還有KVM、VMware、Xen等),實現基於Ironic的虛擬化驅動。
預先配置好PXE、IPMI等服務,完成Ironic的相關配置之後,用戶就可以使用Nova API來實現一個物理機實例的創建。Nova用於管理虛擬機的生命週期;Ironic則是用於管理物理機的生命週期,它給Nova提供管理物理機的API接口。
對Nova而言,通過Ironic部署物理機,和部署虛擬機的調用流程是一樣的,都是通過Nova的接口來執行創建實例,只是底層的nova-scheduler和nova-compute驅動不一樣。虛擬機底層驅動採用的是虛擬化技術,而物理機採用的是PXE和IPMI技術。
作爲openstack中的一個獨立模塊,Ironic需要與keystone、nova、neutron、cinder以及swift進行交互,像Nova創建虛擬機一樣,需要對應的認證服務、網絡服務、塊存儲服務、對象存儲服務等。
四,Ironic和Hypervisor
在OpenStack中直接部署裸機,Ironic需要直接控制物理機進行硬件部署操作,而虛擬機則是通過Hypervisor部署服務。
Hypervisor是一種運行在物理服務器和操作系統之間的中間軟件層,可允許多個操作系統和應用共享一套基礎物理硬件,因此也可以看作是虛擬環境中的"元"操作系統,它可以協調訪問服務器上的所有物理設備和虛擬機,也叫虛擬機監視器VMM(Virtual Machine Monitor)。
Hypervisor是所有虛擬化技術的核心。非中斷地支持多工作負載遷移的能力是Hypervisor的基本功能。當服務器啓動並執行Hypervisor時,它會給每一臺虛擬機分配適量的內存、CPU、網絡和磁盤,並加載所有虛擬機的客戶操作系統。
主流的Hypervisor有:VMware的ESXi、微軟的Hyper-V或者思傑的XenServer。
五,Ironic邏輯結構
下圖展示了Ironic服務的基本組件,Ironic服務和其他OpenStack服務之間的調用關係,以及創建一個物理機實例的邏輯調用流程。
Ironic服務由以下組件組成:
(1)基於RESTful的API服務。操作者和其它服務通過API與裸金屬管理服務器交互。
(2)Conductor服務。Ironic的核心組件,通過API提供功能調用。Conductor服務和API服務通過RPC通信。
(3)各種驅動程序,支持不同的硬件。
(4)消息隊列RabbitMQ。
(5)數據庫。用於存儲信息資源,除此之外,還包括存儲Conductor、節點(物理服務器)和drivers等信息。
用戶通過Nova API和Nova Scheduler來啓動一個裸金屬實例,之後請求會通過Ironic API,連接到Ironic Conductor服務,再到對應的Driver,最後完成實例部署,爲用戶提供成功部署的物理機服務。
參考:
https://docs.openstack.org/developer/ironic/mitaka/deploy/user-guide.html
http://baike.so.com/doc/6838298-7055555.html