V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
jizhihaoSAMA
V2EX  ›  问与答

关于虚拟机的一点小疑惑

  •  
  •   jizhihaoSAMA · 2021-03-21 15:13:35 +08:00 · 3027 次点击
    这是一个创建于 1344 天前的主题,其中的信息可能已经有所发展或是发生改变。

    主要是在知乎上面看到过这样一张图:

    请教一下大佬们 "Hyper-V 不是运行在 Windows 上,而是 Windows 运行在 Hyper-V 上。" 这句话有没有问题?

    如果这句话没有问题的话。问题:Windows 10 的 Hyper-V 服务是可开可关的。那么关闭 Hyper-V 服务之后 Windows 咋跑?从 Type1 变成 Type2 吗?

    还有就是为啥开了 Hyper-V 之后就不能用 VMware 了,能顺便解释下不?(个人理解)如果说开了 Hyper-V 之后,windows 10 是一个虚拟机,再开一个 VMware 嵌套虚拟机,不也行吗。但为啥开了 Hyper-V,虚拟机就不能正常工作了呢

    提前感谢各位大佬的解答。

    10 条回复    2021-03-21 17:07:19 +08:00
    blackeeper
        1
    blackeeper  
       2021-03-21 15:39:08 +08:00   ❤️ 1
    1,首先这句话是有问题。Hyper-V 是运行在 Windows 上,Hyper-V 是一个虚拟化平台,他上面可以运行 windows 系统,也可以是 linux 系统。
    2,Type1 和 Type2 是两种虚拟化,一个是基于硬件的虚拟化,比如 xen 。一个是基于操作系统的,比如 Hyper-V,KVM 等。
    3,Hyper-V 是属于 Type2 的虚拟化,你看 Type2 虚拟化,其中 hypervisor 可以是 Hyper-V 或者 VMware,为啥只能用一个,因为他们对底层有冲突,所以只能运行其中一个。
    Mithril
        2
    Mithril  
       2021-03-21 15:52:17 +08:00   ❤️ 1
    现在已经基本不说是 Type 1 还是 Type 2 了。按理说 Type 1 是直接使用硬件的,Type 2 是纯虚拟在 Host OS 上,没法直接用硬件。但现在的大多数虚拟机也都可以了。比如 KVM 这种,按理说是算 Type 1 的,但实际上它作为 Hypervision 的系统也能跑应用,你当它是 Type 2 的也行。
    而且 Hyper V 按这个分,是 Type 1 的。所以按理说你没法再上面再装个 Type 1 的虚拟机。但实际上有些 Type 1 的虚拟机可以把底层的硬件虚拟化接口暴露出来,所以你能实现嵌套虚拟化。。。
    另外你关的那个只是个管理服务,hypervisior 本身还是在跑的。你那句话理解是没问题的。
    systemcall
        3
    systemcall  
       2021-03-21 16:25:07 +08:00   ❤️ 1
    1. 是的。Windows 看上去是 Host OS,实际上是一个特殊的 VM 了。最明显的一点是内存方面的性能下降,特别是 AIDA64 测试 CPU 缓存的时候
    2. 关闭之后 Windows 就不跑虚拟化了,如果你开了别的虚拟机,那应该是 Type 2
    3. Hyper-V 占用了硬件虚拟化的特性,上面的 Windows VM 只可以支持 Hype-V 的嵌套虚拟化,这 2 个原因
    开了 Hyper-V 后,也不是没有办法用别的虚拟机,只要支持 Hyper-V 的接口就可以了,不过那个时候实际上跑的 Hypervisor 应该还是算 Hyper-V
    MonoLogueChi
        4
    MonoLogueChi  
       2021-03-21 16:35:31 +08:00 via Android   ❤️ 1
    我在查阅资料的时候,曾经在微软网站看过类似的问题的解答,windows 运行在 hyper-v 上这句表述并不完全准确,具体是怎么解释的记不清了。第二个问题,需要确定 windows 版本和 vm 版本,最新的 windows 和上的 hyper-v 和最新的 vm,是可以同时运行的,而且 Hyper-v 虚拟机也是支持嵌套虚拟化的。这些都可以在在微软的网站上找到相关的资料,只是这些资料不太好找。
    jizhihaoSAMA
        5
    jizhihaoSAMA  
    OP
       2021-03-21 16:44:07 +08:00
    先感谢各位大佬的回答,不过感觉你们的回复好像有些冲突啊。。我再理解下。(主要是学 docker 的时候涉及到了这个概念我就很好奇来问问)
    FS1P7dJz
        6
    FS1P7dJz  
       2021-03-21 16:47:52 +08:00   ❤️ 1
    你说的 type1,业内又叫裸金属虚拟化
    这种技术其实也是源自于 type2 的(至少目前大部分常见的虚拟化技术均是如此),只不过在发展过程中,逐渐剥离出来专门为虚拟化服务

    type2 系统里,hyper 层依然是作为一个软件,与其他软件平起平坐

    windows 分为两种
    Windows Hyper-V Server,这个你可以理解为微软出的裸金属虚拟化系统,源自定制版的 windows,仅有虚拟化相关服务,不可安装软件,虽然有图形界面,但是仅支持有限的 CLI 命令和 powershell
    对标产品是 vmware esxi

    还有一种就是更常见的 Hyper-V on Windows
    可以随时添加关闭这个服务,使用起来和 vmware workstation 比较接近

    这其实是 2 种 windows 系统
    jizhihaoSAMA
        7
    jizhihaoSAMA  
    OP
       2021-03-21 16:50:44 +08:00
    4L 大佬说的我在掘金上面搜到类似的结果了 https://juejin.cn/post/6854573210399145991,意思大概是懂了(如果这个文章是正确的话),开了 hyper-V 之后应该是从 Type 1 转到 Type 2 了。而旧版本的 VMware 不能被嵌套虚拟。但新版本的可以。
    Tink
        8
    Tink  
       2021-03-21 16:51:20 +08:00 via Android   ❤️ 1
    1 。对的,开启 hyperv 之后,原来的 Windows 就作为一个虚拟机来跑了
    2.虚拟机嵌套的话需要通过一些特定的接口来实现
    Mithril
        9
    Mithril  
       2021-03-21 16:58:15 +08:00   ❤️ 1
    jizhihaoSAMA
        10
    jizhihaoSAMA  
    OP
       2021-03-21 17:07:19 +08:00
    https://stackoverflow.com/questions/39858200/vmware-workstation-and-device-credential-guard-are-not-compatible

    这个被采纳的答案里面也有比较简单的描述以及归纳。。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4129 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 87ms · UTC 04:14 · PVG 12:14 · LAX 20:14 · JFK 23:14
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.