2012年10月17日 星期三

[轉載] 雲中的網絡:Open vSwitch帶來的巨變



計算,存儲,網絡,安全,是構建任何大型數據中心都繞不過去的四個問題。雲也不例外。在這個風起雲湧的雲時代,各廠商賽馬般發佈層出不窮的新技術,著實讓我們目不暇接。很多人昨天剛玩過Xen,今天看到Redhat宣稱KVM是其新的戰略方向,又忍不住把KVM拿來折騰一番。大家習慣性地把注意力都放在了「計算」上,積累了不少「服務器虛擬化」的經驗,卻不知不覺冷落了其餘三個方面。國外同行們熱議Software Defined NetworkSDN)和OpenFlow這些因為雲而瞬間火爆的技術時,我們還卯足了勁兒一頭紮進服務器虛擬化中不願出來。
搜索了一下,網絡上關於「網絡虛擬化」的文章很少。工作關係長期接觸這方面技術,不敢私藏,拿出來跟大家分享一下。水平有限,純屬拋磚引玉,大家扔磚頭時輕一點。歡迎討論,歡迎站短,歡迎郵件 cloudbengo@gmail.com
什麼是Open vSwitch?它能給雲帶來什麼?
官網首頁精煉地回答了這個問題:(翻譯自http://openvswitch.org/
Open vSwitch的目標,是做一個具有產品級質量的多層虛擬交換機。通過可編程擴展,可以實現大規模網絡的自動化(配置、管理、維護)。它支持現有標準管理接口和協議(比如netFlowsFlowSPANRSPANCLILACP802.1ag等,熟悉物理網絡維護的管理員可以毫不費力地通過Open vSwitch轉向虛擬網絡管理)。

 

圖一:Open vSwitch示意圖
官網的描述精準而抽象,來點通俗的,Open vSwitch是一個由Nicira Networks主導的開源項目,通過運行在虛擬化平台上的虛擬交換機,為本台物理機上的VM提供二層網絡接入, 跟雲中的其它物理交換機一樣工作在Layer 2層。Open vSwitch充分考慮了在不同虛擬化平台間的移植性,採用平台無關的C語言開發。最為人民群眾喜聞樂見的是,它遵循Apache2.0許可,不論你是自用還是商用都OK。而它的同類產品VMwarevDSvSphere Distributed VirtualSwitch),CiscoNexus 1000V都是收費的。更重要的是,雖然免費,其產品質量卻深得信賴。在2010Open vSwitch 1.0.0發佈之前,Citrix就宣佈在XenServer中將其作為默認組件。關於這一點,也許Nicira的身世可以給出一些解釋,它的投資人裡有Diane GreeneVMware聯合創始人)和Andy RachleffBenchmark Capital聯合創始人),經常聽朋友談起的幾個VMware網絡大牛也加盟其中,是目前硅谷最炙手可熱的SDN創業公司之一。
既然Citrix的企業級虛擬化產品都裝備了Open vSwitch,我們還有什麼理由懷疑它的可靠性呢?更何況它還是開源的!
你可能會問,我為什麼有必要在自己的雲架構中使用它呢?它能給我的雲帶來什麼?
OK。需求決定一切,如果你只是自己搞一台Host,在上面虛擬幾台VM做實驗。或者小型創業公司,通過在五台十台機器上的虛擬化,創建一些VM給公司內部開發測試團隊使用。那麼對你而言,網絡虛擬化的迫切性並不強烈。也許你更多考慮的,是VM的可靠接入:和物理機一樣有效獲取網絡連接,能夠RDP訪問。Linux Kernel自帶的橋接模塊就可以很好的解決這一問題。原理上講,正確配置橋接,並把VMvirtual nic連接在橋接器上就OK啦。很多虛擬化平台的早期解決方案也是如此,自動配置並以向用戶透明的方式提供虛擬機接入。如果你是OpenStackfans,那Nova就更好地幫你完成了一系列網絡接入設置。Open vSwitchWHY-OVS這篇文章中,第一句話就高度讚揚了Linux bridge
We love the existing network stack in Linux.  It is robust, flexible, and feature rich.  Linux already contains an in-kernel L2 switch (the Linux bridge) which can be used by VMs for inter-VM communication.  So, it is reasonable to ask why there is a need for a new network switch.
但是,如果你是大型數據中心的網絡管理員,一朵沒有網絡虛擬化支持的雲,將是無盡的噩夢。
在傳統數據中心中,網絡管理員習慣了每台物理機的網絡接入均可見並且可配置。通過在交換機某端口的策略配置,可以很好控制指定物理機的網絡接入,訪問策略,網絡隔離,流量監控,數據包分析,Qos配置,流量優化等。
有了雲,網絡管理員仍然期望能以per OS/per port的方式管理。如果沒有網絡虛擬化技術的支持,管理員只能看到被橋接的物理網卡,其上川流不息地跑著nVM的數據包。僅憑物理交換機支持,管理員無法區分這些包屬於哪個OS哪個用戶,只能望雲興嘆乎?簡單列舉常見的幾種需求,Open vSwitch現有版本很好地解決了這些需求。
   需求一:網絡隔離。物理網絡管理員早已習慣了把不同的用戶組放在不同的VLAN中,例如研發部門、銷售部門、財務部門,做到二層網絡隔離。Open vSwitch通過在host上虛擬出一個軟件交換機,等於在物理交換機上級聯了一台新的交換機,所有VM通過級聯交換機接入,讓管理員能夠像配置物理交換機一樣把同一台host上的眾多VM分配到不同VLAN中去;
   需求二:QoS配置。在共享同一個物理網卡的眾多VM中,我們期望給每台VM配置不同的速度和帶寬,以保證核心業務VM的網絡性能。通過在Open vSwitch端口上,給各個VM配置QoS,可以實現物理交換機的traffic queuingtraffic shaping功能。
   需求三:流量監控,NetflowsFlow物理交換機通過xxFlow技術對數據包採樣,記錄關鍵域,發往Analyzer處理。進而實現包括網絡監控、應用軟件監控、用戶監控、網絡規劃、安全分析、會計和結算、以及網絡流量數據庫分析和挖掘在內的各項操作。例如,NetFlow流量統計可以採集的數據非常豐富,包括:數據流時戳、源IP地址和目的IP地址、 源端口號和目的端口號、輸入接口號和輸出接口號、下一跳IP地址、信息流中的總字節數、信息流中的數據包數量、信息流中的第一個和最後一個數據包時戳、源AS和目的AS,及前置掩碼序號等。
