OpenStack網絡介紹(一)【What Is OpenStack Networking】

對於OpenStack網絡的情況,一直是一知半解。本文是翻譯OpenStack Networking的官方文檔,對OpenStack網絡的情況從入門開始講起。比較靠譜。水平有限,不妥之處請指正。


What Is OpenStack Networking?

OpenStack Networking API: Rich Control over Network Functionality

OpenStack網絡是一個虛擬網絡服務,它提供一種強力的API定義其他服務的設備(例如Openstack compute)的網絡連接和地址。

OpenStack Compute API抽象成一個虛擬機服務器用來描述計算資源。相似的,OpenStack Networking API有網絡,子網,端口的抽象,用來描述網絡資源。更詳細的:

ØNetwork. 一個二層的隔離,類似於VLAN在物理網絡中的作用。

ØSubnet.一塊IPV4或者ipv6的地址,與配置狀態有關。

ØPort. 單個設別連接到虛擬網絡的連接點,描述網絡的相關配置

你可以配置豐富的網絡拓撲結構,通過創建和配置NetworkSubnet,然後指示其他的OpenStack的服務,如OpenStack Compute將虛擬設備連接到這些網絡上的端口。特別的,OpenStack的網絡支持每個租戶有多個專用網絡(private network),並允許租戶選擇自己的IP解決方案(IP addressing scheme),即使與其他租戶使用這些IP地址重疊。應用這種先進網絡配置的情況下,可以開發多層web應用,並允許應用遷移到雲中,而不改變IP地址。

即使雲管理員不打算直接向租戶公開這些能力,OpenStack的網絡API作爲管理員API也是非常有用的,因爲它提供了更多的靈活性爲雲管理員可以自定義網絡產品。

OpenStack的網絡API也提供了一種機制,讓雲管理員可以通過API擴展暴漏額外的API功能。一般情況下,API的新能力,作爲一個API的擴展出現,並隨着時間的推移成爲OpenStack的網絡的核心API的一部分。

Plugin Architecture: Flexibility to Choose Different NetworkTechnologies

加強傳統的網絡解決方案,提供豐富的雲網絡是具有挑戰性的。傳統網絡的目的不是要擴展到雲的比例或自動配置。

最原始的OpenStack compute network實現的是一個非常基本的模型,通過LinuxVLANIP表來實現所有的隔離。OpenStack Network引入了插件的概念,這是一個可插拔的後端實現的OpenStack Network API。插件可以使用多種技術來實現API的請求邏輯。一些OpenStack的網絡插件可能會使用基本的Linux VLANIP表,而其他人可能使用更先進的技術,爲客戶提供類似的服務,如L2-in-L3、隧道或OpenFlow。現階段OpenStack支持的插件有:

ØOpen vSwitch. Documentation included in this guide.

ØCisco.Documented externally at:http://wiki.openstack.org/cisco-quantum

ØLinux Bridge. Documentation included in this guide andhttp://wiki.openstack.org/Quantum-Linux-Bridge-Plugin

ØNicira NVP. Documentation include in this guide,NVPProduct Overview, andNVP Product Support.

ØRyu.https://github.com/osrg/ryu/wiki/OpenStack

ØNEC OpenFlow.http://wiki.openstack.org/Quantum-NEC-OpenFlow-Plugin

ØBig Switch, Floodlight REST Proxy.http://www.openflowhub.org/display/floodlightcontroller/Quantum+REST+Proxy+Plugin

ØPLUMgridhttps://wiki.openstack.org/wiki/Plumgrid-quantum

ØHyper-V Plugin.

ØBrocade Plugin.

ØMidonet Plugin.

插件可以有不同的屬性,在不同的硬件要求,特點,性能,規模,操作工具情況下支持不同插件,這使雲管理員需要權衡不同的選項,並決定哪個網絡技術的部署是正確的。

Table 1.1. Plugin   Compatibility with OpenStack Compute Drivers


Libvirt   (KVM/QEMU)

XenServer

VMware

Hyper-V

Bare-metal

PowerVM

Open vSwitch

Yes






Linux Bridge

Yes






Cisco

Yes






Nicira NVP

Yes

Yes

Yes




Ryu

Yes






NEC

Yes






Bigswitch /  Floodlight

Yes






Hyper-V




Yes



Brocade

Yes






