PCEVA,PC绝对领域,探寻真正的电脑知识

标题: 几句话科普一下虚拟化,VT-x,VT-d [打印本页]

作者: yumeyao    时间: 2012-8-2 17:55
标题: 几句话科普一下虚拟化,VT-x,VT-d
本帖最后由 yumeyao 于 2012-8-2 19:19 编辑

发现大家对这个的认识很有问题啊。

先下个结论:对VT-d的YY和对E3的ECC内存的YY是一个级别的。。。


下面部分内容可参照http://en.wikipedia.org/wiki/X86_virtualization,部分内容系本人根据所了解的知识随手打出来的,也没什么原文/出处,不过我相信intel白皮书里一定有,我是懒得去翻找到第几页第几行了。

如果有不妥之处或谬误,欢迎指出


1.虚拟化分软件和硬件
没有VT-x也能虚拟化,很老的机器都可以跑VMWare

2.硬件虚拟化分为CPU层和IO层/芯片层
在Intel平台上,CPU层的就叫VT-x,IO层/芯片层就叫VT-d
一个CPU/一套平台可以同时支持VT-x和VTd,或者都不支持,或者只支持VT-x,决不可能只支持VT-d
现阶段SNB/IVB都能保证支持VT-x。按摩店的不叫VT-x/VT-d,叫别的名字,也都支持

3.硬件虚拟化需软件支持
现在基本VT-x都能支持了。
能支持VT-d的。。。。。。。都是企业级的软件,比方VMWare ESXi神马的。。。你没机会接触的。。。。


下面再简单针对VT-x和VT-d做介绍

VT-x:
原理:
CPU运行有Ring0~Ring3,一些底层操作必须Ring0。如果没有VT-x,虚拟机软件只能到Ring1,那么有些内核级别的东西就必须靠软件模拟,而效率降低。
有了VT-x,相当于多出来一套虚拟机的Ring0~Ring3,这样在虚拟机内的内核请求和虚拟机外的就等于性质上/效率上没有差别了,从而提高效率。

用途:
太多了。。。总之一句话,支持VT-x,虚拟机就没有CPU性能的短板了(当然还是受限于你CPU本身的能力)。
另外,在32位系统上要跑64位虚拟机的话,也必须要VT-x支持。


VT-d:
原理:
个人不是很明白。大致是通过硬件层的映射使得虚拟机内的IO请求(IO用到的资源有中断、DMA)直接映射到实际硬件上。如果没有VT-d,则需要软件来维护这个映射表。

用途:
其实最最最主要的用途是虚拟主机。。。。。
一个服务器,8块硬盘8张网卡,然后VT-d这么搞一下,当8台虚拟主机卖,还骗你说是独立主机神马的。。。
因为VT-d了,所以你看到的什么芯片组信息之类的都和虚拟机外面一样。。。。这样一般人是可以被骗过的

当然上面只是比较猥琐的用途。。。但服务器领域我也接触的很少。。。所以不多写了


貌似写的有点多了,有几十句话了,撤

18:30编辑: 标红了一下,如果觉得全文看起啦麻烦的,就记住这几句话就行,继续撤
19:18再编辑:加了一句反应现在CPU对虚拟化支持的话0.0
作者: DiamondBall    时间: 2012-8-2 18:49
早些版本的vmware就算u不支持vt-x都能32位host+64位guest
作者: 778856    时间: 2012-8-2 18:52
不错 的科普 不过不知怎么的 本子上 VT-d bios默认是关着的

看来用不到也不用开了
作者: yumeyao    时间: 2012-8-2 19:16
本帖最后由 yumeyao 于 2012-8-2 21:32 编辑
DiamondBall 发表于 2012-8-2 18:49
早些版本的vmware就算u不支持vt-x都能32位host+64位guest


不知道,可否有具体版本号我测试一下?
我用的跑过64位guest的最老的版本应该是6.0吧?后面反正一直不支持来的。
有一个p4 2.4c,还有笔记本扣肉2 T8100,反正p4不能跑,扣肉2可以


----------------编辑一下------------------
口误,回帖的时候在吃饭,没带脑子- -
当时是拿扣肉2T8100和E7200- -用的是另一台台机阿- -搞混了
作者: royalk    时间: 2012-8-2 19:24
这一篇可以参考
http://software.intel.com/zh-cn/ ... tion-of-io-devices/
作者: frontwing    时间: 2012-8-2 19:28
惊现Y大,感谢解释,看来不支持VT-d不是什么大问题
作者: yumeyao    时间: 2012-8-2 19:29
那个是专讲VT-d的。看了一下,和我上面说的没啥差别= =
其实归根到底,都是内存控制器的思路。。。。。。
作者: nighttob    时间: 2012-8-2 19:46
LZ应该简单说,除非你整天碰ESXi这样的高级虚拟化玩意,否则不用考虑VT-d的问题了。

我有个同学整天就是在"玩"ESXi,"玩"的他都想吐了,出门聚会的时候都不能忘远程登录控制服务器……
作者: vgxd    时间: 2012-8-2 20:18
intel还有个vt-c,是基于网卡的

