intel 虚拟化 VT-d VT-x VT-c 有什么区别,各是什么意思,有什么作用
简单描述理解 VT-d VT-x VT-c
VT-d 英文全程为 Virtualization Technology for Directed I/O
其中 VT 是 Virtualization Technology 的缩写,d代表Directed
VT-d 的 Intel 官方中文名称是 定向 I/O 虚拟化技术 ,这个技术就是俗称的虚拟化直通技术,就是允许宿主机将某些硬件资源(比如硬盘、显卡、网卡)的管辖权直接移交给虚拟机,此时宿主机将不能再使用此硬件,虚拟机会以直通独占的方式使用它们,这种直通的技术带来的好处就是,虚拟机中使用该硬件的性能损耗是极小的, 改善了 I/O 设备在虚拟化环境中的性能并且隔离更加彻底提高了系统的安全性
VT-x 其实就是 Intel Virtualization Technology
至于为什么后边有个 x 呢?
是因为英特尔在起名字的时候,将x86平台上的VT技术,称之为VT-x;在Itanium平台上的VT技术,称之为VT-i。
VT-x 是 Intel CPU 的硬件虚拟化技术,提供内存以及虚拟机的硬件隔离,这也是平常我们想在 intel 平台上做虚拟化最基本需要支持的技术。
VT-x不仅需要处理器的支持,也需要主板、BOIS的支持
VT-c 英文全程为 Virtualization Technology for Connectivity
VT-c 主要是针对提高网络 I/O 提供的虚拟化技术,它可以在一个物理网卡上,建立针对虚拟机的设备队列,最大限度的提高 I/O 吞吐率。
我看网上文章千篇一律的都只是官方的介绍一下 VMDq 和 VMDc ,甚至搞不清 VT-d 和 VT-c 到底有什么区别
其实这个很简单
一个数据包的处理,传统方式是由虚拟机管理系统(CPU处理)来分配这个数据包到底给到哪台虚拟机,现在是由网卡的硬件直接来处理,所以减少了处理延迟,提高了效率
和 VT-d 有什么区别?
VT-d 是可以将一个物理网卡直通给一个虚拟机。现在的 VT-c 就很厉害了,可以将一个物理网卡分成十份,分别直通给10个虚拟机,并且这十份都是隔离互不影响的,注意,这里我用了直通两个字,也就是分割成十份这个操作是不经过虚拟机管理系统的(也就是不经过CPU),所以 I/O 性能很高,并且减少CPU的负载
- 虚拟化分软件虚拟化和硬件虚拟化,没有VT-x也能虚拟化,很老的机器都可以跑VMWare,因为使用了软件虚拟化的方式,不过运行效率肯定没有硬件虚拟化的高;
- 硬件虚拟化分两种:CPU层和IO层/芯片层,在Intel平台上,CPU层的虚拟化技术叫VT-x,IO层/芯片层叫VT-d;
- 一个CPU/一套平台可以同时支持VT-x和VTd,或者都不支持,或者只支持VT-x,决不可能只支持VT-d;
- 现阶段英特尔SNB/IVB平台都能保证支持VT-x;
- AMD的虚拟化技术叫AMD-v;
- 硬件虚拟化需软件支持,例如微软的Hyper-V;
- 现在主流的处理器基本都支持VT-x;
对VT-x和VT-d的简单介绍
VT-x:
原理:CPU运行有Ring0 ~ Ring3,一些底层操作必须Ring0。如果没有VT-x,虚拟机软件只能到Ring1,那么有些内核级别的东西就必须靠软件模拟,而效率降低。 有了VT-x,相当于多出来一套虚拟机的Ring0 ~ Ring3,这样在虚拟机内的内核请求和虚拟机外的就等于性质上/效率上没有差别了,从而提高效率。
用途:提高虚拟机效率,让虚拟机没有CPU性能的短板(当然还是受限于你CPU本身的能力)。另外,在32位系统上要跑64位虚拟机的话,也必须要VT-x支持。
VT-d:
原理:是一种基于North Bridge北桥芯片(或者按照较新的说法:MCH)的硬件辅助虚拟化技术,通过在北桥中内置提供DMA虚拟化和IRQ虚拟化硬件,实现了新型的I/O虚 拟化方式,Intel VT-d能够在虚拟环境中大大地提升 I/O 的可靠性、灵活性与性能。
用途:运用VT-d技术,虚拟机得以使用直接I/O设备分配方式或者I/O设备共享方式来代替传统的设备模拟/额外设备接口方式,从而大大提升了虚拟化的I/O性能,让虚拟机性能更接近于真实主机。
原文链接:https://www.landui.com/help/show-4705.html
作者:Feng
参考文章:
1. 《intel 虚拟化 VT-d VT-x VT-c 有什么区别,各是什么意思,有什么作用》https://www.d3tt.com/view/111