在SDN/NFV的網絡革新技術浪潮的引領下,催生了諸多數據面開源方案的誕生。業界知名度較高的有OVS(Open vSwitch)、FD.io (Fast Data I/O)、ODP(Open Data Plane)。 然而,在現有的虛擬交換機中,OVS作為主流的開源方案,是目前大多數虛擬化環境和OpenStack部署中的網絡基礎,可以在很多SDN/NFV場景下進行靈活部署。
什么是OVS? Open vSwitch是由Nicira公司使用C和Python語言開發實現的遵循開源Apache2.0許可的產品級質量的多層虛擬交換機,目的是讓大規模網絡通過可編程實現自動化擴展。 它既可以作為一個軟件交換機運行在虛擬化層,也可以作為交換芯片的控制棧實現,支持多種標准管理接口和協議(NetFlow, sFlow, SPAN, RSPAN, CLI, LACP, 802.1ag)。 OVS項目的開源發展歷史: OVS項目早在2009年,就已孵化誕生,於2012年7月30日發布第一個開源版本V1.7.0,經過這幾年的不斷發展壯大,到目前為止,OVS開源版本已經更新到V2.6.0。圖2簡單展示了其開源版本的更新歷程。 隨着其社區生態圈日趨豐富,OVS已經被移植到多種虛擬化平台(XenServer6.0、Xen 、KVM、Proxmox VE、VirtualBox)和交換芯片組。 同時被集成到許多虛擬化管理系統(OpenStack、openQRM、OpenNebula、oVirt)。 此外,內核datapath已經被納入Linux內核作為發行版的一部分,像知名的Linux操作系統Ubuntu、Debian、Fedora也都提供了datapath的安裝包。 OVS同樣也支持FreeBSD和NetBSD,更有DPDK( Data Plane Development Kit )助力加速OVS,幫助改善其轉發性能。
OVS的組成結構: OVS的構成非常簡單,每個部件負責各自的職責,圖3描述了其基礎架構組成。 簡單了解完OVS本身,接下來我們通過兩個子項目,再進行深入認識:
子項目1:OpenFlow伙伴協議——OF-CONFIG 為了對控制器做更好的支持而誕生。因OVS中的OVSDB協議無法很好的服務於交換機的配置管理,所以就促成了OVS需要支持OF-CONFIG協議的需求,從而有了OVS旗下的OF-CONFIG開源子項目。 首先簡單認識一下,什么是OF-CONFIG? 基於NETCONF協議實現,依賴於NETCONF的操作和傳輸標准,旨在對OpenFlow交換機實現遠程管理。 其次,OF-CONFIG能夠幫我們完成哪些方面的工作? 最后,看一下OVS是如何在現有的基礎架構上支持OF-CONFIG?
圖4顯示了OF-CONFIG對接OVS的架構實現,OF-CONFIG server作為一個系統守護進程,和OVSDB server之間通過OVSDB IDL(Interface Definition Language)建立連接。 然后OF-CONFIG server等待來自NETCONF agent的會話連接請求,一個NETCONF會話連接請求對應一個NETCONF agent。NETCONF agent在啟動的時候和OF-CONFIG server建立連接, 並和OF-CONFIG client完成會話建立的握手。OF-CONFIG server和OF-CONFIG client之間通過D-BUS或UNIX socket方式的進行內部通信。
子項目2:開放虛擬網絡OVN 為更好的服務於雲計算環境而誕生。由於 Openstack Neutron 的實現架構存在一些性能問題,比如 neutron-server 要與非常多的 agent 之間通信, 存在RPC(Remote Procedure Call Protocol)性能瓶頸,還有 neutron 里用到非常多的 namespace,namespace 資源有限且系統開銷比較大,這里也存在性能瓶頸。 從長遠來看,OVS 社區覺得Neutron 應該讓一個其它的項目來做虛擬網絡的控制平面,Neutron 只需要提供 API 的處理, 於是 OVS 社區於2015年1月推出了 OVN(Open Virtual Network),用來給OVS引入一個輕量級的控制平面,致力於提高基於OVS的OpenStack網絡方案的擴展性和易用性。
首先,看看OVN的實現架構:
其次,了解OVN組成結構: 圖5描述了OVN的總體實現架構,結合表3的描述,我們可以簡單了解OVN的每個組件的基本功能實現。 OVN 對運行平台沒有額外要求,只要能夠運行 OVS,就可以運行 OVN,所以 OVN 可以和 Linux,Docker,DPDK 還有 Hyper-V 兼容,從 OVS 升級到 OVN 也是非常容易的。 最后,了解一下引入OVN是如何簡化OVS在OpenStack中的集成。 OpenvSwitch OVN項目將租戶的概念引入了OVS,正式向neutron方向發展,提供對L2/L3網絡虛擬化的支持。引入OVN架構,通過替代OVS agent、L3 agent和DHCP agent, 從而簡化Open vSwitch在Neutron的集成。OVS集成OpenStack在沒有OVN和有OVN支持的兩種情況下的架構實現如下圖所示: 通過以上三個開源項目的簡單介紹,我們可以認識到,OVS作為一款優秀的開源Openflow交換機,在不斷提供豐富功能特性的同時, 也注重和控制器及雲管平台的對接支持,從而利用豐富的開源社區生態來組建實現靈活多樣的SDN/NFV應用場景。 |