官术网_书友最值得收藏!

3.4 網絡虛擬化

隨著計算虛擬化技術和存儲虛擬化技術的日漸成熟,網絡虛擬化成為又一個熱點。簡單地講,網絡虛擬化是指把邏輯網絡從底層的物理網絡分離開來,包括網卡的虛擬化、網絡的虛擬接入技術、覆蓋網絡交換,以及軟件定義的網絡(SDN/OpenFlow)等。 

網絡虛擬化的概念已經產生比較久了,VLAN、VPN和VPLS等都可以歸為網絡虛擬化的技術。在云計算的發展中,虛擬化技術一直是重要的推動因素。作為基礎構架,服務器和存儲的虛擬化已經發展得有聲有色,而同作為基礎構架的網絡卻還是一直沿用老的套路。在這種環境下,網絡確實期待一次變革,使之更加符合云計算和互聯網發展的需求。在云計算的大環境下,網絡虛擬化包含的內容有了很大增加(如動態性、多租戶模式等)。 

3.4.1 網卡虛擬化

多個虛擬機共享服務器中的物理網卡,需要一種機制既能保證I/O的效率,又能保證多個虛擬機共享使用物理網卡。I/O虛擬化的出現就是為了解決這類問題。I/O虛擬化包括從CPU到設備的一攬子解決方案。 

從CPU的角度看,要解決虛擬機訪問物理網卡等I/O設備的性能問題,能做的就是直接支持虛擬機內存到物理網卡的DMA操作。Intel的VT-d技術及AMD的IOMMU技術通過DMA Remapping機制來解決這個問題。DMA Remapping機制主要解決了兩個問題,一方面為每個VM創建了一個DMA保護域并實現了安全的隔離,另一方面提供一種機制將虛擬機的物理地址翻譯為物理機的物理地址。 

從虛擬機對網卡等設備訪問角度看,傳統虛擬化的方案是虛擬機通過Hypervisor來共享地訪問一個物理網卡,Hypervisor需要處理多虛擬機對設備的并發訪問和隔離等。具體的實現方式是通過軟件模擬多個虛擬網長(完全獨立于物理網卡),所有的操作都在CPU與內存進行。這樣的方案滿足了多租戶模式的需求,但是犧牲了整體的性能,因為Hypervisor很容易形成一個性能瓶頸。為了提高性能,一種做法是虛擬機繞過Hypervisor直接操作物理網卡,這種做法通常稱為PCI pass through,VMware、XEN和KVM都支持這種技術。但這種做法的問題是虛擬機通常需要獨占一個PCI插槽,不是一個完整的解決方案,成本較高且擴展性不足。 

最新的解決方案是物理設備(如網卡)直接對上層操作系統或Hypervisor提供虛擬化的功能,一個以太網卡可以對上層軟件提供多個獨立的虛擬的PCIe設備,并提供虛擬通道來實現并發訪問,這些虛擬設備擁有各自獨立的總線地址,從而可以提供對虛擬機I/O的DMA支持。這樣一來,CPU得以從繁重的I/O中解放出來,能夠更加專注于核心的計算任務(如大數據分析)。這種方法也是業界主流的做法和發展方向,目前已經形成了標準。 

3.4.2 虛擬交換機

在虛擬化的早期階段,由于物理網卡并不具備為多個虛擬機服務的能力,為了將同一物理機上的多臺虛擬機接入網絡,引入了虛擬交換機(Virtual Switch)的概念。通常也稱為軟件交換機,以區別于硬件實現的網絡交換機。虛擬機通過虛擬網片接入到虛擬交換機,然后通過物理網卡外連到外部交換機,從而實現了外部網絡接入,例如VMware vSwitch見圖3-6)就屬于這一類技術。 

978-7-111-53304-7-Chapter03-6.jpg

圖3-6 VMware vSwitch結構圖 

這樣的解決方案也帶來一系列的問題。首先,一個很大的顧慮就是性能問題,因為所有的網絡交換都必須通過軟件模擬。研究表明:一個接入10~15臺虛擬機的軟件交換機,通常需要消耗10%~15%的主機計算能力;隨著虛擬機數量的增長,性能問題無疑將更加嚴重。其次,由于虛擬交換機工作在第二層,無形中也使得第二層子網的規模變得更大。更大的子網意味著更大的廣播域,對性能和管理來說都是不小的挑戰。最后,由于越來越多的網絡數據交換在虛擬交換機內進行,傳統的網絡監控和安全管理工具無法對其進行管理,也意味著管理和安全的復雜性大大增加了。 

3.4.3 接入層的虛擬化

在傳統的服務器虛擬化方案中,從虛擬機的虛擬網卡發出的數據包在經過服務器的物理網卡傳送到外部網絡的上聯交換機后,虛擬機的標識信息被屏蔽掉了,上聯交換機只能感知從某個服務器的物理網卡流出的所有流量,而無法感知服務器內某個虛擬機的流量,這樣就不能從傳統網絡設備層面來保證服務質量和安全隔離。虛擬接入要解決的問題是要把虛擬機的網絡流量納入傳統網絡交換設備的管理之中,需要對虛擬機的流量做標識。 

