上周我們已經把SDN和云計算的關系做了梳理,其實聯系緊密的也就在SDN Controller和云平臺這塊。至于為何要對接?對接的意義在哪里?這些問題可以在上篇文章中找到答案,今天我們只講對接的技術干貨。
云平臺介紹
云平臺,目前主流的開源項目有OpenStack和CloudStack,相比之下,OpenStack門檻高,可實現的效果更好,也是目前被各大廠商商用化最多的開源云平臺之一。所以下文主要講解SDN Controller和OpenStack的對接。
OpenStack:2010年7月出生,按照26個英文字母進行生命周期迭代命名。目前最新發布的是N版本(Newton),商用部署更多的是L版本和M版本。
隨著其功能的完善,目前有6個核心服務和10個可選服務。我們主要看看6個核心服務:
OpenStack Compute:主要是虛擬機的管理,代碼命名為Nova
OpenStack Storage:Object存儲和Block存儲管理,代碼命名分別為Swift和Cinder
OpenStack Networking:可插拔的,由API驅動的網絡和IP管理,代碼命名Neutron
共享服務:包含身份認證(命名Keystone),image管理(命名Glance),WEB接口等。
OpenStack可以控制數據中心大量的存儲,計算和網絡資源,并且所有的管理都可以通過Dashboard來統一完成完成。
6大核心服務中,與我們今天主題聯系最緊密就是Neutron,其包含了和物理網絡對接調用的所有組件,具體可參考下圖:
Neutron Server:接收API請求,通過隊列調用本地代理進行L3,NAT,DHCP,橋接等的設置,并且將網絡服務請求通過核心插件和服務插件中繼到相應的插件進行配置。
本地提供了DHCP agent,L3 agent和其他的L2 agent,用于提供公共的基礎服務。
通過ML2插件框架實現不同的廠商插件,并且支持相同層次的不同插件共存。
SDN Controller介紹
上篇文章我們提到,SDN網絡中最重要的是SDN Controller,全網流量的調度,以及和網絡之外的應用進行對接基本都要靠Controller來完成。(當然云平臺也可以直接調用網絡設備,但是復雜且規模受限,除非實驗研究,否則不這么用)。
對于SDN Controller,業界也有很多開源的項目,各有風韻,具體可品嘗之前一篇文章《這么多控制,你該如何選擇》。今天主要講ODL(OpenDaylight),他是目前在企業環境下被各大網絡廠商商用的主要開源控制器。銳捷網絡的開放網絡控制器(RG-ONC)也是基于這個平臺推出,其主要包含3層,具體架構如下:
基礎架構層:主要是傳統網絡設備、SDN網絡設備的基礎組網,包含交換、路由、安全、網關等多種物理設備和虛擬設備。
Controller層:主要提供南北向的API接口,南向接口負責和基礎網絡設備通信、調用,北向接口負責和上層應用通信、調用。同時,控制器會提供Web管理平臺,所有SDN網絡功能均在這個界面上進行部署、調用,網絡功能之間的獨立性、易用性、可擴展性是衡量SDN Controller的關鍵指標。
應用層:主要包含云平臺、網管、以及用戶自己開發的各種應用。通過SDN Controller提供的北向API接口進行資源調用。所以API接口的開放性、通用型、易用性是衡量SDN Controller的又一個關鍵指標。
SDN Controller和 OpenStack對接
上面我們已經把對接的范圍做了聚焦,云平臺是主流的OpenStack平臺,SDN Controller是主流的ODL。對于這兩個開源項目,在其社區中,已經提供了標準的對接接口。廠商的商用一般不會改變對外的接口,所有深度開發主要局限在接口之內,以此保證不同品牌的云平臺和控制器之間的兼容性。具體的對接模型如下:
里面的關鍵就是Networking-odl插件,云平臺和SDN控制器有一方需要提供這個插件,并安裝到OpenStack平臺上。Networking-odl包含OpenDaylight MechanismDriver和OpenDaylight L3RouterPlugin。
OpenDaylightMechanismDriver:是OpenDaylight的ML2 MechanismDriver,通過類似REST proxy的方式實現了ML2 MechanismDriver功能。它把MechchanismDriver的所有調用轉化成Neutron API傳遞給OpenDaylight,由OpenDaylight的NB REST Service(NeutronAPIService)處理后返回。
OpenDaylightL3RouterPlugin:是OpenDaylight的L3 Router plugin,實現基本router、ext-gw-mode、extraroute、dvr、L3-ha等功能。OpenDaylightL3RouterPlugin本身也只是實現了類似REST proxy的功能,它以現有的OpenStack L3 Router plugin為基礎,封裝了一層L3調用轉Neutron API到ODL的功能。
云平臺和SDN控制器之間的所有調用信息基本都是通過這個組件。對接完成后,便可以在云平臺上依次創建網絡、子網、路由、路由和子網綁定、云主機等。好了,今天的對接就說到這里,下期我們再進一步,聊聊云對接的具體操作和效果。