四種主要網絡IO虛擬化模型

本文主要爲你們簡要介紹VMware、Redhat、Citrix、Microsoft主要虛擬化廠商使用的4種主要的虛擬化IO模型 (emulation、para-virtualization、pass-through、SR-IOV)。主要爲你們穿針引線,信息量比較大,組織排 版有限,看官們將就點看着。安全

網絡I/O不可是物理服務器最容易出現的瓶頸,也是如今虛擬化技術最大的硬傷。隨着硬件虛擬化對網絡I/O的支持,虛擬化的網絡I/O模型也不斷的 進化,虛擬化的I/O性能也不斷提高。今天給你們分享VMware、Redhat、Citrix、Microsoft主流虛擬化解決方案採用的4種主流網 絡I/O模型,主要包括模型原理、模型優勢、模型缺點、模型對虛擬化遷移的支持。服務器

一、Emulation

原理:仿真(emulation)是一個徹底經過軟件程序來模擬硬件的技術。早期虛擬化都才採用這種方案來虛擬網絡設備。常見仿真軟件有QEMU、VMware WorkStation、VirtualBox。Emulation網絡模型圖以下:網絡

  不一樣虛擬化廠商的虛擬網卡產品都不盡相同性能

VMware Emulation類型網卡有:E1000(仿真intel 82545M千兆網卡)、Flexible、Vlance(仿真AMC 79C970 PCnet32 LANCE 10M網卡)、VMXNET(VMXNET一共有3個版本,分別是VMXNET、VMXNET二、VMXNET3;暫時沒有找到VMware的明確資料對 這三個版本進行分類。我的暫把VMXNET定爲emulation、VMXNET2和VMXNET3定義爲para-virtualization類型。 VMXNET3也支持部分SR-IOV功能)。google

Redhat的KVM和Citrix的XEN這類型網卡都是採用QEMU實現,在KVM和XEN上面可用的emulation網卡有:RTL8139(仿真RealTek Link 8139 100M網卡)、E1000(仿真intel 82545M千兆網卡)。spa

Microsoft Hyper-V Emulation類型網卡有:Intel/DEC 21140 100M網卡操作系統

優勢:軟件模擬不須要硬件支持,經過CPU計算來模擬,跟宿主機物理網卡隔離,沒有平臺要求。虛擬機操做系統不須要修改,模擬的都是常見網卡(好比:Intel E1000、RTL8139等),主流操做系統都已經自帶這些驅動,所以默認狀況下虛擬機不須要再安裝驅動。blog

缺點:CPU資源消耗大,尤爲當虛擬機數量多的時候。網卡性能通常,因爲是軟件模擬,只能模擬常見的、功能比較簡單的網卡。接口

虛擬機遷移支持:剝離了硬件要求,使用這類型可遷移性強。因爲XEN和KVM都是使用qemu仿真,因此這類型虛擬機在XEN和KVM之間混合遷移實現難度也不大。隊列

二、para-virtualization

原理:Para-virtualization又稱半虛擬化,最先由Citrix的Xen提出使用。在半虛擬化 模型中,物理硬件資源統一由 Hypervisor管理,由Hypervisor提供資源調用接口。虛擬子機經過特定的調用接口與Hypervisor通訊,而後完整I/O資源控制操 做。Para-virtualization模型圖以下:

Para-virtualization又稱半虛擬化,最開始由XEN提出的,XEN自己就是從虛擬化起家的。Para- virtualization模型下,虛擬子機的網卡驅動只能有Hypervisor廠商來開發,Redhat、VMware、Citrix、 Microsoft這幾大虛擬廠商都有各自的para-virtualization驅動。好比Redhat的KVM就叫virtio,VMware的有 VMXNET二、VMXNET 3,Citrix的XEN叫xen-pv,Mircrosoft暫時沒有找到(歡迎朋友們補充)。

優勢:我的認爲是一種改進版的emulation模型,可是因爲子機和Hypervisor之間通訊,性能比emulation要不少。

缺點:須要修改虛擬子機操做系統內核,添加不一樣Hypervisor廠商的網絡驅動。好比 Linux(Redhat和Novell)就在發行版 裏面 添加了Mircosoft的para-virtualizaiton網絡驅動,一樣Microsoft也在本身發行版裏面添加對KVM的virtio和 xen-pv驅動支持。

虛擬機遷移支持:雖然不一樣虛擬化廠商的para-virtualization方案都不相同,因爲主流操做系統都同時提供對這些方案的支持;因此這類型虛擬子機可遷移性也比較容易實現。

三、pass-through

原理:Hypervisor將一個PCI設備(能夠是網卡、USB、光驅)直接分配給指定虛擬子機單獨訪問。爲 了安全和穩定性考慮,pass- through使用一般結合intel VT-D(AMD也有相似技術)來使用,經過iommu保證虛擬子機之間內存訪問不衝突。這種技術在VMware上叫VMDirectPath I/O,其餘方案中沒有找到相關專門名詞。

優勢:性能好。單獨PCI設備分配給虛擬子機,虛擬子機直接跟物理設備通訊。

缺點:設備只能被一個虛擬子機使用,配置也比較複雜,首先須要在hypervisor將指定設備經過PCI id方式分配給指定虛擬子機,而後虛擬子機識別到設備再安裝驅動來使用。

遷移性:遷移性方面待研究,有興趣的朋友能夠補充完善。

四、SR-IOV

背景:pass-through模型讓虛擬子機直接使用物理設備,這樣使得虛擬子機的網絡性能達到最優。SR- IOV主要用來解決pass- through只能被一臺虛擬子機訪問的問題。SR-IOV標準由PCI-SIG,這個標準實現須要CPU、芯片組和PCI設備(主要是網卡等I/O資 源)協同在硬件層面實現,SR-IOV被不少人認爲是解決了虛擬化最後一千米的問題。模型圖以下:

原理:SR-IOV須要網卡硬件支持,支持SR-IOV功能的網卡能夠在Hypervior裏面註冊成多個網卡(每一個網卡都獨立的中斷ID、收發隊列、QOS管理機制)。每一個設備能夠經過pass-through方式分配給虛擬子機。

產品:常見就是基於intel 82599和82598芯片組的10Gb網卡。VMware、Redhat、Citrix和Microsoft都已經或者正在Hypervisor裏面添 加這個功能的支持。不一樣廠商虛擬化方案都不盡相同,有興趣能夠 在google裏面搜索到更多資料。

優勢:優勢不用說,X86虛擬化最新的IO虛擬化模型;虛擬機不但性能好,並且結合硬件功能,爲虛擬機IO管理提出了一個新方案。

缺點:待定

遷移性:SR-IOV同時須要硬件和軟件兩個層面支持,虛擬子機在相同網卡主機之間遷移時理論上不會有問題。具體還要看虛擬化廠商實現。

 

原文連接

相關文章
相關標籤/搜索