3.4.4 覆蓋網絡虛擬化

虛擬網絡并不是全新的概念,事實上人們所熟知的VLAN就是一種已有的方案。VLAN的作用是在一個大的物理二層網絡里劃分出多個互相隔離的虛擬三層網絡,這個方案在傳統的數據中心網絡中得到了廣泛的應用。這里就引出了虛擬網絡的第一個需求—隔離;VLAN雖然很好地解決了這個需求,然而由于內在的缺陷,VLAN無法滿足第二個需求,即可擴展性(支持數量龐大的虛擬網絡)。VLAN使用一個12位的二進制數字來標識子網,即子網的數量最多只有4096個。而隨著云計算的興起,一個數據中心需要支持上百萬的用戶,每個用戶需要的子網可能也不止一個。在這樣的需求背景下,VLAN已經遠遠不敷使用,需要重新思考虛擬網絡的設計與實現。當虛擬數據中心開始普及后,其本身的一些特性也帶來對網絡新的需求。物理機的位置一般是相對固定的,虛擬化方案的一個很大特性在于虛擬機可以遷移。當虛擬機的遷移發生在不同網絡和不同數據中心之間時,對網絡產生了新的要求,比如需要保證虛擬機的IP在遷移前后不發生改變,需要保證虛擬機內運行在第三層(鏈路層)的應用程序也在遷移后仍可以跨越網絡和數據中心進行通信等。這又引出了虛擬網絡的第三個需求——支持動態遷移。 

覆蓋網絡虛擬化(Network Virtualization Overlay)就是應以上需求而生的,它可以更好地滿足云計算和下一代數據中心的需求。覆蓋網絡虛擬化為用戶的虛擬化應用帶來了許多好處(特別是對大規模的、分布式的數據處理),包括:①虛擬網絡的動態創建與分配;②虛擬機的動態遷移(跨子網、跨數據中心);③一個虛擬網絡可以跨多個數據中心;④將物理網絡與虛擬網絡的管理分離;⑤安全(邏輯抽象與完全隔離)。 

3.4.5 軟件定義的網絡(SDN) 

OpenFlow和SDN盡管不是專門為網絡虛擬化而生,但是它們帶來的標準化和靈活性卻給網絡虛擬化的發展帶來無限可能。OpenFlow起源于斯坦福大學的Clean Slate項目組,其目的是要重新發明因特網,旨在改變現有的網絡基礎架構。2006年,斯坦福的學生Martin Casado領導的Ethane項目,試圖通過一個集中式的控制器,讓網絡管理員可以方便地定義基于網絡流的安全控制策略,并將這些安全策略應用到各種網絡設備中,從而實現對整個網絡通信的安全控制。受此項目啟發,研究人員發現如果將傳統網絡設備的數據轉發(Data plane)和路由控制(Control plane)兩個功能模塊相分離,通過集中式的控制器(Controller)以標準化的接口對各種網絡設備進行管理和配置,這將為網絡資源的設計、管理和使用提供更多的可能性,從而更容易推動網絡的革新與發展。 

OpenFlow可能的應用場景包括:①校園網絡中對實驗性通信協議的支持;②網絡管理和訪問控制;③網絡隔離和VLAN;④基于Wi-Fi的移動網絡;⑤非IP網絡;⑥基于網絡包的處理。 

3.4.6 對大數據處理的意義

相對于普通應用,大數據的分析與處理對網絡有著更高的要求,涉及從帶寬到延時,從吞吐率到負載均衡,以及可靠性、服務質量控制等方方面面。同時隨著越來越多的大數據應用部署到云計算平臺中,對虛擬網絡的管理需求就越來越高。首先,網絡接入設備虛擬化的發展,在保證多租戶服務模式的前提下,還能同時兼顧高性能與低延時、低CPU占用率。其次,接入層的虛擬化保證了虛擬機在整個網絡中的可見性,使得基于虛擬機粒度(或大數據應用粒度)的服務質量控制成為可能。覆蓋網絡的虛擬化,一方面使得大數據應用能夠得到有效的網絡隔離,更好地保證了數據通信的安全;另一方面也使得應用的動態遷移更加便捷,保證了應用的性能和可靠性。軟件定義的網絡更是從全局的視角來重新管理和規劃網絡資源,使得整體的網絡資源利用率得到優化利用。總之,網絡虛擬化技術通過對性能、可靠性和資源優化利用的貢獻,間接提高了大數據系統的可靠性和運行效率。 

主站蜘蛛池模板: 三门县| 望谟县| 龙胜| 兖州市| 庆阳市| 纳雍县| 长汀县| 洪泽县| 梨树县| 藁城市| 谢通门县| 辛集市| 太白县| 德兴市| 介休市| 合川市| 梧州市| 抚顺市| 西乡县| 洪江市| 台中市| 新建县| 怀柔区| 怀柔区| 穆棱市| 会理县| 牙克石市| 静宁县| 卢龙县| 仙居县| 长春市| 儋州市| 麦盖提县| 北宁市| 潞城市| 怀安县| 方山县| 龙南县| 高唐县| 枝江市| 庆云县|