关于虚拟机的一点小疑惑

2021-03-21 15:13:35 +08:00
 jizhihaoSAMA

请教一下大佬们 "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,虚拟机就不能正常工作了呢

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

3066 次点击
所在节点    问与答
10 条回复
blackeeper
2021-03-21 15:39:08 +08:00
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
2021-03-21 15:52:17 +08:00
现在已经基本不说是 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
2021-03-21 16:25:07 +08:00
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
2021-03-21 16:35:31 +08:00
我在查阅资料的时候,曾经在微软网站看过类似的问题的解答,windows 运行在 hyper-v 上这句表述并不完全准确,具体是怎么解释的记不清了。第二个问题,需要确定 windows 版本和 vm 版本,最新的 windows 和上的 hyper-v 和最新的 vm,是可以同时运行的,而且 Hyper-v 虚拟机也是支持嵌套虚拟化的。这些都可以在在微软的网站上找到相关的资料,只是这些资料不太好找。
jizhihaoSAMA
2021-03-21 16:44:07 +08:00
先感谢各位大佬的回答,不过感觉你们的回复好像有些冲突啊。。我再理解下。(主要是学 docker 的时候涉及到了这个概念我就很好奇来问问)
FS1P7dJz
2021-03-21 16:47:52 +08:00
你说的 type1,业内又叫裸金属虚拟化
这种技术其实也是源自于 type2 的(至少目前大部分常见的虚拟化技术均是如此),只不过在发展过程中,逐渐剥离出来专门为虚拟化服务

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

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

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

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

这个被采纳的答案里面也有比较简单的描述以及归纳。。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/763656

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX