■黃岡職業(yè)技術(shù)學(xué)院電子信息學(xué)院 陳金蓮
OpenStack作為一個(gè)完全開源的,有大量企業(yè)參與支持、貢獻(xiàn)代碼的云操作系統(tǒng),已經(jīng)成為云平臺(tái)的事實(shí)標(biāo)準(zhǔn),所以學(xué)習(xí)者一般是搭建OpenStack 平臺(tái)。不管用哪種自動(dòng)化技術(shù)來部署,部署時(shí)網(wǎng)絡(luò)層次的規(guī)劃是一個(gè)重要步驟,也是一個(gè)難點(diǎn),本文以fuel 為例來說明在部署OpenStack云平臺(tái)時(shí)涉及到哪些層次的網(wǎng)絡(luò),它們各自的用途是什么。
利用fuel 來部署時(shí),所涉及到的網(wǎng)絡(luò)包括如圖1 所示的六個(gè)層次,即IPMI 網(wǎng)、部署/PXE 網(wǎng)、存儲(chǔ)網(wǎng)、管理網(wǎng)、業(yè)務(wù)私網(wǎng)、外網(wǎng)/浮動(dòng)IP 網(wǎng)。圖中,部署控制器是一臺(tái)普通的PC 機(jī),可以是物理的,也可以是一臺(tái)虛擬機(jī),而其它的節(jié)點(diǎn)則是物理的服務(wù)器。當(dāng)然,在實(shí)驗(yàn)環(huán)境中,也可以是一臺(tái)虛擬機(jī)。
圖1 利用fueI 部署時(shí)的網(wǎng)絡(luò)層次
首先,來看看IPMI 網(wǎng)絡(luò)。IPMI 網(wǎng)嚴(yán)格來講與云平臺(tái)部署沒有太大的關(guān)系,它是服務(wù)器基于BMC 芯片形成的一個(gè)特殊的網(wǎng)絡(luò)接口,用于實(shí)現(xiàn)遠(yuǎn)程監(jiān)視服務(wù)器的工作狀態(tài),并依據(jù)狀態(tài)進(jìn)行管理控制,比如對(duì)服務(wù)器實(shí)現(xiàn)遠(yuǎn)程安裝操作系統(tǒng)、遠(yuǎn)程開關(guān)機(jī)。該管理功能不依賴于服務(wù)器的CPU 或者安裝于其中的操作系統(tǒng),在出廠時(shí)已經(jīng)配置好了靜態(tài)IP 地址和管理密碼,用戶也可進(jìn)入服務(wù)器的BIOS 對(duì)其IP 地址進(jìn)行重新設(shè)置。下面主要對(duì)另外的五種網(wǎng)絡(luò)進(jìn)行闡述:
1.部署/PXE 網(wǎng)
PXE(Preboot Execute Environment,預(yù)啟動(dòng)執(zhí)行環(huán)境) 是一種在網(wǎng)卡中預(yù)裝了PXE client 的執(zhí)行環(huán)境,當(dāng)機(jī)器從網(wǎng)卡啟動(dòng)時(shí),PXE client 載入內(nèi)存動(dòng)行,向PXE server 申請(qǐng)IP 地址及相關(guān)參數(shù),并下載安裝啟動(dòng)映像文件,進(jìn)一步安裝PXE server 上指定的其它軟件。
所以,部署網(wǎng)/PXE 網(wǎng)用于實(shí)現(xiàn)云平臺(tái)的部署,將安裝有部署端即fuel master的PC 機(jī)和待部署的服務(wù)器連接在同一個(gè)網(wǎng)絡(luò)中,待部署的服務(wù)器通過PXE 實(shí)現(xiàn)自動(dòng)部署,完成操作系統(tǒng)的安裝及OpenStack 各個(gè)組件的安裝與配置。fuel master提供一種Web 頁的方式完成云平臺(tái)環(huán)境的新建、環(huán)境中節(jié)點(diǎn)相關(guān)狀態(tài)的獲取、環(huán)境的部署、部署完成后狀態(tài)的監(jiān)測(cè)、環(huán)境的更新等一整套云平臺(tái)的管理。
部署完成后,如果不需要對(duì)云平臺(tái)進(jìn)行進(jìn)一步的監(jiān)測(cè)、更新,則該層網(wǎng)絡(luò)基本處于閑置狀態(tài),它對(duì)云平臺(tái)對(duì)外提供服務(wù)不產(chǎn)生影響。
2.存儲(chǔ)網(wǎng)
存儲(chǔ)網(wǎng)是計(jì)算節(jié)點(diǎn)訪問分布式存儲(chǔ)時(shí)使用的網(wǎng)絡(luò),分布式存儲(chǔ)節(jié)點(diǎn)內(nèi)部的數(shù)據(jù)冗余復(fù)制也需要使用該網(wǎng)絡(luò)。
3.業(yè)務(wù)私網(wǎng)
業(yè)務(wù)私網(wǎng)是OpenStack租戶創(chuàng)建的虛擬網(wǎng)絡(luò),也叫做租戶網(wǎng)絡(luò),虛擬機(jī)之間通過業(yè)務(wù)私網(wǎng)進(jìn)行通信。OpenStack 的虛擬網(wǎng)絡(luò)有FLAT、FLATDHCP、VLAN 和VXLAN、GRE 隧道等多種類型,在較近的版本中,用得比較多的是VLAN、VXLAN、GRE。
4.管理網(wǎng)
管理網(wǎng)是OpenStack 平臺(tái)中各組件之間通信所使用的網(wǎng)絡(luò)。該網(wǎng)絡(luò)承載了高可用集群的心跳和投票、數(shù)據(jù)庫、消息隊(duì)列、組件間API 調(diào)用、虛擬機(jī)遷移等。
5.外網(wǎng)/浮動(dòng)IP 網(wǎng)
外網(wǎng)/浮動(dòng)IP 網(wǎng)是OpenStack 集群與外界對(duì)接的唯一的網(wǎng)絡(luò),平臺(tái)中的其他網(wǎng)絡(luò)實(shí)際上都是集群內(nèi)部的私網(wǎng),外界不可見。OpenStack 的浮動(dòng)IP 是從外網(wǎng)直接訪問租戶創(chuàng)建的虛擬機(jī)的渠道,用戶可以從浮動(dòng)池中申請(qǐng)浮動(dòng)IP 并綁定到虛擬機(jī)上,如果不為虛擬機(jī)綁定浮動(dòng)IP,那么只能從虛擬機(jī)主動(dòng)發(fā)其連接到外網(wǎng),卻不能主動(dòng)從外網(wǎng)訪問虛擬機(jī)。浮動(dòng)IP 網(wǎng)和外網(wǎng)在同一個(gè)CIDR 內(nèi),但是地址范圍不能重合,且一個(gè)浮動(dòng)IP 網(wǎng)內(nèi)的IP 地址必須是連續(xù)的。
根據(jù)上面的網(wǎng)絡(luò)描述,云平臺(tái)中的服務(wù)器節(jié)點(diǎn)需要六個(gè)網(wǎng)卡接口,其中包括一個(gè)特殊的IPMI 接口。另外,五個(gè)網(wǎng)絡(luò)有自己獨(dú)立的接口,可以獲得良好性能,但很多情況下服務(wù)器可能沒有配備那么多的網(wǎng)絡(luò)接口,就需要將網(wǎng)絡(luò)合并。比如管理網(wǎng)和業(yè)務(wù)私網(wǎng)合并,共用一個(gè)接口,在通信時(shí)OpenStack將來自不同邏輯網(wǎng)絡(luò)的數(shù)據(jù)打上不同VLAN id 標(biāo)簽,從同一個(gè)網(wǎng)口進(jìn)出,以VLAN id來進(jìn)行區(qū)分。
在進(jìn)行網(wǎng)絡(luò)合并時(shí),要注意以下問題:
1.由于部署網(wǎng)需要使用DHCP 和PXE,在安裝操作系統(tǒng)前各節(jié)點(diǎn)間就需要連通,此時(shí)物理節(jié)點(diǎn)無法從部署網(wǎng)上收發(fā)帶VLAN 標(biāo)簽的流量,所以部署網(wǎng)一般不與其它邏輯網(wǎng)合并。如果必須合并則需要將物理機(jī)節(jié)點(diǎn)與交換機(jī)相連的端口配置成相應(yīng)VLAN的Native,以讓交換機(jī)端口來自動(dòng)加或者去掉VLAN id。
2.IPMI 則是專用的管理端口,現(xiàn)在的服務(wù)器一般都配有該端口,如果沒有,需要與其它邏輯網(wǎng)絡(luò)合并的話,因其需要識(shí)別DHCP 流量,則所連交換機(jī)的接口也要配置為native VLAN 的形式。
3.如果網(wǎng)卡有富余,可以考慮通過做bond 來提高網(wǎng)絡(luò)的吞吐量和可靠性。部署控制器的圖形界面中可以通過勾選網(wǎng)卡來設(shè)置bond。
4.對(duì)網(wǎng)段地址規(guī)劃時(shí),由于只有外網(wǎng)/浮動(dòng)IP 與外部聯(lián)通,因此一般只需要考慮外部網(wǎng)絡(luò)的網(wǎng)段規(guī)劃,與網(wǎng)絡(luò)節(jié)點(diǎn)所連接的外網(wǎng)在一個(gè)網(wǎng)段,保證地址夠用、不沖突、連續(xù)即可,而其它的邏輯網(wǎng)絡(luò)用不同的私網(wǎng)網(wǎng)段。
下面以帶一個(gè)專用IPMI接口、四張網(wǎng)卡接口的服務(wù)器,業(yè)務(wù)私網(wǎng)采用VLAN 形式來說明接口及網(wǎng)絡(luò)的規(guī)劃。
因?yàn)橛兴膹埼锢砭W(wǎng)卡,所以只需要合并五個(gè)網(wǎng)絡(luò)中的兩個(gè)就可以了??紤]到管理網(wǎng)和存儲(chǔ)網(wǎng)在應(yīng)用過程中有較大的數(shù)據(jù)流,它們分別獨(dú)占一個(gè)網(wǎng)卡。對(duì)于外網(wǎng)而言,一般只要求安裝了neutron 組件的節(jié)點(diǎn)接入外網(wǎng)即可,在fuel自動(dòng)部署中,neutron 安裝在控制節(jié)點(diǎn)中,其它節(jié)點(diǎn)中的云主機(jī)要與外網(wǎng)連通也需經(jīng)過控制節(jié)點(diǎn)。外網(wǎng)承擔(dān)著所有云主機(jī)的進(jìn)出流量,也規(guī)劃為獨(dú)占一張網(wǎng)卡。那么,就需要將部署網(wǎng)與業(yè)務(wù)私網(wǎng)合并在一張網(wǎng)卡上了,而部署網(wǎng)在安裝系統(tǒng)之前就需要連通,無法收發(fā)帶VLAN id 的數(shù)據(jù),則只能在相應(yīng)的交換機(jī)接口上將部署網(wǎng)所在的VLAN 設(shè)置成接口的native VLAN,以自動(dòng)增加id 號(hào)或去掉id 號(hào)。
以上只是對(duì)一種情況進(jìn)行說明,而在實(shí)際部署時(shí),一定要根據(jù)實(shí)際網(wǎng)絡(luò)需求進(jìn)行設(shè)計(jì)。當(dāng)然,理解了OpenStack 的網(wǎng)絡(luò)架構(gòu),規(guī)劃出合理的網(wǎng)絡(luò)也就不是問題。