PCEVA,PC绝对领域,探寻真正的电脑知识
打印 上一主题 下一主题
开启左侧

几句话科普一下虚拟化,VT-x,VT-d

  [复制链接]
跳转到指定楼层
1#
yumeyao 发表于 2012-8-2 17:55 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
点击数:72287|回复数:22
本帖最后由 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

评分

参与人数 4活跃度 +65 收起 理由
royalk + 50
Akula + 5 赞一个!
浪子燕青 + 5 很给力!谢谢解惑!
778856 + 5 5分上限撒

查看全部评分

2#
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- -用的是另一台台机阿- -搞混了
3#
yumeyao  楼主| 发表于 2012-8-2 19:29 | 显示全部楼层
那个是专讲VT-d的。看了一下,和我上面说的没啥差别= =
其实归根到底,都是内存控制器的思路。。。。。。
4#
yumeyao  楼主| 发表于 2012-8-7 10:48 | 显示全部楼层
phoenixun 发表于 2012-8-6 22:26
看了你们的帖子后才发现原来没开启虚拟化支持,z77x-d3h默认不开启,囧。

很多主板默认BIOS都不开
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部