转:VMware、微软等四种主要的网络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模型,主要包括模型原理、模型优点、模型缺点、模型对虚拟化迁移的支持。

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

  1、Emulation

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

image001

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

  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模型图如下:

image002

  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

image003

原理: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被很多人认为是解决了虚拟化最后一公里的问题。模型图如下:

image004

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/547957.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

axios跨域携带cookie_vue 本地调试跨域---带cookies(axios)

cookise跨域第二期之便捷优雅的本地调试(axios)1、打开config/index.js,在proxyTable中添写如下代码:proxyTable: {/agent: { //使用"/agent"来代替源地址target: https://datacloudtest.mncats365.com, //想要访问的地址secure: true,//如果是https请设置…

CIDR 计算网络地址、子网掩码、广播地址

题干 16.158.165.91/22 这个 CIDR 求一下这个网络的第一个地址、子网掩码和广播地址。 首先我们先计算网络号 /22 可知 前22位为网络位&#xff0c;后10位为主机位。 网络号就是 主机位为0&#xff0c;即 16.158.<101001><01>.91 > 16.158.<101001><0…

CentOS7安装go开发环境

1&#xff0c;系统环境 操作系统 CentOS Linux release 7.6.1810 (Core) 64位 执行以下命令&#xff1a; wget https://dl.google.com/go/go1.12.5.linux-amd64.tar.gz tar -xzvf go1.12.5.linux-amd64.tar.gz -C /usr/local/ mkdir -p /home/gopath cat >> /etc/p…

非递归遍历二叉树

2019独角兽企业重金招聘Python工程师标准>>> http://hi.baidu.com/lcplj123/item/7875233769fd5522b2c0c582 转载于:https://my.oschina.net/u/939893/blog/126138

Vue.js使用矢量图

安装依赖 npm i svg-sprite-loader --save目录结构 创建 svg-icon 组件 <template><svg :class"svgClass" aria-hidden"true"><use :xlink:href"iconName"/></svg> </template><script> export default {…

aix oracle监听配置_Oracel:ORA-12518:监听程序无法分发客户机连接

一、【问题描述】最近&#xff0c;在系统高峰期的时候&#xff0c;会提示如上的错误&#xff0c;致使无法连接到服务器上的数据库。二、【分析过程】1、首先判断是否由于监听配置不正确的原因导致?系统在正常情况下都可以正常的使用&#xff0c;检查监听配置&#xff0c;完全正…

PowerShell巡检主机获取CPU占用、内存使用、硬盘情况的脚本

Windows底下用PowerShell写的获取CPU核数、占用率&#xff1b;内存可用内存大小&#xff08;GB&#xff09;、使用率&#xff1b;硬盘总空余大小&#xff08;GB&#xff09;&#xff0c;使用率 # 获取硬盘空余空间 function get_disk_free(){ $disk Get-WmiObject -Class win…

【java】【乱码】Java 读取本地 UTF8 txt文件乱码处理

package test;import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.InputStreamReader;/*** author JavaAlpha 2012-7-12下午02:06:27 UTF8 txt文件乱码处理*/ public class QQGroup {/*** param args*/public static void …

Windows巡检IIS指标脚本(PowerShell实现)

function WriteLog([string] $content){#Write-Host $content$script:OutMessage $content "rn" }Import-Module WebAdministration#获取所有Application Pools #WriteLog "Start checking IIS application pool..." # 开始检查IIS应用程序池Get-Ch…

4 命名规则_赛普拉斯(Cypress)存储器芯片命名规则

1&#xff0c;前言 赛普拉斯(Cypress)公司是一家知名的电子芯片制造商。赛普拉斯在纽约股票交易所上市&#xff0c;在数据通信、消费类电子等广泛领域均提供芯片解决方案。 2020年4月16日赛普拉斯(Cypress)和英飞凌(infineon)同时对外发文宣布&#xff1a;infineon英飞凌已经完…

数据数据库学通MongoDB——第一天 基础入门

在本文中,我们主要介绍数据数据库的内容,自我感觉有个不错的建议和大家分享下 关于mongodb的利益&#xff0c;长处之类的这里就不说了&#xff0c;一唯要讲的一点就是mongodb中有三元素&#xff1a;数据库&#xff0c;合集&#xff0c;文档&#xff0c;其中“合集” 就是对应关…

win10雷电3接口驱动_技嘉推出B550 主板首发雷电3接口:40Gbps速率、Intel主控

下周AMD针对主流市场的B550芯片组就要上市了&#xff0c;千元级主板上也有PCIe 4.0了。技嘉今天又宣布了一款新型号主板——B550 Vison D&#xff0c;它竟然支持Intel独家的Thunderbolt 3&#xff08;俗称雷电3&#xff09;接口&#xff0c;这还是B550中首款&#xff0c;40Gbps…

使用mysqldump 导出sql数据

mysqldump -uusername -ppassword --databases 数据库名 --tables 表名 --where "add_time > 2021-07-15 00:00:00" > ~/temp/IpcOrderConsumption/t_order_7_15.sql # --where 是要导出数据的条件

eclipse--eclipse(JavaEE版本)部署Tomcat工程(转)

介绍如何在eclipse&#xff08;JavaEE版本&#xff09;中部署Tomcat工程&#xff0c; 转自“http://www.cnblogs.com/chenjunbiao/archive/2011/12/09/2281702.html” “http://www.iteye.com/topic/825394” Eclipse下Tomcat常用设置 1&#xff0c;Eclipse建立Tomcat服务 1.1 …

python工程师需要考什么证_考垃圾处理清运工程师证哪里颁发的今年的考试时间即将告知...

考垃圾处理清运工程师证哪里颁发的今年的考试时间即将告知二、中级会计师(会计师)资格考试。三、高级会计师资格考试。四、中级会计师资格考试。五、注册税务师职称。六、注册公司登记。七、注册会计师、法人和其他组织的税务师资格考试。八、注册税务师职称。而在报名的时候不…

mysql集群搭建(使用docker 一主一从)

mysql集群搭建 my.cnf 配置文件配置 在 /etc/mysql/my.cnf 中 &#xff08;拿一个举例&#xff09; &#xff08;docker中需要先进入开启的容器&#xff0c;docker exec -it 容器名称 /bin/bash&#xff09; [mysqld] #启用二进制日志 log-binmysql-bin #服务器唯一ID&…

Linux安装后初始优化步骤(仅适用于CentOS、RedHat)

第1步&#xff0c;首先要初始化网卡&#xff0c;因为网络对于Linux操作系统来说就是生命&#xff0c;没了网络就无法进行任何的组件安装和环境搭建 # 编辑ifcfg-enp0s3网卡配置文件 vi /etc/sysconfig/network-scripts/ifcfg-enp0s3 # ONBOOT参数将“no”改为“yes” ONBOOT Y…

华为主题包hwt下载_华为主题 | 黑白人物

黑白人物1前言每周更新一次&#xff0c;没办法量产很抱歉但每一个主题都很精致这次的主题新增了QQ美化&#xff0c;锤子便签还有白肚皮美化不会太花里胡哨&#xff0c;放心不要喷我&#xff0c;所用壁纸皆是在堆糖里寻找喜欢的宝宝们&#xff0c;可以帮忙点一下再看或者关注不迷…

filebeat + logstash 发送日志至kafka 入门

filebeat 官方文档 配置文件 filebeat.yml filebeat.inputs:# Each - is an input. Most options can be set at the input level, so # you can use different inputs for various configurations. # Below are the input specific configurations.- type: log# Change to …

Ubuntu(Debian) 18.04 安装后开启ssh和防火墙传输文件

1. 备份 sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak 2.修改 sudo vim /etc/apt/sources.list deb http://us.archive.ubuntu.com/ubuntu/ bionic main restricted deb http://us.archive.ubuntu.com/ubuntu/ bionic-updates main restricted deb http://us…