本文轉自:http://blog.csdn.net/bc_vnetwork/article/details/51463518
1. NFV概述
NFV(網絡功能虛擬化Network Function Virtualization, 有時候NFV也叫做VNF)由運營商的聯盟提出,主要利用通用x86硬件平台和標准的IT虛擬化技術, 來做軟硬件解耦合和功能抽象。 這樣做可以解決運營商目前碰到的一些問題, 如: 專用設備成本高昂, 廠商鎖定, 資源分配、部署、調度不夠靈活。隨着NFV的使用, 新業務可以快速開發和部署, 並能基於實際業務需求進行自動部署、彈性伸縮、故障隔離、並能大量節約成本和風險。
為了在雲計算SDN網絡中使用NFV, 需要引入NFV管理器, 用於配置、監視NFV以及管理NFV的生命周期, 整個過程需要符合ETSI MANO中所描述的整個NFV生命周期。
目前開源的NFV管理器有OpenStack的子項目Tacker以及ODL的Armoury插件, 本文着重講一下OpenStack雲平台下的組件Tacker項目。
2. Tacker概述
Tacker是一個在OpenStack內部孵化的項目, 他的作用是NVF管理器,用於管理NVF的生命周期。 Tacker的重點是配置VNF, 並監視他們。如果需要,還可重啟和/或擴展(自動修復)NVF。整個進程貫穿ETSIMANO所描述的整個生命周期。
3. Tacker架構
下圖所示為ETSIMANO所描述的VNF的整個生命周期:
ETSIMANO框架
Tacker由四大組件組成:即VNFD目錄、VNF設置、VNF配置管理,以及VNF監控與自動修復。
以下是Tacker的每個子領域迄今為止所取得的主要成就。
VNFD目錄:圍繞如何呈現VNF(VNF描述符)的標准化努力如今已經聚焦在了TOSCA上。TOSCA(針對雲應用的拓撲與編排規范)是OASIS協會下的一個技術委員會,主要致力於為全球信息社會推動開放標准的開發、整合與應用。TOSCA的NFV概要文件草案已經完成。該規范描述了VNF(VNFD)的屬性,以及Tacker對VNFD目錄的維護。
一旦VNF被規定使用TOSCA NFV模板,那么它們就能夠進入Tacker VNF目錄中。一旦進入,Tacker就可以通過編譯TOSCA模板和通過翻譯器翻譯部分OpenStack Heat實現VNF的實例化。Tacker還側重於VNF的配置和持續性監控,如果需要,自動修復可貫穿ETSI MANO所描述的整個生命周期。
VNF設置:通過上述的Heat模板,Tacker可以使用OpenStack Nova設置計算基礎設施。OpenStack Nova的許多功能可以在計算設置程序過程中被使用。通過利用SR-IOV Passthrough、NUMA、CPU pinning和大頁面分配等特定屬性創建的一些功能,計算資源可以針對VNF進行優化。
VNF配置管理:Tacker將通過配置驅動推動VNF所需的特殊配置。配置管理被設計為可插入式框架,不同的VNF廠商可以為他們的VNF編寫自己的配置驅動。
另一個方法是使用SDN控制器。目前已經就如何將SDN和NFV整合在一起展開了許多討論。關於使用SDN控制器插件的Tacker,如何推動配置使用SDN控制器南向接口的特殊VNF,就是一個很好的例子。
VNF監控與自動修復:Tacker的一個關鍵職責是監視VNF的健康。通過出台一系列旨在指導OpenStack其他項目設計的規范,Tacker可以隨時使用如icmp-ping和http-ping等可加載的監控驅動。它們還被規划與Ceilometer進行整合,如今VNF廠商已經能夠編寫自己的帶有特殊監控屬性的監控驅動。
VNF Manager (VNFM) 和 NFV Orchestrator 的功能各自是什么
VNFM的核心功能:
§ VNF 創建和終結(調用VNFD目錄)
§ VNF設置(即placement,調用Heat)
§ VNF配置(用EMS)
§ VNF監控(健康,性能等)
§ VNF自動治愈回復和擴展伸縮
§ 支持各類簡單的和復雜的VNF
NFVO的核心功能:
§ 網絡服務(Network Service)的編排 (用一系列的VNFs和轉發圖Forwarding Graph,此處想象糖葫蘆,一串兒VNFs)
§ 調用VNFM來做跨多個VIM的VNF安置(placement)
§ 資源檢查和分配
§ 可以跨虛擬的(VNF)和物理的NFs
§ 用SDN controller 或SFCAPI來實現 VNF Forwarding Graph
§ 來看看 NFVO 和 VNFM 的好處有什么(這里主要面向運營商/服務商):
§ 防止設備廠商鎖定(運營商多年的夢想),運營商可以靈活部署從多個廠商提供的VNF。
§ NFV orchestration 編排的流程基本是與具體 VNF 獨立無關的 (VNF agnostic)
§ VNF (廠商)具體的差異化可以通過業界標准化的 plugin插件和驅動來實現
Tacker架構
Tacker未來還將新增sfc driver以實現VNFForwarding Graph, 即業務鏈。
4. Tacker工作流程
以下為Tacker工作流程:
Tacker工作流程
第一步:Tacker根據BSS/OSS需求從服務目錄選出相應的服務項目,如vRouter。
第二步:Tacker把具體的 VNFD推送給 OpenStack Heat 來生成VDU (Virtual Deployment Unit,對應含VNF要求的 VM部署單元)。
第三步:用Heat來啟動生成具體的VM實例,如圖下方的 VNF FWaaS,VNF vRouter等。
第四步: (在圖中部)用 Mgmt Driver (管理驅動)來配置 VMs,通常會通過廠商EMS(如大家看到的 "Vendor Y Manager"),或者是SSH這樣的簡單手段。
第五步:SFC(Service Function Chain 服務功能鏈)的執行實現。這里例子用的是ODL 控制器,配合IETF的NSH(Network Service Header,網絡服務包頭)來實現服務鏈的執行。 NSH通過描述數據面的Header來沿着網絡服務路徑(Service Path)承載網絡服務信息,意在實現與傳輸獨立的“服務面”(Service Plane),可以與VXLAN,MPLS, UDP等傳輸封裝協議配合。在NSH當前開源實現中可以支持OVS數據面(VXLAN)和ODL的控制面。細節這里不展開了,大家可以關注IETF NSH標准和ODL,OVS相關內容。
第六步: 監控VNF健康/可用性availability狀況,出現問題是自動治愈回復(重新生成VNF,保證業務連續性)。
從上面的流程我們可以看到, tacker還依賴於OpenStack Heat編排組件。
5. Tacker主要功能
下面總結下Tacker的主要功能features:
l 貫穿 VNF 完整生命周期的工作流程管理
l 依照MANO框架的API
l 可調用(loadable)的健康監控及治愈恢復能力框架
l 參數化的(parameterized)TOSCAVNFD 模板
l VNF 用戶數據注入(injection) 能力 (通過具體的plug-in drivers)
l VNF 初始化和更新配置注入
通過Tacker,大家其實希望能構建一個基於業界標准的開源開放NFV Orchestration 社區。
6. Tacker Roadmap及未來方向
Tacker 的roadmap和未來規划在OpenStackMitaka 版本和更遠未來實現的重要功能區:
l 多 VIM支持(除完整雲平台之外,VIM也有可能是Hypervisor層級的管理模塊(如基於KVM),以適應運營商一些輕量級的需求,如小型vCPE等)
l VNF的高級設置(advanced placement): 利用CPU pinning,NUMA優化,SR-IOV和PCIpass-through等VNF性能優化技術
l VNF 擴展scaling:這里提下,現在運營商對自動擴展並不熱衷,大多還要求有手動控制,自動會是未來功能,這里主要從scale out開始。
l 在VM之外的編排能力:之前提到過除了VNF,還有PNF需要管理編排,就是大家現在都提的 P+V,投資保護,成本,利舊,遷移演進,都是實在的價值....
l 另外還有基於Container 的NF (如Docker... )。