还有vt-x有个扩展叫做SLAT”二级地址转换“,win8的hyper-v要求必须支持,反而win2008r2的hyper-v却不用

不过nehalem以及之后的u都有支持,经典的core2就没了
作者: annatta    时间: 2012-8-2 20:38
其实IO虚拟化在企业级应用中更有作用。比如Emulex的Virtual Fabric万兆卡,除了可以直接映射虚机的以太网连接,还可以直接跑SAN、FCoE和iSCSI等其他协议的应用,这就省得一台服务器装N多IO板卡,这一点对于扩展槽位紧张的刀片服务器意义重大。
作者: 柳倒抢    时间: 2012-8-2 20:56
一直在跑HYPER-V,啥时候才能支持VT-D啊,我都是几张网卡,1张网卡带几个虚拟机,要是支持VT-D性能应该不错
作者: DiamondBall    时间: 2012-8-2 22:21
yumeyao 发表于 2012-8-2 19:16
不知道,可否有具体版本号我测试一下?
我用的跑过64位guest的最老的版本应该是6.0吧?后面反正一直不支 ...

好几年前的事了,当时也就是6.x吧,U是939的A64 X2,没有那个AMD-V的(AM2起才有),跑的是WinXP x64,那个时候我用的是WinXP 32位。

后来我在我笔记本上我记得也成功过,U是T6600,同样没VT-x,VMware版本不记得了,但是这台电脑上我用64位Win7 Host+VMware工作站8肯定是不行的。

我现在在边上一台台式上装了个VMware 6.5,BIOS里关了虚拟化,也是可以装WinXP x64的Guest,不过Host是64位的Win8 CP。。。所以要我现在当场就演示个32位host无VT-x跑64位Guest我也做不到。。

不过virtual pc和virtual box我用过的版本里无vt-x倒是都不能跑64位guest的
作者: mastpoko    时间: 2012-8-2 22:40
Intel Active Management Technology(AMT)是不是用的这个技术啊
作者: Mufasa    时间: 2012-8-2 23:29
有部分i7支持VT-d ,另外一些i7又不支持

好在我的应用相对简单,只需要VT-x就足够了。
作者: Pale_Cheung    时间: 2012-8-3 13:07
778856 发表于 2012-8-2 18:52
不错 的科普 不过不知怎么的 本子上 VT-d bios默认是关着的

看来用不到也不用开了 ...

如果用虚拟机 那 能开肯定要开的。
作者: phoenixun    时间: 2012-8-3 17:33
本帖最后由 phoenixun 于 2012-8-3 20:44 编辑


对于虚拟化技术其实也不是YY,现在很多人都用2008r2当桌面用,这个系统自带虚拟机,而且还是免费企业级的。3570k是无法启用这个功能的。这个技术和超线程技术YY不一样,超线程你可以说它是没用的,因为满负荷情况下,真正几核才是最关键的。而这个技术不一样,支持就是支持,不支持就是没法用。在虚拟机应用上面还是有明显的速度差异,如果你只玩游戏的话,确实无所谓但有这方面需求的还是要考虑下的。一般人确实vt-x就够了

作者: Akula    时间: 2012-8-4 19:19
phoenixun 发表于 2012-8-3 17:33
对于虚拟化技术其实也不是YY,现在很多人都用2008r2当桌面用,这个系统自带虚拟机,而且还是免费企业级的 ...

Hyper-V只需要VT-x就可以用,3570K用起来妥妥的。
作者: 乐极生悲    时间: 2012-8-4 23:12
真的搞虚拟化的不可能用不支持vt-d的cpu,这个太重要了,比如直接把阵列卡映射给虚拟机,避开vmware那底下的磁盘性能。目前hyper-v还不支持vt-d。
顺便问一下各位高手,我的机器i3 2120+h77,装2008 r2 dc版,用cpu检测软件查看居然不支持EPT(SLAT),而同一台机器我用win7PE下看就支持。
作者: cloud    时间: 2012-8-5 00:29
vt-d对虚拟机的磁盘和内存性能也是很重要的
作者: phoenixun    时间: 2012-8-6 22:26
Akula 发表于 2012-8-4 19:19
Hyper-V只需要VT-x就可以用,3570K用起来妥妥的。

看了你们的帖子后才发现原来没开启虚拟化支持,z77x-d3h默认不开启,囧。
作者: yumeyao    时间: 2012-8-7 10:48
phoenixun 发表于 2012-8-6 22:26
看了你们的帖子后才发现原来没开启虚拟化支持,z77x-d3h默认不开启,囧。

很多主板默认BIOS都不开
作者: shenj520520    时间: 2012-8-20 17:15
科普的不错,看官方文章费劲!
作者: terrison    时间: 2013-6-26 10:40
收藏了,谢谢普及知识




欢迎光临 PCEVA,PC绝对领域,探寻真正的电脑知识 (https://bbs.pceva.com.cn/) Powered by Discuz! X3.2