本文主要为大家简要介绍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模型,主要包括模型原理、模型优点、模型缺点、模型对虚拟化迁移的支持。

  这4个主流网络I/O模型分别是:

  1、Emulation

原理:仿真(emulation)是一个完全通过软件程序来模拟硬件的技术。早期虚拟化都才采用这种方案来虚拟网络设备。常见仿真软件有QEMU、VMware WorkStation、VirtualBox。Emulation网络模型图如下:

  不同虚拟化厂商的虚拟网卡产品都不尽相同。

  VMware Emulation类型网卡有:E1000(仿真intel 82545M千兆网卡)、Flexible、Vlance(仿真AMC 79C970 PCnet32 LANCE 10M网卡)、VMXNET(VMXNET一共有3个版本,分别是VMXNET、VMXNET2、VMXNET3;暂时没有找到VMware的明确资料对这三个版本进行分类。个人暂把VMXNET定为emulation、VMXNET2和VMXNET3定义为para-virtualization类型。VMXNET3也支持部分SR-IOV功能)。

  Redhat的KVM和Citrix的XEN这类型网卡都是采用QEMU实现,在KVM和XEN上面可用的emulation网卡有:RTL8139(仿真RealTek Link 8139 100M网卡)、E1000(仿真intel 82545M千兆网卡)。

  Microsoft Hyper-V Emulation类型网卡有:Intel/DEC 21140 100M网卡

优点:软件模拟不需要硬件支持,通过CPU计算来模拟,跟宿主机物理网卡隔离,没有平台要求。

  虚拟机操作系统不需要修改,模拟的都是常见网卡(比如:Intel E1000、RTL8139等),主流操作系统都已经自带这些驱动,因此默认情况下虚拟机不需要再安装驱动。

缺点:CPU资源消耗大,尤其当虚拟机数量多的时候。网卡性能一般,由于是软件模拟,只能模拟常见的、功能比较简单的网卡。

虚拟机迁移支持:

  剥离了硬件要求,使用这类型可迁移性强。由于XEN和KVM都是使用qemu仿真,所以这类型虚拟机在XEN和KVM之间混合迁移实现难度也不大。

2、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的有VMXNET2、VMXNET 3,Citrix的XEN叫xen-pv,Mircrosoft暂时没有找到(欢迎朋友们补充)。

优点:个人认为是一种改进版的emulation模型,但是由于子机和Hypervisor之间通信,性能比emulation要很多。

缺点:需要修改虚拟子机操作系统内核,添加不同Hypervisor厂商的网络驱动。比如Linux(Redhat和Novell)就在发行版里面添加了Mircosoft的para-virtualizaiton网络驱动,同样Microsoft也在自己发行版里面添加对KVM的virtio和xen-pv驱动支持。

  虚拟机迁移支持:虽然不同虚拟化厂商的para-virtualization方案都不相同,由于主流操作系统都同时提供对这些方案的支持;所以这类型虚拟子机可迁移性也比较容易实现。

3、pass-through

原理:Hypervisor将一个PCI设备(可以是网卡、USB、光驱)直接分配给指定虚拟子机单独访问。为了安全和稳定性考虑,pass-through使用通常结合intel VT-D(AMD也有类似技术)来使用,通过iommu保证虚拟子机之间内存访问不冲突。这种技术在VMware上叫VMDirectPath I/O,其他方案中没有找到相关专门名词。

优点:性能好。单独PCI设备分配给虚拟子机,虚拟子机直接跟物理设备通信。

缺点:设备只能被一个虚拟子机使用,配置也比较复杂,首先需要在hypervisor将指定设备通过PCI id方式分配给指定虚拟子机,然后虚拟子机识别到设备再安装驱动来使用。

  迁移性:迁移性方面待研究,有兴趣的朋友可以补充完善。

