如今,運(yùn)營商對(duì)于網(wǎng)絡(luò)功能虛擬化 (NFV) 的優(yōu)勢已經(jīng)達(dá)成普遍的認(rèn)同。然而傳統(tǒng)的單機(jī)部署方式并不能夠幫助NFV所帶來服務(wù)所需的敏捷性,這就意味著要采用云平臺(tái)這種強(qiáng)有力的基礎(chǔ)設(shè)施抽象化方式。OpenStack 在構(gòu)建 NFV 基礎(chǔ)設(shè)施 (NFVI) 方面起著至關(guān)重要的作用。但 OpenStack 的設(shè)計(jì)初衷是管理公有云中的應(yīng)用負(fù)載,因此將其應(yīng)用在通信行業(yè)時(shí),必須對(duì)其進(jìn)行擴(kuò)展以滿足運(yùn)營商級(jí)需求。
借助云技術(shù)體系實(shí)現(xiàn) NFV
虛擬化基礎(chǔ)設(shè)施管理器 (VIM) 的作用
在 NFV 情境下,VIM 位于 NFV 管理和編排 (MANO) 體系的最底層(參見圖 1)。ETSI NFV 小組將 NFVI 的虛擬化層(操作系統(tǒng)和虛擬機(jī)管理程序)與 VIM 做了區(qū)分。
圖1:NFV參考架構(gòu)
開源與云化基礎(chǔ)設(shè)施
云市場中有種日益增長的趨勢,那就是普遍采用開源軟件來實(shí)現(xiàn)云化基礎(chǔ)設(shè)施。Heavy Reading 的研究表明,有很大比例的運(yùn)營商都想在虛擬化層中采用開源 Linux 操作系統(tǒng)和 KVM 虛擬機(jī)管理程序以及將 OpenStack 用作 VIM。
OpenStack 之所以成為 VIM 主流的開源選擇,是因?yàn)?OpenStack 的插件化和可編程架構(gòu),這種架構(gòu)便于添加新特性。許多運(yùn)營商都設(shè)想構(gòu)建一個(gè)基于 Linux-KVM-OpenStack 體系的 NFV 云 (NFVI) 和 NFVI 管理層。
實(shí)現(xiàn)基于 OpenStack 的運(yùn)營商級(jí) VIM
為什么 OpenStack 要具備運(yùn)營商級(jí)特性?
OpenStack 的設(shè)計(jì)初衷是為那些由全網(wǎng)規(guī)模的企業(yè)所構(gòu)建的無狀態(tài) Web 應(yīng)用管理公有云基礎(chǔ)設(shè)施。這些 Web 應(yīng)用通常稱為“牛群 (cattle)”負(fù)載,因?yàn)榕J窍钠?— 一頭牛病倒了可以再找一頭牛替代它。因此,牛群負(fù)載幾乎不需要維護(hù),如果它們發(fā)生了硬件或虛擬機(jī) (VM) 故障,換掉就是了。
VNF 與公有云負(fù)載截然不同。許多 VNF 都對(duì) VM 在云基礎(chǔ)設(shè)施上的部署方式有著非常具體的、細(xì)粒度的要求,這是因?yàn)檫@些 VNF 需要一致的、可預(yù)測的性能和極低的延遲。電信網(wǎng)絡(luò)的運(yùn)營商級(jí)需求與公有云的需求全然不同,因此 OpenStack 及其處理的虛擬化層需要擴(kuò)充運(yùn)營商級(jí)特性來支持運(yùn)營商網(wǎng)絡(luò)對(duì)響應(yīng)時(shí)間的嚴(yán)苛要求。
OpenStack 是一個(gè)優(yōu)秀的開源軟件工程,每個(gè)新版本都更穩(wěn)定、更成熟,但同時(shí)它又高度復(fù)雜,每半年就會(huì)增加數(shù)千行代碼,因此更像是一個(gè)松散耦合的工具集而非一個(gè)經(jīng)過測試、集成、可立即投入運(yùn)行的解決方案。開發(fā)人員往往醉心于在主干代碼中添加新特性,常會(huì)忽視一些普通但重要的問題,如錯(cuò)誤修復(fù)和運(yùn)營穩(wěn)定性。因此,OpenStack 需要變得更健壯,能在任何環(huán)境供生產(chǎn)使用,當(dāng)然也包括運(yùn)營商級(jí)場景。而且,在運(yùn)營商級(jí)情境下,OpenStack 必須得有一套適當(dāng)?shù)倪\(yùn)營特性。
幫助 OpenStack 以運(yùn)營商級(jí)方式管理 NFVI 的擴(kuò)展
在性能方面,OpenStack 的運(yùn)營商級(jí)擴(kuò)展需要考慮:
·虛擬 CPU (vCPU) 拓?fù)渑渲谩?/strong>為了準(zhǔn)確地在云資源上部署(或“調(diào)度”)VNF,OpenStack 的調(diào)度組件 Nova 需要更精細(xì)地了解資源以及資源是否配置得當(dāng)以提供 VNF 所需的性能。該運(yùn)營商級(jí)擴(kuò)展能讓 OpenStack 以更靈活的方式向客戶機(jī) VM 提供插槽和 vCPU(內(nèi)核)的組合。
·客戶機(jī) vCPU 綁定物理 CPU (pCPU)。該特性與上一特性互為補(bǔ)充,因?yàn)?Nova 需要有個(gè)機(jī)制來確保所選擇的虛擬拓?fù)淠芙壎ǖ教囟ǖ奈锢?CPU 上以保障性能。
·客戶機(jī)非一致性內(nèi)存訪問 (NUMA) 節(jié)點(diǎn)部署和拓?fù)涓兄?/strong>能讓 OpenStack 了解服務(wù)器資源的分區(qū)方式以及 CPU、輸入/輸出 (I/O) 設(shè)備和內(nèi)存等與插槽的連接方式。這可確保在 NUMA 宿主機(jī)上執(zhí)行負(fù)載的 CPU 使用本地內(nèi)存,不會(huì)因訪問其他 NUMA 節(jié)點(diǎn)上的 RAM 而導(dǎo)致延遲。該擴(kuò)展還支持跨 NUMA 節(jié)點(diǎn)的新 OpenStack 類型模板,從而幫助客戶機(jī) OS 智能地確定如何在這些節(jié)點(diǎn)之間分配負(fù)載。
·基于 I/O (PCIe) 的 NUMA 調(diào)度。基于 I/O 的 NUMA 調(diào)度支持對(duì)已分配有宿主機(jī) PCI 設(shè)備的客戶機(jī) VM 進(jìn)行智能的 NUMA 節(jié)點(diǎn)部署,從而再次避免不必要的、可導(dǎo)致延遲的內(nèi)存事務(wù)。
·為客戶機(jī) RAM 分配大頁面內(nèi)存。這將啟用在公有云場景中通常禁用的大頁面特性。執(zhí)行高速 I/O 操作的 VNF 需要持續(xù)訪問支持超大頁面的服務(wù)器上的內(nèi)存。這與公有云恰恰相反。
·PCI SR-IOV 網(wǎng)絡(luò)直通支持。該特性使 Nova 能夠感知 Neutron 端口可用于調(diào)度的相關(guān)物理網(wǎng)絡(luò)。
下列這組擴(kuò)展能在 OpenStack 作為虛擬網(wǎng)絡(luò)控制點(diǎn)運(yùn)行時(shí)提供 99.9999% 的可靠性:
·雙控制節(jié)點(diǎn)架構(gòu)可確保高可用性。OpenStack 采用單節(jié)點(diǎn)控制架構(gòu),當(dāng)控制器發(fā)生故障時(shí),實(shí)例化的 VM 將繼續(xù)運(yùn)行,但無法監(jiān)視其運(yùn)行狀況。運(yùn)營商級(jí)版本則提供一對(duì)同步的控制節(jié)點(diǎn),兩者之間可進(jìn)行亞秒級(jí)故障切換。
·改進(jìn)的 Ceilometer 可擴(kuò)展性和性能可增強(qiáng)監(jiān)控以及對(duì)當(dāng)前分散在不同 OpenStack 組件上的監(jiān)控?cái)?shù)據(jù)(性能量度、故障和警報(bào))的整合。
·改進(jìn)的 VM 管理功能,如亞秒級(jí) VM 死機(jī)檢測,與之相比,非運(yùn)營商級(jí) OpenStack 實(shí)現(xiàn)執(zhí)行此操作則需要 60 秒。
·支持軟件滾動(dòng)升級(jí)。該特性是在 OpenStack 主干代碼中逐步實(shí)現(xiàn)的,以免每次發(fā)布新代碼時(shí)都要重新安裝 OpenStack。
·改進(jìn)的安全特性,如支持 AAA 安全性基礎(chǔ)設(shè)施、基于角色的身份驗(yàn)證和高可用性 (HA) 存儲(chǔ)。
·可擴(kuò)展性增強(qiáng):運(yùn)營商級(jí)的 OpenStack 版本需要支持?jǐn)?shù)百個(gè)計(jì)算節(jié)點(diǎn)來實(shí)現(xiàn)大規(guī)模 VNF 分布,最終通過聯(lián)合不同的 OpenStack 域來支持分布式 VNF。
·一鍵安裝。運(yùn)營商級(jí) OpenStack 的實(shí)施應(yīng)當(dāng)能簡單、快速地安裝 — 例如,從 U 盤不到 30 分鐘就安裝完成。
實(shí)現(xiàn)運(yùn)營商級(jí) OpenStack 的路徑
對(duì)運(yùn)營商而言,依靠自身力量開發(fā)出一套符合運(yùn)營商級(jí)要求的OpenStack顯然需要花費(fèi)大量的時(shí)間和經(jīng)歷。NFV 市場還處在非常原始的階段,但想要發(fā)展,首先需要的就是行動(dòng)起來。因此在 NFV 建設(shè)過程中,選擇適當(dāng)?shù)?OpenStack 提供商就成了一條更為有效的實(shí)現(xiàn)途徑。
只要所選的 OpenStack 提供商參與社區(qū)事務(wù)并且是開源軟件和開源方案的堅(jiān)定支持者,那所用的 OpenStack 版本有悖標(biāo)準(zhǔn)的風(fēng)險(xiǎn)還是很低的。就 NFV 而言,OpenStack 實(shí)現(xiàn)的穩(wěn)定性、性能和支持水平與其跟主干代碼的一致性同樣重要。
運(yùn)營商應(yīng)當(dāng)注意其選擇的運(yùn)營商級(jí) OpenStack 提供商不能僅僅是為社區(qū)提供專有開發(fā)。它們應(yīng)當(dāng)評(píng)估供應(yīng)商在社區(qū)中的活躍度,包括加入時(shí)間、提交記錄、既往貢獻(xiàn)與其在社區(qū)中認(rèn)可度的相關(guān)性,例如供應(yīng)商員工被選為社區(qū)領(lǐng)導(dǎo)。雖然供應(yīng)商可以先于社區(qū)滿足市場需求從而增強(qiáng)自己在 OpenStack 方面的差異化競爭,但只要供應(yīng)商快速用更先進(jìn)的軟件版本替代其專有開發(fā)并向上游流程提交自己開發(fā)的功能,那其運(yùn)營商級(jí) OpenStack 實(shí)現(xiàn)就會(huì)逐漸成為標(biāo)準(zhǔn)。
據(jù)惠普企業(yè) (HPE) NFV 技術(shù)顧問陳艷慶介紹,HPE 是 OpenStack 項(xiàng)目的主要領(lǐng)導(dǎo)者,擁有2名董事會(huì)成員和3名技術(shù)委員會(huì)成員,是 OpenStack 社區(qū)的首席貢獻(xiàn)著。在 OpenStack 領(lǐng)域,HPE 提供三種產(chǎn)品以滿足不同用戶的需求:
·社區(qū)版:基于原生 OpenStack 代碼構(gòu)建,同時(shí) HPE 在此基礎(chǔ)上進(jìn)行了自動(dòng)化安裝、基本的功能測試、bug修復(fù)和系統(tǒng)加固等工作。
·企業(yè)版:HPE 進(jìn)行了充分的測試和系統(tǒng)加固工作,完善了平臺(tái)功能,提高了穩(wěn)定性和性能,旨在滿足企業(yè)級(jí)應(yīng)用在按群星、高可用性、高可擴(kuò)展性方面的要求。
·電信版:基于企業(yè)版構(gòu)建,擴(kuò)展了對(duì)電信級(jí)應(yīng)用(如:NFV)的支持,包括多樣的數(shù)據(jù)面和虛擬化層的加速方案、高效的故障檢測和恢復(fù)機(jī)制、以及智能的虛擬化網(wǎng)元管理功能。
總結(jié)
OpenStack 是 ETSI NFV 架構(gòu)的一個(gè)重要組成部分,在將物理基礎(chǔ)設(shè)施抽象化為可編程的云平臺(tái)以及在云上管理負(fù)載方面發(fā)揮著關(guān)鍵作用。盡管從運(yùn)營商級(jí)性能的角度來看,OpenStack 作為云管理層尚有些不足,但 OpenStack 社區(qū)正通過多種途徑為其增加至關(guān)重要的運(yùn)營商級(jí)功能,包括由供應(yīng)商、OPNFV 聯(lián)盟和 NFV 子小組等開發(fā)的功能。
不過,相關(guān)供應(yīng)商不僅應(yīng)致力于通過上游流程為 OpenStack 社區(qū)提供擴(kuò)展,還應(yīng)在第一時(shí)間采納社區(qū)認(rèn)可的運(yùn)營商級(jí)特性。選擇 OpenStack 供應(yīng)商的一個(gè)關(guān)鍵標(biāo)準(zhǔn)就是供應(yīng)商在 OpenStack 社區(qū)中的影響力。這要看供應(yīng)商的貢獻(xiàn)記錄、其 OpenStack 實(shí)施的參與度以及因服務(wù)社區(qū)而獲得的尊重程度。
供應(yīng)商圍繞 OpenStack 所做的創(chuàng)新將使運(yùn)營商能夠盡早享受 NFV 的優(yōu)勢。隨著主流運(yùn)營商掌握 NFV 并建立新的服務(wù)敏捷性基準(zhǔn),那些希望保持競爭力的運(yùn)營商將不得不緊跟步伐。只要 OpenStack 的運(yùn)營商級(jí)特性越來越標(biāo)準(zhǔn)化,其作為運(yùn)營商首選 VIM 的前景將一片光明。