網絡虛擬化——正在進行的網絡變革 |
發布時間: 2012/8/25 18:50:45 |
接觸網絡虛擬化純屬偶然。作為研究院微博五毛小分隊的成員,撰出一條微博是每天的任務。那天無意中抓取了一條新聞:Xsigo公司推出了業界第一個數據中心網絡全虛擬化解決方案。巧的是Xsigo公司的方案是基于Infiniband技術的,而我最近的項目使我對Infiniband略懂,所以就重點關注了一下。這一關注不要緊,才發現里面水很深。不管是傳統IT豪強還是網絡巨人都對這一領域虎視眈眈,謀篇定局,更有無數的創業者們在此展開深耕。 抱著對技術要略懂的心態,我入水一探究竟。這篇博文算是對我這次涉水的總結,網絡虛擬化發展到現在牽涉的技術非常多,每種技術都可以單獨寫一篇文章來介紹,限于我的精力和知識水平只能給大家做個整體的簡單介紹,不足之處還請各位批評指正。如果讀者對某種技術感興趣可以搜索相關資料做更詳細的了解。 什么是網絡虛擬化 首先我們需要明確一個問題,什么是網絡虛擬化,網絡虛擬化簡單來講是指把邏輯網絡從底層的物理網絡分離開來。這個概念產生的比較久了,VLAN,VPN, VPLS等 都可以歸為網絡虛擬化的技術。近年來,云計算的浪潮席卷IT界。幾乎所有的IT基礎構架都在朝著云的方向發展。在云計算的發展中,虛擬化技術一直是重要的推動因素。作為基礎構架,服務器和存儲的虛擬化已經發展的有聲有色,而同作為基礎構架的網絡卻還是一直沿用老的套路。在這種環境下,網絡確實期待一次變革,使之更加符合云計算和互聯網發展的需求。云計算的大環境下,網絡虛擬化的定義沒有變,但是其包含的內容卻大大增加了。 云計算環境下的網絡虛擬化需要解決端到端的問題,筆者將其歸納為三個部分: (一)第一部分是服務器內部。隨著越來越多的服務器被虛擬化,網絡已經延伸到Hypervisor內部,網絡通信的端已經從以前的服務器變成了運行在服務器中的虛擬機,數據包從虛擬機的虛擬網卡流出,通過Hypervisor內部的虛擬交換機,在經過服務器的物理網卡流出到上聯交換機。在整個過程中,虛擬交換機,網卡的I/O問題以及虛擬機的網絡接入都是研究的重點。 (二)第二部分是服務器到網絡的連接。10Gb以太網 和Infiniband等技術的發展使一根連接線上承載的帶寬越來越高。為了簡化,通過一種連接技術聚合互聯網絡和存儲網絡成為了一個趨勢。 (三)第三部分是網絡交換,需要將物理網絡和邏輯網絡有效的分離,滿足云計算多租戶,按需服務的特性,同時具有高度的擴展性。 下面我就圍繞這三個方面來講述網絡虛擬化中的一些主要技術和標準。 服務器內部 I/O虛擬化 多個虛擬機共享服務器中的物理網卡,需要一種機制既能保證I/O的效率,又要保證多個虛擬機對用物理網卡共享使用。I/O虛擬化的出現就是為了解決這類問題。I/O虛擬化包括了從CPU到設備的一攬子解決方案。 從CPU的角度看,要解決虛擬機訪問物理網卡等I/O設備的性能問題,能做的就是直接支持虛擬機內存到物理網卡的DMA操作。Intel的 VT-d技術及 AMD 的IOMMU技術通過DMARemapping 機制來解決這個問題。DMARemapping機制主要解決了兩個問題,一方面為每個VM創建了一個DMA保護域并實現了安全的隔離,另一方面提供一種機制是將虛擬機的GuestPhysical Address翻譯為物理機的HostPhysical Address。 從虛擬機對網卡等設備訪問角度看,傳統虛擬化的方案是虛擬機通過Hypervisor來共享的訪問一個物理網卡,Hypervisor需要處理多虛擬機對設備的并發訪問和隔離等。這樣Hypervisor容易行成一個性能瓶頸。為了提高性能,一種 做法是虛擬機繞過Hypervisor直接操作物理網卡,這種做法通常稱作PCIpass through,VMware,Xen和KVM都支持這種技術。但這種做法的問題是虛擬機通常需要獨占一個PCI插槽,不是一個完整的解決方案,成本較高且擴展性不足。 另一種做法是設備如網卡直接對上層操作系統或Hypervisor提供虛擬化的功能,一個以太網卡可以對上層軟件提供多個獨立的虛擬的PCIe設備并提供虛擬通道來實現并發的訪問。這種方法也是業界主流的做法和發展方向,目前已經形成了標準,主要包括SR-IOV(SingleRoot IO Virtualization)和MR-IOV(Multi-RootIO Virtualization)。這方面的技術在網上已有很好的文章來做介紹,推薦想進一步了解的同學讀一讀:http://t.cn/aK72XS 虛擬接入 在傳統的服務器虛擬化方案中,從虛擬機的虛擬網卡發出的數據包在經過服務器的物理網卡傳送到外部網絡的上聯交換機后,虛擬機的標識信息被屏蔽掉了,上聯交換機只能感知從某個服務器的物理網卡流出的所有流量而無法感知服務器內某個虛擬機的流量,這樣就不能從傳統網絡設備層面來保證QoS和安全隔離。虛擬接入要解決的問題是要把虛擬機的網絡流量納入傳統網絡交換設備的管理之中,需要對虛擬機的流量做標識。在解決虛擬接入的問題時,思科和惠普分別提出了自己的解決方案。思科的是VN-Tag, 惠普的方案是VEPA(VirtualEthernet Port Aggregator)。為了制定下一代網絡接入的話語權,思科和惠普這兩個巨頭在各自的方案上都毫不讓步,紛紛將自己的方案提交為標準,分別為802.1Qbh和802.1Qbg。關于虛擬接入也有一篇很好的文章來介紹,想深入了解的可以看看:http://t.cn/hGWnOQ 網絡連接 網絡連接技術一直都在追求更高的帶寬中發展。比如Infiniband和10Gb以太網。在傳統的企業級數據中心IT構架中,服務器到存儲網絡和互聯網絡的連接是異構和分開的。存儲網絡用光纖,互聯網用以太網線(ISCSI雖然能夠在IP層上跑SCSI,但是性能與光纖比還是差的很遠)。數據中心連接技術的發展趨勢是用一種連接線將數據中心存儲網絡和互聯網絡聚合起來,使服務器可以靈活的配置網絡端口,簡化IT部署。以太網上的FCOE技術和Infiniband技術本身都使這種趨勢成為可能。 Infiniband Infiniband 技術產生于上個世紀末,是由Compaq、惠普、IBM、戴爾、英特爾、微軟和Sun七家公司共同研究發展的高速先進的I/O標準。最初的命名為SystemI/O,1999年10月,正式改名為InfiniBand。InfiniBand是一種長纜線的連接方式,具有高速、低延遲的傳輸特性。基于InfiniBand技術的網卡的單端口帶寬可達20Gbps,最初主要用在高性能計算系統中,近年來隨著設備成本的下降,Infiniband也逐漸被用到企業數據中心。為了發揮Infiniband設備的性能,需要一整套的軟件棧來驅動和使用,這其中最著名的就是OFED(OpenFabrics Enterprise Distribution) ,它基于Infiniband設備實現了RDMA(remote direct memoryaccess). RDMA的最主要的特點就是零拷貝和旁路操作系統,數據直接在設備和應用程序內存之間傳遞,這種傳遞不需要CPU的干預和上下文切換。OFED還實現了一系列的其它軟件棧:IPoIB(IP over Infiniband), SRP(SCSI RDMA Protocol)等,這就為Infiniband聚合存儲網絡和互聯網絡提供了基礎。OFED由OpenFabrics聯盟負責開發。OpenFabrics最初叫做OpenIB,從2006年開始OpenIB在Infiniband之外也開始支持以太網,業務做的大了名字也從OpenIB改為OpenFabrics。OFED現已經被主流的Linux發行版本支持,并被整合到微軟的windowsserver中。 本文出自:億恩科技【www.laynepeng.cn】 |