4、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里面添加这个功能的支持。下面是一篇基于KVM的SR-IOV性能测试报告。(http://www.principledtechnologies.com/clients/reports/Red%20Hat/RHEL6_SR-IOV_DB0111.pdf),不同厂商虚拟化方案都不尽相同,有兴趣可以在google里面搜索到更多资料。

优点:优点不用说,X86虚拟化最新的IO虚拟化模型;虚拟机不但性能好,而且结合硬件功能,为虚拟机IO管理提出了一个新方案。

缺点:待定

迁移性:SR-IOV同时需要硬件和软件两个层面支持,虚拟子机在相同网卡主机之间迁移时理论上不会有问题。具体还要看虚拟化厂商实现。

转:VMware、微软等四种主要的网络IO虚拟化模型相关推荐

  1. 四种主要网络IO虚拟化模型

    网络I/O不但是物理服务器最容易出现的瓶颈,也是现在虚拟化技术最大的硬伤.随着硬件虚拟化对网络I/O的支持,虚拟化的网络I/O模型也不断的进化,虚拟化的I/O性能也不断提升. 这4个主流网络I/O模型 ...

  2. 微软:四种方法暂时屏蔽IE最新漏洞

    微软日前针对最近热议的IE 7 0day高危漏洞进行了调查,并发布了一份安全通报,介绍该漏洞影响的操作系统及相关软件,并提出了临时解决办法,指导用户暂时屏蔽该漏洞. 据微软官方通报表示,运行在Wind ...

  3. 发现微软有四种数据库

    微软的数据库平台,我在大学时只是耳闻,并没有真正地用过.听说过 Office 里的几大件,最常用的是 Word.Excel.PowerPoint,而接下来的就是数据库:Access.曾在工作中用过一次 ...

  4. 四种方法下载网络文本数据到本地内存

    ort urllib.requestimport requests from io import StringIOimport numpy as npimport pandas as pd ''' 下 ...

  5. 几种经典的网络服务器架构模型的分析与比较

    前言 事件驱动为广大的程序员所熟悉,其最为人津津乐道的是在图形化界面编程中的应用:事实上,在网络编程中事件驱动也被广泛使用,并大规模部署在高连接数高吞吐量的服务器程序中,如 http 服务器程序.ft ...

  6. 您必须了解的4种OpenStack Neutron网络类型

    如果您托管的OpenStack虚拟实例需要网络连接,则必须创建一个网络. 有多种类型的网络,为了做出正确的选择,您至少需要了解两个非常重要的网络属性:" router:external&qu ...

  7. VMware vSphere四种迁移类型的区别与适应场景

    最近一直刚开始接触VMware vSphere这款虚拟化软件,每天的过程都是上午学新知识不理解,痛苦:下午实验各种出错,折磨:晚上回顾一天所学,五味陈杂,不过相比上午,下午已经好很多了.然后第二天依旧 ...

  8. 解决 虚拟机VMware Authorization Service未能启动的四种方法

    闲话短述(仅记录个人学习原由): 最近装系统装上瘾了,要测试装机U盘,由于之前的虚拟机VMware Player没有快照.克隆等功能不方便,所以去下载了个VMware Workstation 15.5 ...

  9. 微软服务器尚未启动是什么问题,Win10系统打开图片提示“应用未启用”的四种解决方案...

    Windows10系统不仅给我们带来了全新的界面,也新增了很多新功能.不过,部分用户在使用win10系统时,也会遇到一些令人费解的问题.比如,有windows10用户反馈在打开图片或照片的时候,会出现 ...

最新文章

  1. 【蓝桥杯Java_C组·从零开始卷】第二节、ifswitch(超级详细,适合入门强化学习,理论与实战双保险(2021年12月30日上午9点直播·视频发布B站)
  2. android java 调试快捷键_Android Studio 代码页跳界面 /java和XML快速切换技巧
  3. 怎样修改WIN7下的host文件
  4. Python钉钉报警及Zabbix集成钉钉报警
  5. 修改Tomcat窗口名称
  6. (有图)仿QQ侧滑菜单:RecyclerView侧滑菜单,长按拖拽,滑动删除
  7. LinkedIn开源数据发现和管理工具 WhereHows
  8. android 蓝牙 发送字符串,Android向TLSR8266蓝牙mesh发送指令
  9. python whl文件安装_python whl文件怎么安装
  10. 利用EasyPub为Kindle制作mobi格式书籍
  11. 如何在宝塔面板中屏蔽垃圾蜘蛛?
  12. 闲鱼商品选投实时性优化
  13. alios things开发板_AliOS Things图形界面开发指南
  14. Linux搭建泰拉瑞亚(原版/模组/插件)服务器之1.3模组服务器
  15. PiXYZStudio:Revit 模型轻量化
  16. SQL server课程设计-景点门票销售管理系统(基于Javagui制作)
  17. cartographer_pose_extrapolator
  18. 连接打印服务器显示无合适驱动,Silex DS-510打印服务器驱动(解决DS-510打印机连接问题)V7.2.1 最新版...
  19. Java8 新特性遍历list集合
  20. 计算机公开课课前互动小游戏,课前三分钟小游戏 公开课课前精彩互动

热门文章

  1. 哈尔滨大学计算机和金融,山东153所大学最新排名,46所公办本科,看看有你喜欢的吗...
  2. 安徽关节式焊接机器人_上下料机器人的重要性体现在哪里?它有哪些优势?
  3. 二级c语言题型分数,计算机二级C语言题型和评分标准
  4. mysql排序区分大小写吗_MySQL操作数据时区分大小写
  5. 北大计算机系统结构学硕,转自包云刚,希望的原野 最近几个月参加了计算所、北大、上海交大多位计算机系统结构硕士与博士的答辩,说几点体会: ① 高水平国际论文越来越多。简单... - 雪球...
  6. android手势监听功能吗,Android手势监听 OnGestureListener (短按,长按,慢滑动,快滑动)...
  7. mysql中ak替换键_数据库:唯一性约束_alternate key(替换键) mySQL Oracle 数据库 ak 唯一性约束...
  8. android按钮置于顶层,如何把按键显示在最顶层窗口上(屏幕最顶上)
  9. 回放导出数据_王者荣耀本地视频怎么导出MP4格式视频文件?答案在这里
  10. excel中线性函数_Excel中特别有用的不常用函数之Indirect函数