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