吳志森
(泉州經(jīng)貿(mào)職業(yè)技術(shù)學(xué)院,福建 泉州 362000)
目前,云提供商利用數(shù)據(jù)中心來提供云服務(wù),其中所有計算性能都被安裝并分發(fā)給各個客戶或服務(wù)。從功能和安全角度來看,為云環(huán)境中的協(xié)調(diào)者提供安全可靠的虛擬網(wǎng)絡(luò)服務(wù)設(shè)置的問題是其實施過程中具有高度風(fēng)險的一部分。這種風(fēng)險很大程度上受到實施者的影響,他們可能有意或無意地犯下一些帶來安全和經(jīng)濟影響的錯誤[1]。NFV(網(wǎng)絡(luò)功能虛擬化)是一種計算機網(wǎng)絡(luò)體系結(jié)構(gòu)概念,其中傳統(tǒng)的物理網(wǎng)絡(luò)設(shè)備被虛擬設(shè)備替代,虛擬設(shè)備的形式是在執(zhí)行相同功能標(biāo)準(zhǔn)和性能良好的服務(wù)器上運行虛擬機,它統(tǒng)一了云網(wǎng)絡(luò)基礎(chǔ)設(shè)施的各個部分,并允許其創(chuàng)建、管理和監(jiān)督軟硬件資源。采用虛擬化解決方案時,可以避免來自不同制造商的設(shè)備的兼容性問題。虛擬化不像物理設(shè)備那樣依賴于制造商,軟件可以采用開源開發(fā)的軟件作為解決方案[2,3]。NFV由歐洲電信標(biāo)準(zhǔn)協(xié)會(ETSI)于2013年推出,其框架由三個主要組件構(gòu)成:虛擬化的網(wǎng)絡(luò)功能模塊管理器(VNFM)——用于進行虛擬化的網(wǎng)絡(luò)功能模塊生命周期管理的功能模塊;虛擬化基礎(chǔ)設(shè)施管理器(VIM)——負責(zé)對網(wǎng)絡(luò)功能虛擬化基礎(chǔ)架構(gòu)的計算資源、存儲資源以及網(wǎng)絡(luò)資源進行控制與管理的功能[4];網(wǎng)絡(luò)功能虛擬化編排器(NFVO)——可用以管理網(wǎng)絡(luò)業(yè)務(wù)生命周期,并協(xié)調(diào)網(wǎng)絡(luò)業(yè)務(wù)生命周期的管理、協(xié)調(diào)VNF生命周期的管理、協(xié)調(diào)NFVI各類資源的管理,以此確保所需各類資源與連接的優(yōu)化配置,提供整個NFV基礎(chǔ)架構(gòu)的編排和自動化。
圖1描述了NFV框架的各個部分以及軟件組件的特定實現(xiàn),它們被選擇用于實現(xiàn)各個架構(gòu)層。具有OpenContrail SDN擴展的OpenStack平臺被選為網(wǎng)絡(luò)功能虛擬化基礎(chǔ)架構(gòu)(NFVI)和虛擬化基礎(chǔ)設(shè)施管理器(VIM)。SaltStack工具已經(jīng)被選擇來提供網(wǎng)絡(luò)功能虛擬化編排器(NFVO)和虛擬化網(wǎng)絡(luò)功能管理器(VNFM)功能[5]。
圖1 NFV框架結(jié)構(gòu)
OpenStack之所以被選中,是因其具有較強的穩(wěn)定性、可變性,并可以在生產(chǎn)環(huán)境中大量實現(xiàn)。它是一個非常穩(wěn)定和調(diào)優(yōu)的NFV云實施平臺。OpenContrail可直接與NFV一起使用,因為它從一開始就是針對這種可用性而被開發(fā)的。與Open-Stack的標(biāo)準(zhǔn)網(wǎng)絡(luò)解決方案(Neutron)相比,Open-Contrail具有更高的可擴展性和穩(wěn)定性,尤其適用于大量虛擬機。OpenContrail相對于Neutron的主要優(yōu)勢是分布式vRouter(虛擬路由器),這意味著在實踐中,托管虛擬機的計算機服務(wù)器之間可以直接進行通信。這種通信通過Neutron提供的網(wǎng)絡(luò)節(jié)點(即服務(wù)器),實現(xiàn)虛擬網(wǎng)絡(luò)間的所有通信。這意味著,所有網(wǎng)絡(luò)流量都流向同一個地方,從而導(dǎo)致虛擬機流量過大而最終崩潰。這個問題可以通過使用分布式訪問來消除,因為負載均勻分布在所有計算機節(jié)點上,以實現(xiàn)更好的可伸縮性、穩(wěn)定性,當(dāng)然還可以實現(xiàn)更大的網(wǎng)絡(luò)吞吐量[6,7]。此外,OpenContrail還提供了一些基于Neutron的功能,包括服務(wù)鏈、負載均衡、分析或更高級的防火墻。圖2描繪了使用Neuron和OpenContrail的數(shù)據(jù)包流。
圖2 Neutron和OpenContrail之間數(shù)據(jù)包流的差異
選擇SaltStack是因為它提供了最廣泛的編排選項。除了管理NFV外,還可以輕松控制整個云環(huán)境。此外,它還為OpenStack功能提供了非常好的原生支持。
VNF部署技術(shù)的前提條件是OpenStack和OpenContrail已經(jīng)安裝并且功能齊全。AviNetworks的Avi-Vantage軟件負載均衡器被選為VNF。但是,AviVantage的部署及其功能、安全性主要是依賴于實施者。本文提出的解決方案的核心是使用Salt orchestrator實現(xiàn)此過程自動化。負載均衡器通常負責(zé)為服務(wù)用戶提供它的所有服務(wù)器之間的平均分配負載。只有當(dāng)兩個或更多個服務(wù)器在網(wǎng)絡(luò)上提供相同的服務(wù)時才有意義。
解決方案選擇了AvimanagedLBaaS模式,在該模式中創(chuàng)建了具有管理權(quán)限用戶的Avi控制器的特殊租戶。管理員可以在云用戶中創(chuàng)建Avi服務(wù)引擎(Avi SE)。然后,用戶可以在其租戶中管理Avi SE。在安裝時,管理員必須首先為控制器創(chuàng)建租戶,并為控制器實例創(chuàng)建至少一個規(guī)則;然后將控制器磁盤映像上傳到Glance,為控制器創(chuàng)建網(wǎng)絡(luò)管理,使用指定的防火墻規(guī)則創(chuàng)建SE和安全組;最后創(chuàng)建一個控制器實例。
Formula是為控制器創(chuàng)建網(wǎng)絡(luò)管理要求而創(chuàng)建的,并對程序進行了修改。Salt State Formulas以.sls結(jié)尾,因此名為avinetworks.sls的文件是在存儲Salt公式的目錄中創(chuàng)建的,第一級包含Salt的各個角色,第二級列出了它們的子角色。這里介紹的解決方案是avinetworks的作用,其中包括一個子角色控制器和一個子角色包含變量列表。
在下一個步驟中,需要確定基礎(chǔ)條件以及是否啟用角色。
下面是公式的一部分,其中包含使用Neutron應(yīng)用程序接口創(chuàng)建網(wǎng)絡(luò)資源所需要的步驟。這是提供與外部網(wǎng)絡(luò)通信的網(wǎng)絡(luò)、子網(wǎng)和路由。
因此,可以執(zhí)行一個命令來同步Salt中master上的所有模塊和角色、Pillar Sync命令以及針對特定minion文件配置的AviNetworks應(yīng)用程序。
現(xiàn)在,可以執(zhí)行其中一個控制器的Web界面以確保其正確運行。圖3提供了一個Web界面訪問設(shè)置表單??梢蕴砑雍徒⒎?wù)之間的服務(wù),并在這些服務(wù)之間進行負載均衡。
圖3 Avi vantage負載均衡設(shè)置界面
文中提出的解決方案描述了Salt Orchestrator的功能和支柱的部署,通過調(diào)用單個命令,包括OpenStack環(huán)境中所有必要的依賴項,可以自動安裝Avivantage軟件負載均衡器的三個實例。介紹了為Orchestrators創(chuàng)建VNF規(guī)則的一般過程。無論所選的平臺、VNF或如何編排,無論是Tacker模板、Cloudify 藍圖、Salt Formulas或者 Orchestrators的任何其他方案,都需要用戶手動安裝所選VNF,然后嘗試將這些手動操作轉(zhuǎn)換為所選規(guī)則。引入和測試的解決方案完全可用于自動化控制器安裝。由于能夠針對有意或無意的錯誤獨立測試自動安裝,從而降低安全風(fēng)險和經(jīng)濟影響,因此,引入VNF編排規(guī)則可顯著降低在OpenStack中部署所需工具的風(fēng)險。
河北軟件職業(yè)技術(shù)學(xué)院學(xué)報2020年1期