Midonet

Yes






Plumgrid

Yes






OpenStack Networking Architecture

這部分描述OpenStack Networking 高層次的組件的部署。

Overview

在部署OpenStack Networking之前,瞭解解決方案的不同的組件,理解這些組件之間(agentl3dhcp)是如何交互並瞭解這些組件如何與其他OpenStack服務(computecinder等)交互是非常有用的。

OpenStack Networking 是一個獨立的服務,就像Openstack的其他服務一樣例如OpenStack ComputeOpenStack Image serviceOpenStack Identity serviceOpenStack Dashboard等。和這些服務一樣,部署OpenStack Networking經常涉及部署一些進程在不同的host上。

提供OpenStack Networking的主要進程是quantum-server,這是一個Python守護進程,它公開OpenStack的網絡API,將用戶請求傳遞到OpenStack的網絡插件,進行額外的處理。通常情況下,這個插件需要訪問持久存儲到數據庫,類似OpenStack的其他服務。

如果使用控制節點來運行集中OpenStack Compute組件,你可以在同一主機上部署OpenStack的網絡服務器。不過,OpenStack Networking是完全獨立的,並可以部署在自己的服務器。 OpenStack的網絡還包括額外的代理可能需要根據具體情況進行部署:

Øplugin agent (quantum-*-agent).運行在每個虛擬機管理程序來執行本地vswitch配置。代理運行取決於哪個插件,你所使用的一些插件,不需要代理。

Ødhcp agent (quantum-dhcp-agent). 爲租戶網絡提供DHCP服務。這個agent對所有插件都是一樣的。

Øl3 agent(quantum-l3-agent).提供L3/NAT,爲租戶網絡上的虛擬機提供外部網絡訪問服務。對所有插件都一樣。

   這些agent與主要的quantum-server進程通過如下的方法交互:

Ø通過RPC,例如rabbitmq或者qpid

Ø通過標準的OpenStack Networking APIjson

OpenStack的網絡依賴於OpenStack的身份項目(keystone),所有的API請求都需要進行身份驗證和授權。

OpenStack computeOpenStack networking的交互,通過調用標準的API。例如,創建一個虛擬機時,nova-computeOpenStack Networking API進行通信,將虛擬機的虛擬網卡plug到一個特定的網絡上的。

OpenStack DashboardHorizon)與OpenStack的網絡API的集成,允許管理員和租戶用戶,創建和管理網絡服務,通過Horizon GUI

Place Services on Physical Hosts

與其他的Openstack服務一樣,Openstack networking爲雲管理員提供靈活的決定獨自的服務應該在那個物理設備上運行的權利。極限情況下,所有的所需要的服務可以在一個單個物理節點上運行,用來做評測。另一方面,每個服務都可以由自己的屋裏host,某些情況下服務可以再多個節點上做冗餘部署。詳情請看http://docs.openstack.org/grizzly/openstack-network/admin/content/ch_high_avail.html

本指南中,我們主要集中介紹最標準架構,包含一個雲控制節點,一個網絡節點和一系列Hypervisors用來運行虛擬機,即計算節點。控制節點和網絡節點在簡單部署中可以被合併。儘管如果你期望vm通過Internet發送大量的通信流量,我們建議網絡節點被獨立部署。否則可能會在quantum-l3-agentOpenstack的其他服務之間造成潛在CPU競爭。

Network Connectivity for Physical Hosts

 

   一個標準的openstack networking的安裝需要以下四個不同的物理數據中心網絡:

ØManagement network. 用於Openstack內部組件的通信。這個網絡上的IP地址只在整個數據中心內是可達的。

ØData network. 用於雲中部署的虛擬機之間的數據通信,這個網絡中的IP地址的需求取決於Openstack networking使用的插件。

ØExternal network. 用來提供在某些場景下虛擬機與外部Internet的連接。這個網絡中的IP得知需要對Internet上的每個人都是可達的。

ØAPI network. 暴漏所有的OpenstackAPI藉口,包含Openstack networking api,對租戶。這個網絡中的IP地址也應該是對Internet上的每個人都可達。本網絡可能與external network是一個網絡,由於external network可以創建一個子網,這個子網中的ip分配範圍比整個IP塊分配的範圍小。


今天就翻譯到這裏。。有不恰當的地方請大牛們指點。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章