xxFlow因其方便、快捷、動態、高效的特點,為越來越多的網管人員所接受,成為互聯網安全管理的重要手段,特別是在較大網絡的管理中,更能體現出其獨特優勢。
沒錯,有了Open vSwitch,作為網管的你,可以把xxFlow的強大淋漓盡致地應用在VM上!
   需求四:數據包分析,Packet Mirror物理交換機的一大賣點,當對某一端口的數據包感興趣時(for trouble shooting , etc),可以配置各種spanSPAN, RSPAN, ERSPAN),把該端口的數據包複製轉發到指定端口,通過抓包工具進行分析。Open vSwitch官網列出了對SPAN, RSPAN, and GRE-tunneled mirrors的支持。
關於具體功能,就不一一贅述了,感興趣的童鞋可以參考官網功能列表:http://openvswitch.org/features/
只是在Open vSwitch上實現物理交換機的現有功能?那絕對不是Nicira的風格。
雲中的網絡,絕不僅僅需要傳統物理交換機已有的功能。雲對網絡的需求,推動了Software Defined Network越來越火。而在各種SDN解決方案中,OpenFlow無疑是最引人矚目的。Flow Table + Controller的架構,為新服務新協議提供了絕佳的開放性平台。Nicira把對Openflow的支持引入了Open vSwitch。引入以下模塊:
         ovs-openflowd  ---  OpenFlow交換機;
         ovs-controller  --- OpenFlow控制器;
         ovs-ofctl  --- Open Flow 的命令行配置接口;
         ovs-pki  --- 創建和管理公鑰框架;
         tcpdump的補丁 --- 解析OpenFlow的消息;
不再展開,大家感興趣的話可以Google之。
Open Flow示意圖 -- 摘自Open Flow白皮書
需求決定產品,正是由於在企業級雲中,需要各種豐富的網絡功能,VMware才於n年前就推出了vSwitchvDS等虛擬交換機。正是看到了雲中的網絡是一塊大市場,Cisco才與VMware緊密合作,以partner的形式基於VMware kernel API開發出了自己的分佈式虛擬交換機Nexus 1000V(功能對應於VMwarevDS)。可惜的是,這兩款產品都是收費的。Citrix倒是基於Open vSwitch快速追趕,推出了自己的Distributed Virtual Switch解決方案。但是不好意思,也是收費的。開源雲的標竿OpenStack去年下半年推出了一項宏大的計劃,啟動了Quantum項目,志在通過引入Open vSwitch,為Open Stack Network模塊勾勒出「Connectivity as a service」的動人前景。有時間的話,會再單獨開一篇文章討論。
感謝開源,Open vSwitch是坐公交車的成本,進口跑車的體驗!還等什麼,在你的大型開源雲架構中,使用Open vSwitch吧!
(目前網上關於雲環境中網絡虛擬化的中文文章比較少,拋磚引玉一下,歡迎大家拍磚,歡迎留言提問或質疑,關於OVS,SDN,OpenFlow都行,大家在討論中一起進步)

1 則留言: