詳解ZStack高級功能--裸金屬服務(wù)部署實(shí)踐
一、前言
今天我們來了解一下ZStack的裸金屬,提到裸金屬服務(wù),很多人從字面上可能對其不是很了解,其實(shí)早在之前的私有云OpenStack平臺,就已經(jīng)推行了Ironic裸金屬服務(wù),而且在去年的新Rocky版本中,更是對裸金屬服務(wù)進(jìn)行了加強(qiáng)。于此同時的ZStack在2.6.0版本,也推出裸金屬納管服務(wù)。那么這令人注目的裸金屬服務(wù)究竟是什么呢?
首先讓我們來了解一下裸金屬服務(wù)的由來,近年來由于國內(nèi)外云計(jì)算市場的快速發(fā)展,許多企業(yè)紛紛將自身業(yè)務(wù)遷至云端。不再將業(yè)務(wù)部署在自己自身的機(jī)房環(huán)境中,這樣帶來的好處就是省去了一部分的人工維護(hù)成本,轉(zhuǎn)而由第三方云供應(yīng)商來提供基礎(chǔ)環(huán)境。
而且一般來說硬件資源在很多情況下是沒有被充分利用的,比如我們?nèi)粘T谑褂米约旱碾娔X時,實(shí)質(zhì)上就是在使用它的CPU、內(nèi)存、以及在硬盤上運(yùn)行的操作系統(tǒng)等。當(dāng)我們查看這些資源的使用率時,通常會發(fā)現(xiàn),CPU和內(nèi)存大部分是閑置的。特別是CPU,其利用率通常不到10%。那么,有沒有可能不讓一個操作系統(tǒng)單獨(dú)控制一臺機(jī)器,而是在一臺機(jī)器上安裝多個操作系統(tǒng),并且讓它們同時地運(yùn)行,把被閑置的資源利用起來呢?答案是有,相信很多人都曾經(jīng)在自己的Windows電腦上安裝VMware workstation,并且安裝了多個虛擬機(jī),每個虛擬機(jī)都擁有自己的操作系統(tǒng),它們可以同時運(yùn)行,并且不互相干擾,就實(shí)現(xiàn)了自己硬件電腦的虛擬化,可以把一臺物理服務(wù)器虛擬化為多臺虛擬服務(wù)器。所以說,這種通過管理程序(VMware workstation等)把硬件的機(jī)器、同操作系統(tǒng)分開的過程,就是虛擬化。當(dāng)我們將業(yè)務(wù)運(yùn)行在云端時,可以做到按需求選取最合適的規(guī)模,將資源的利用率使用到更大。這些資源不僅僅包括CPU、內(nèi)存、操作系統(tǒng),還包括網(wǎng)絡(luò),ip,安全組等。
但是,并不是所有業(yè)務(wù)都適合在云端虛擬機(jī)上運(yùn)行的,比如一些高性能的計(jì)算任務(wù),如果運(yùn)行在虛擬機(jī)上,就達(dá)不到在物理機(jī)上的效果。于是就需要裸金屬服務(wù),簡單來說,裸金屬服務(wù)就是為應(yīng)用提供專屬的物理服務(wù)器,保障核心應(yīng)用的高性能和穩(wěn)定性。ZStack早在2.6.0版本,在高級功能中以單獨(dú)的功能模塊形式,推出了裸金屬服務(wù)。支持自定義安裝操作系統(tǒng),并提供裸金屬主機(jī)的全生命周期管理。裸金屬服務(wù)在以下幾個方面擁有巨大優(yōu)勢:
1,高性能計(jì)算;
2,無法使用虛擬化的計(jì)算任務(wù);
3,數(shù)據(jù)庫主機(jī);
4,單租戶、專用硬件、安全性、可靠性以及其它需求;
二、ZStack裸金屬服務(wù)概述
ZStack作為一套產(chǎn)品化創(chuàng)新開源云計(jì)算IaaS平臺,它可以為企業(yè)用戶提供私有云和混合云服務(wù),當(dāng)我們在ZStack中部署裸機(jī),用到的就是ZStack的高級功能-裸金屬服務(wù),即直接控制物理機(jī)進(jìn)行硬件部署操作,我們一般熟知的虛擬機(jī)(宿主型)是通過Hypervisor來部署的。如下圖,Hypervisor是一種運(yùn)行在物理服務(wù)器和操作系統(tǒng)之間的中間軟件層,可允許多個操作系統(tǒng)和應(yīng)用共享一套基礎(chǔ)物理硬件,因此也可以看作是虛擬環(huán)境中的"元"操作系統(tǒng),它可以協(xié)調(diào)訪問服務(wù)器上的所有物理設(shè)備和虛擬機(jī),也叫虛擬機(jī)監(jiān)視器VMM(Virtual Machine Monitor)。當(dāng)服務(wù)器啟動并執(zhí)行Hypervisor時,它會給每一臺虛擬機(jī)分配適量的內(nèi)存、CPU、網(wǎng)絡(luò)和磁盤,并加載所有虛擬機(jī)的客戶操作系統(tǒng)。
相比之下,裸金屬服務(wù)就是傳統(tǒng)形式,直接將OS部署在Hardware上,沒有VMM這一層的損耗,性能更加優(yōu)秀。
裸金屬服務(wù)的優(yōu)勢不言而喻,現(xiàn)在的各大公有云廠商也紛紛推出了自己的裸金屬服務(wù),作為私有云的ZStack也不甘示弱?,F(xiàn)在我們暫時不考慮之后裸金屬部署后的性能優(yōu)勢,單從部署方面來說,如何像部署虛擬機(jī)一樣去部署物理機(jī)呢?
ZStack可為應(yīng)用提供專屬的物理服務(wù)器,保障核心應(yīng)用的高性能和穩(wěn)定性。它可以直接對物理機(jī)執(zhí)行節(jié)點(diǎn)級別管理,進(jìn)行物理機(jī)節(jié)點(diǎn)的添加、刪除,進(jìn)行電源管理,部署系統(tǒng)等操作。在完成基本的服務(wù)器上架以及相關(guān)準(zhǔn)備工作后,(注意這里的相關(guān)準(zhǔn)備工作,是我們是否能順利控制裸金屬設(shè)備的關(guān)鍵前提,后面會詳細(xì)介紹),管理員可在UI界面批量部署裸金屬設(shè)備,部署完成后可使用裸金屬設(shè)備創(chuàng)建裸金屬主機(jī),支持自定義安裝操作系統(tǒng),并對裸金屬主機(jī)進(jìn)行全生命周期管理。
簡單來說,我們在這里可以認(rèn)為裸金屬服務(wù),就是為服務(wù)器裸機(jī)安裝相應(yīng)的操作系統(tǒng),并且獲取其配置信息,實(shí)現(xiàn)對裸金屬主機(jī)的生命周期控制,比如:開關(guān)機(jī)重啟等操作。而且對于整個操作過程而言,前提只需要服務(wù)器主機(jī)有網(wǎng)絡(luò)并且通電就可以。
三、ZStack裸金屬服務(wù)基本原理
裸金屬管理服務(wù)的基本原理是:PXE服務(wù)器提供DHCP服務(wù)和TFTP服務(wù),指示多臺裸金屬設(shè)備由PXE網(wǎng)卡啟動并分配動態(tài)IP,裸金屬設(shè)備從PXE服務(wù)器中下載相關(guān)軟件包,用于裸金屬主機(jī)的系統(tǒng)安裝。
裸金屬管理網(wǎng)絡(luò)拓?fù)渌荆?官方)
1. 管理節(jié)點(diǎn)與管理網(wǎng)絡(luò)(Management Node):需提前規(guī)劃管理網(wǎng)絡(luò),要求鏡像倉庫、PXE服務(wù)器均與管理節(jié)點(diǎn)連通。管理節(jié)點(diǎn)作為安裝系統(tǒng)的物理主機(jī),提供ZStack的UI管理、云平臺部署功能。一般是安裝ZStackiso鏡像的主機(jī),通過前端的dashboard界面,進(jìn)行圖形化管理。
2. 鏡像倉庫:也位于管理網(wǎng)絡(luò)網(wǎng)段之下,為裸機(jī)(可認(rèn)為沒有安裝操作系統(tǒng)的新機(jī)器)提供多種操作系統(tǒng)鏡像文件。在ZStack中,鏡像支持本地與URL導(dǎo)入。
3. PXE(preboot execute environment,預(yù)啟動執(zhí)行環(huán)境),支持通過網(wǎng)絡(luò)從遠(yuǎn)端服務(wù)器下載映像,并由此支持通過網(wǎng)絡(luò)啟動操作系統(tǒng),在啟動過程中,終端要求服務(wù)器分配IP地址,再用TFTP服務(wù)協(xié)議下載一個啟動軟件包到本機(jī)內(nèi)存中執(zhí)行,由這個啟動軟件包完成終端(客戶端)基本軟件設(shè)置,從而引導(dǎo)預(yù)先安裝在服務(wù)器中的終端操作系統(tǒng)。PXE可以引導(dǎo)多種操作系統(tǒng)。
可以概括認(rèn)為ZStack的PXE服務(wù)器包含二大功能:其一就是DHCP服務(wù)(指示多臺裸金屬設(shè)備由PXE網(wǎng)卡啟動并分配動態(tài)IP),其二就是TFTP服務(wù)(裸金屬設(shè)備從PXE服務(wù)器中下載相關(guān)軟件包,用于裸金屬主機(jī)的系統(tǒng)安裝)。
4.部署網(wǎng)絡(luò),確保裸金屬設(shè)備的PXE網(wǎng)卡與PXE服務(wù)器的DHCP監(jiān)聽網(wǎng)卡通過部署網(wǎng)絡(luò)連通??梢哉f就是安裝操作系統(tǒng)用的,它的獨(dú)立性適用于生產(chǎn)環(huán)境(優(yōu)先獨(dú)立配置),也可以以管理網(wǎng)絡(luò)作為部署網(wǎng)絡(luò)。
5.IPMI網(wǎng)絡(luò),確保管理節(jié)點(diǎn)與裸金屬設(shè)備的BMC接口通過IPMI網(wǎng)絡(luò)連通。IPMI的核心是BMC,即基板管理控制器,其并不依賴于服務(wù)器的處理器、BIOS或操作系統(tǒng)來工作,是一個單獨(dú)運(yùn)行的無代理管理子系統(tǒng),只要有BMC與IPMI固件(運(yùn)行在ROM里的只讀程序)其便可開始工作,BMC通常是一個安裝在服務(wù)器主板上的獨(dú)立板卡。在工作時,所有的IPMI功能都是向BMC發(fā)送命令來完成的。
所以需要配置裸金屬設(shè)備IPMI并規(guī)劃IPMI網(wǎng)絡(luò):
實(shí)現(xiàn)裸金屬設(shè)備的帶外控制(通過不同的物理通道傳送管理控制信息和數(shù)據(jù)信息,兩者完全獨(dú)立,互不影響。),要求裸金屬設(shè)備配備BMC接口(現(xiàn)在一般都有),并提前為每臺裸金屬設(shè)備配置好IPMI地址、端口、用戶名和密碼。
正因?yàn)镮PMI的獨(dú)立性,我們在進(jìn)行裸機(jī)操作時,可以對其進(jìn)行控制。當(dāng)裸機(jī)安裝完成,操作系統(tǒng)正常使用時才進(jìn)行數(shù)據(jù)信息處理。正如上面所說的,通過不同的物理通道傳送管理控制信息和數(shù)據(jù)信息。如下圖(來自網(wǎng)絡(luò)):IPMI接口與服務(wù)器一般網(wǎng)絡(luò)接口在不同位置。
規(guī)劃IPMI網(wǎng)絡(luò)后,管理節(jié)點(diǎn)與裸金屬設(shè)備的BMC接口可以通過IPMI網(wǎng)絡(luò)連通,
并且admin用戶可在之后的UI界面完成所有裸金屬設(shè)備的批量部署。
6. 其它網(wǎng)絡(luò)。
支持扁平網(wǎng)絡(luò)場景,同一個二層網(wǎng)絡(luò)上的裸金屬主機(jī)和云主機(jī)之間可互相訪問,無需通過網(wǎng)關(guān)進(jìn)行路由,需提前將裸金屬設(shè)備所在的裸金屬集群掛載到相應(yīng)的二層網(wǎng)絡(luò)。
四、ZStack裸金屬服務(wù)操作流程詳解
此次操作流程,將管理節(jié)控制節(jié)點(diǎn)與PXE服務(wù)器部署在同一個節(jié)點(diǎn),并且管理網(wǎng)絡(luò)與部署網(wǎng)絡(luò)為同一個網(wǎng)絡(luò)。如果有條件,建議在生產(chǎn)環(huán)境中依照官方拓?fù)鋱D部署。
4.1 準(zhǔn)備工作
為保證批量部署裸金屬設(shè)備的順利進(jìn)行,需提前做好以下準(zhǔn)備工作:
1. 手動安裝管理節(jié)點(diǎn),并安裝相應(yīng)許可證;即需要先安裝好ZStack環(huán)境,并保證在ZStack環(huán)境中可以使用裸金屬服務(wù)。
2. 在鏡像倉庫中準(zhǔn)備若干ISO鏡像,用于裸金屬主機(jī)的系統(tǒng)安裝。
(此處的鏡像服務(wù)器單獨(dú)部署,鏡像BIOS模式為legacy)
3. 進(jìn)入裸金屬設(shè)備BIOS啟用PXE(可以自己進(jìn)入裸金屬設(shè)備BIOS開啟)
提前進(jìn)入每臺裸金屬設(shè)備的BIOS,確認(rèn)其連接部署網(wǎng)絡(luò)的網(wǎng)卡開啟PXE功能。對于部分機(jī)型,還需確保該P(yáng)XE網(wǎng)卡為首張啟動網(wǎng)卡,或確保(啟動順位)在PXE網(wǎng)卡之前的所有網(wǎng)卡均關(guān)閉PXE功能,同時需確保裸金屬設(shè)備的啟動模式為Legacy。
4. 規(guī)劃部署網(wǎng)絡(luò);
要求PXE服務(wù)器的DHCP監(jiān)聽網(wǎng)卡是一個獨(dú)立的、有IP地址的網(wǎng)卡,對外提供穩(wěn)定的DHCP服務(wù)。
5. 配置裸金屬設(shè)備IPMI并規(guī)劃IPMI網(wǎng)絡(luò);
提前規(guī)劃IPMI網(wǎng)絡(luò),確保管理節(jié)點(diǎn)與裸金屬設(shè)備的BMC接口通過IPMI網(wǎng)絡(luò)連通。
這樣通過IPMI網(wǎng)絡(luò),admin就可在UI界面完成所有裸金屬設(shè)備的批量部署;并且管理節(jié)點(diǎn)可遠(yuǎn)程控制裸金屬設(shè)備的開關(guān)機(jī)、網(wǎng)絡(luò)啟動、磁盤啟動等行為。
6. 其它網(wǎng)絡(luò)(可選)。
如果裸金屬主機(jī)需要與云虛擬主機(jī)進(jìn)行交互的話。可以在一個扁平網(wǎng)絡(luò)下,設(shè)置二類主機(jī)互通。
準(zhǔn)備工作完成后,admin可登錄管理節(jié)點(diǎn)界面(ZStack的dashboard界面),進(jìn)行接下來的操作。
4.2 創(chuàng)建裸金屬集群,為裸金屬設(shè)備提供單獨(dú)的集群管理(和云主機(jī)區(qū)分開來)。
裸金屬集群可以為裸金屬設(shè)備提供單獨(dú)的集群管理。注意:一個裸金屬集群只允許掛載一個部署服務(wù)器。
創(chuàng)建界面如下圖:創(chuàng)建完成后,默認(rèn)啟動。
創(chuàng)建完成如下圖:
4.3 創(chuàng)建部署服務(wù)器,為裸金屬設(shè)備提供PXE服務(wù)和控制臺代理服務(wù)。
本次與管理節(jié)點(diǎn)合并,但獨(dú)立部署PXE服務(wù)器,可以滿足多管理節(jié)點(diǎn)物理機(jī)高可用場景需求,且避免單點(diǎn)故障,大幅提升部署效率。然后將部署服務(wù)器掛載到裸金屬集群中。
如下圖所示:DHCP服務(wù)(為裸金屬設(shè)備由PXE網(wǎng)卡啟動并分配動態(tài)IP),TFTP服務(wù)(裸金屬設(shè)備從PXE服務(wù)器中下載相關(guān)軟件包,用于裸金屬主機(jī)的操作系統(tǒng)安裝)。
創(chuàng)建完成后如下圖所示:
同時,點(diǎn)擊部署服務(wù)器可看到屬性信息:
4.4 添加裸金屬設(shè)備
裸金屬設(shè)備:就是待安裝操作系統(tǒng)的裸金屬服務(wù)器,通過BMC接口以及IPMI配置進(jìn)行識別。
需要填寫IPMI網(wǎng)絡(luò),這樣管理節(jié)點(diǎn)可遠(yuǎn)程控制裸金屬設(shè)備的開關(guān)機(jī)、網(wǎng)絡(luò)啟動、磁盤啟動等行為。創(chuàng)建如下圖:
創(chuàng)建完成后,如下圖所示,可以看到已經(jīng)獲取到了硬件信息。
此時這里可以打開控制臺,直接跳轉(zhuǎn)至該裸金屬設(shè)備的IPMI管理界面(登錄界面),輸入之前已配置好的IPMI用戶名和IPMI密碼,即可從ZStack界面跳轉(zhuǎn)登錄。
4.5 創(chuàng)建裸金屬主機(jī),進(jìn)行自定義安裝操作系統(tǒng)。
裸金屬主機(jī):即已安裝操作系統(tǒng)的裸金屬服務(wù)器,裸金屬設(shè)備部署完成后可用于創(chuàng)建裸金屬主機(jī)。創(chuàng)建界面如下,需要注意的是裸金屬主機(jī)創(chuàng)建完成后會自動重啟,然后根據(jù)所選鏡像開始安裝操作系統(tǒng);
創(chuàng)建過程中,裸金屬主機(jī)的狀態(tài)會暫時顯示為部署中。
這時我們需要打開控制臺,進(jìn)入系統(tǒng)安裝界面,手動進(jìn)行相關(guān)配置。如下圖:
部署完成后,裸金屬主機(jī)自動重啟,就緒狀態(tài)顯示為已部署。
需要注意的是,自動重啟時,主機(jī)已經(jīng)安裝好操作系統(tǒng),此時的啟動應(yīng)該從硬盤啟動,而不是之前的網(wǎng)卡啟動,可以登錄裸金屬設(shè)備的控制臺,設(shè)置一個引導(dǎo)設(shè)備為磁盤驅(qū)動器,確保主機(jī)從正確的地方啟動,否則有可能導(dǎo)致主機(jī)反復(fù)重啟。
重啟完成后,如下圖所示,主機(jī)處于正常運(yùn)行狀態(tài)。
在部署服務(wù)器上,可以看到鏡像的緩存位置以及此過程中DHCP服務(wù)與TFTP服務(wù)。這里的部署服務(wù)器就相當(dāng)于一個PxeServer。裸金屬主機(jī)會發(fā)送DHCP廣播請求,然后DHCP服務(wù)器向主機(jī)提供可用的IP地址并告知主機(jī)TFTP服務(wù)器的地址,之后TFTP向客戶機(jī)提供內(nèi)核,驅(qū)動及引導(dǎo)文件,通過TFTP獲得安裝文件,而安裝時的參數(shù)由cfg文件來提供。
安裝完成時,登錄裸金屬主機(jī),可以看到cfg配置參數(shù)文件:
4.6 對裸金屬主機(jī)進(jìn)行全生命周期管理。
總結(jié):
由上分析,ZStack裸金屬管理服務(wù)具有以下功能優(yōu)勢:首先可以為應(yīng)用提供專屬的物理服務(wù)器,保障核心應(yīng)用的高性能和穩(wěn)定性;其次在操作過程中的各個服務(wù)可以進(jìn)行獨(dú)立部署,比如:PXE服務(wù)器,可滿足多管理節(jié)點(diǎn)物理機(jī)高可用場景需求,徹底避免DHCP沖突,由于每個裸金屬集群均可掛載獨(dú)立 的PXE服務(wù)器,避免單點(diǎn)故障,大幅提升部署效率,以及鏡像倉庫的獨(dú)立部署。同時管理員可在UI界面上批量添加裸金屬設(shè)備,包括:手動添加和模板文件導(dǎo)入兩種方式,支持批量添加IPMI地址,高效部署裸金屬集群,提升運(yùn)維效率,而且支持自定義安裝操作系統(tǒng)。裸金屬主機(jī)并不是獨(dú)立的,它還支持扁平網(wǎng)絡(luò)場景,同一個二層網(wǎng)絡(luò)上的裸金屬主機(jī)和云主機(jī)之間可互相訪問,不需要通過網(wǎng)關(guān)進(jìn)行路由,可以與企業(yè)自身業(yè)務(wù)緊密聯(lián)合,發(fā)揮裸金屬主機(jī)的優(yōu)勢。
借用ZStack官網(wǎng)上看到的一句話來說一下私有云裸金屬的未來:隨著虛擬機(jī)技術(shù)的日趨成熟,虛擬機(jī)所帶來的性能損耗會越來越少,一些基于性能考慮而選擇裸金屬的需要未來可能會越來越少。但在一些特殊場合,針對一些特殊設(shè)備如龍芯或其他不能虛擬化的設(shè)備中,云平臺以裸金屬形式納管這些設(shè)備一定時間內(nèi)還會長期存在。針對這種形式的裸金屬設(shè)備,提供通用的管控接口,智能調(diào)度和狀態(tài)監(jiān)控也許是未來私有云裸金屬管理方面發(fā)展的重點(diǎn)。