OpenStack 網絡:Neutron 初探
2013 年 7 月 19 日是 OpenStack 誕生三週年的日子,在慶祝生日的同時,OpenStack 也將陸續發佈其新的發行版 Grizzly 和 Havana。OpenStack 作爲一個開放的系統,最主要是可以隨時選擇新的硬件供應商,當然也可以替換軟件技術服務的提供商,不用動應用。這是開源本身的優勢!本文會針對 OpenStack 的網絡項目:Neutron 進行一個入門級的介紹。
什麼是 OpenStack?
OpenStack 是一個開源的 IaaS(基礎設施及服務)雲計算平臺,讓任何人都可以自行建立和提供雲端運算服務,具體可以從 devstack 腳本開始熟悉它。OpenStack 由一系列相互關聯的項目提供雲基礎設施解決方案的各個組件,核心項目(9 個):計算 (Compute) - Nova,網絡和地址管理 - Neutron,對象存儲 (Object) - Swift,塊存儲 (Block) - Cinder,身份 (Identity) - keystone,鏡像 (Image) - Glance,UI 界面 (Dashboard) - Horizon,測量 (Metering) - Ceilometer,編配 (Orchestration) – Heat。如圖 1。
圖 1. OpenStack 幾個核心項目
最近發佈版本情況
2013 年 10 月 17 日,OpenStack 基金會發布了第八個大版本——Havana(上一個穩定版本 Grizzly 發佈於 2013 年 4 月 4 日),帶給企業客戶一些新的改進。這些增強包括新的服務,例如 OpenStack Metering 和 OpenStack Orchestration。此外還有對現有服務的改進,例如針對對象存儲的全局集羣以及針對塊存儲的服務質量能力,這讓 OpenStack 更好地幫助企業機構在雲中構建或者部署應用。總之,Havana 將爲企業提供他們需要用來轉型 OpenStack 的工具,從僅僅是一個 IaaS 技術轉變成爲 PaaS 或甚至是 SaaS 雲。預計 2014 年 4 月份發佈的版本——Icehouse 將孵化項目 Database Service (Trove),Bare Metal (Ironic) ,Queue Service (Marconi) 以及 Data Processing (Savannah) 。
Havana 的發佈有接近 400 多項新特性。最重要的是 OpenStack Orchestration 和 OpenStack Metering。這些是在 Grizzly 發佈週期內開發的,現在已經爲投產準備就緒。
以應用爲驅動的能力:OpenStack Orchestration-Heat 是一個以模板爲驅動的服務,用於針對應用描述和自動部署計算、存儲和網絡資源。新的針對對象存儲的全局集羣特性可以讓你削減成本並提高性能,在全球範圍內複製和交付數據,新的跨塊存儲的 QoS 功能讓你確保應用所需的性能。此外還添加了 Docker 支持以利用虛擬化加速應用部署。
增強的操作體驗:Dashboard 用戶界面也有所增強。OpenStack Metering-Ceilometer 現在提供了跨多種 OpenStack 服務的數據使用單一來源,針對像企業扣款和提供系統監控工具等活動。
更多企業級功能:OpenStack 不斷成熟,支持很多企業級功能,例如跨塊存儲的端到端加密,跨所有服務應用編程接口的 Secure Socket Layer (SSL),新的 VPN 和防火牆即服務(FaaS)。主流存儲和網絡提供商將繼續改進 OpenStack,併爲 OpenStack 編寫新的插件,讓企業更容易與他們的廠商合作,利用現有基礎架構。
在數字方面,OpenStack 社區已經累計擁有 1000 家貢獻者。這比 6 個月前發佈 Grizzly 的時候增加了 60%。有超過 145 個 OpenStack 生態系統成員利用開發者爲這次發佈做出貢獻,其中包括 Canonical、Dreamhost、eNovance、惠普、IBM、英特爾、Mirantis、Rackspace、Red Hat、SUSE 和雅虎。
Neutron 之前世今生
OpenStack 網絡服務,現已由之前的 Quantum 改名爲 Neutron。Neutron 是 OpenStack 核心項目之一,提供雲計算環境下的虛擬網絡功能。OpenStack Havana 版本的 Release Note 描述了 Neutron 新增加的功能:
- Multi-Vendor-Support:同時支持多種物理網絡類型,支持 Linux Bridge、Hyper-V 和 OVS bridge 計算節點共存;
- Neutron-Fwaas:支持防火牆服務;
- VPNaas:支持節點間 VPN 服務;
- More-Vendors:更多的網絡設備支持和開源 SDN 實現完善和提高,新增加了 ML2 (The Modular Layer2) 插件。
OpenStack nova-network 網絡模型
在 OpenStack 網絡組件沒有獨立出來之前,OpenStack 最初的 nova-network 網絡模型,如圖 2。
圖 2. 單一平面網絡
單一平面網絡的缺點:
- 存在單一網絡瓶頸,缺乏可伸縮性。
- 缺乏合適的多租戶隔離。
OpenStack Neutron 網絡模型
OpenStack nova-network 獨立成爲單獨的組件 Neutron 後,形象的網絡模型的多平面網絡、混合平面私有網絡。如圖 3,圖 4,圖 5,圖 6。
圖 3. 多平面網絡
圖 4. 混合平面私有網絡
圖 5. 通過私有網絡實現運營商路由功能
圖 6. 通過私有網絡實現每個租戶創建自己專屬的網絡區段
Neutron 網絡創建過程
Neutron 網絡目的是爲 OpenStack 雲更靈活地劃分物理網絡,在多租戶環境下提供給每個租戶獨立的網絡環境。另外,Neutron 提供 API 來實現這種目標。Neutron 中用戶可以創建自己的網絡對象,如果要和物理環境下的概念映射的話,這個網絡對象相當於一個巨大的交換機,可以擁有無限多個動態可創建和銷燬的虛擬端口。在 Horizon 上創建 Neutron 網絡過程如下:
- 首先管理員拿到一組可以在互聯網上尋址的 IP 地址,並且創建一個外部網絡和子網。
- 租戶創建一個網絡和子網。
- 租戶創建一個路由器並且連接租戶子網和外部網絡。
- 租戶創建虛擬機。
OpenStack 網絡類型
一個標準的 OpenStack 網絡設置有 4 個不同的物理數據中心網絡:
- 管理網絡:用於 OpenStack 各組件之間的內部通信。
- 數據網絡:用於雲部署中虛擬數據之間的通信。
- 外部網絡:公共網絡,外部或 internet 可以訪問的網絡。
- API 網絡:暴露所有的 OpenStack APIs,包括 OpenStack 網絡 API 給租戶們。
圖 7.OpenStack 網絡類型
圖 7.OpenStack 網絡類型
Neutron 服務網絡管理的三種模式
Flat 模式
Flat 模式和 FlatDHCP 模式其實區別不大,都是基於網橋網絡,只是 FLat 模式需要管理員手動配置(包括配置網橋和外部的 DHCP 設備)。
圖 8. Flat 網絡拓撲
FlatDHCP 模式
這種模式下與 Flat 模式不同的地方在於有一個 DHCP 進程,每一個運行 nova-network 進程的節點(網絡控制節點/nove-network 主機)就是一個單獨的網絡。Nova 會在 nova-network 主機建立網橋(默認名稱 br100,配置項 flat_network_bridge=br100),並給該網橋指定該網絡的網關 IP,同時 Nova 在網橋處起一個 DHCP 進程,最後,會建立 iptables 規則(SNAT/DNAT)使虛擬機能夠與外界通信,同時與一個 metadata 服務器通信以取得 cloud 內的信息。
計算節點負責創建對應節點的網橋,此時的計算節點網卡可以不需要 IP 地址,因爲網橋把虛擬機與 nove-network 主機連接在一個邏輯網絡內。虛擬機啓動時會發送 dhcpdiscover 以獲取 IP 地址。虛擬機通往外界的數據都要通過 nova-network 主機,DHCP 在網橋處監聽,分配 fixed_range 指定的 IP 段。如圖 9。
圖 9. FlatDHCP 網絡拓撲
這種部署方式的缺點----單節點故障、無二層隔離(即所有的虛擬機都在一個廣播域)。
VLAN 模式
VLAN(Virtual Local Area Network)的中文名爲"虛擬局域網"。VLAN 是一種將局域網設備從邏輯上劃分成一個個網段,從而實現虛擬工作組的新興數據交換技術。
VLAN 模式與 Flat 模式的區別
在 Flat 模式下,管理員的工作流程應該是這樣的:
-
爲所有租戶創建一個 IP 池:
nova-manage network create --fixed_range_v4=10.0.0.0/16 –label=public
- 創建租戶
- 租戶創建虛擬機,爲虛擬機分配 IP 池中的可用 IP
DB 中虛擬機信息可能如下圖,從圖中我們看到 2 個虛擬機處於同一網段。
圖 10
在 VLAN 模式下流程如下:
- 創建新的租戶,並記下租戶的標識
-
爲該租戶創建獨佔的 fixed_ip 段:
nova-manage network create --fixed_range_v4=10.0.1.0/24 --vlan=102 --project_id="tenantID"
- 租戶創建虛擬機,從租戶的私有 IP 段內分配 IP 給虛擬機
因此,與 Flat 模式相比,VLAN 模式爲網絡增加了:將網絡與租戶關聯和爲網絡分配一個 VLAN 號。
Neutron 總結
OpenStack 虛擬網絡 Neutron 把部分傳統網絡管理的功能推到了租戶方,租戶通過它可以創建一個自己專屬的虛擬網絡及其子網,創建路由器等等,在虛擬網絡功能的幫助下,基礎物理網絡就可以向外提供額外的網絡服務了,比如租戶完全可以創建一個屬於自己的類似於數據中心網絡的虛擬網絡。Neutron 提供了比較完善的多租戶環境下的虛擬網絡模型以及 API。像部署物理網絡一樣,使用 Neutron 創建虛擬網絡時也需要做一些基本的規劃和設計。
參考資料
學習
- DevStack 官網,你可以從 DevStack 腳本快速上手 OpenStack。
- Openstack Havana updates network,您可以瞭解 Havana 版本中網絡的更新情況。
- Neutron網絡入門,您可以 Neutron 的一些基本概念。
- Neutron之網絡負載均衡,您可以有關 Neutron 負載均衡的相關知識。
- SDN,您可以瞭解什麼是軟件定義網絡。
- OpenStack文檔改變歷史,您可以獲得 OpenStack 最近的文檔改變。
- OpenStack Grizzly支持大規模生產環境和更多網絡技術,您可以獲得有關 Grizzly 新增的一些功能介紹。
- Neutron 服務網絡管理模式。
-
developerWorks 雲計算站點 提供了有關雲計算的更新資源,包括
- 雲計算 簡介。
- 更新的 技術文章和教程,以及網絡廣播,讓您的開發變得輕鬆,專家研討會和錄製會議 幫助您成爲高效的雲開發人員。
- 連接轉爲雲計算設計的 IBM 產品下載和信息。
- 關於 社區最新話題 的活動聚合。