一,Ironic簡述
簡而言之,OpenStack Ironic就是一個進行裸機部署安裝的項目。
所謂裸機,就是指沒有配置操作系統的計算機。從裸機到應用還需要進行以下操作:
(1)硬盤RAID、分區和格式化;
(2)安裝操作系統、驅動程序;
(3)安裝應用程序。
Ironic實現的功能,就是可以很方便的對指定的一台或多台裸機,執行以上一系列的操作。例如部署大數據群集需要同時部署多台物理機,就可以使用Ironic來實現。
Ironic可以實現硬件基礎設施資源的快速交付。
二,Why Provision Bare Metal
Here are a few use-cases for bare metal (physical server) provisioning in cloud; there are doubtless many more interesting ones:
(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的設計初衷是為用戶提供基於虛擬化技術的雲應用資源高效共享方案,通過池化基礎設施資源,為用戶動態的提供計算、存儲、網絡等服務。
但是一些應用場景下,僅有虛擬化的服務是不夠的,這些場景下用戶需要直接使用物理服務器資源,以滿足特定需求的可行性及高效性,因此,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插件,提供對應的driver。用戶可根據使用需求,選擇合適的driver。
五,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/ironic/latest/
http://baike.so.com/doc/6838298-7055555.html
http://ironic-book.readthedocs.io/zh_CN/latest/install/install.html
http://blog.csdn.net/changzhi1990/article/details/50234607
http://blog.csdn.net/wanghuiict/article/details/52800018
http://blog.csdn.net/PeterBupt/article/details/78122185