请教一下大佬们 "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,虚拟机就不能正常工作了呢
提前感谢各位大佬的解答。
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,为啥只能用一个,因为他们对底层有冲突,所以只能运行其中一个。 |
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 本身还是在跑的。你那句话理解是没问题的。 |
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 |
4
MonoLogueChi 2021-03-21 16:35:31 +08:00 via Android 1
我在查阅资料的时候,曾经在微软网站看过类似的问题的解答,windows 运行在 hyper-v 上这句表述并不完全准确,具体是怎么解释的记不清了。第二个问题,需要确定 windows 版本和 vm 版本,最新的 windows 和上的 hyper-v 和最新的 vm,是可以同时运行的,而且 Hyper-v 虚拟机也是支持嵌套虚拟化的。这些都可以在在微软的网站上找到相关的资料,只是这些资料不太好找。
|
5
jizhihaoSAMA OP 先感谢各位大佬的回答,不过感觉你们的回复好像有些冲突啊。。我再理解下。(主要是学 docker 的时候涉及到了这个概念我就很好奇来问问)
|
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 系统 |
7
jizhihaoSAMA OP 4L 大佬说的我在掘金上面搜到类似的结果了 https://juejin.cn/post/6854573210399145991,意思大概是懂了(如果这个文章是正确的话),开了 hyper-V 之后应该是从 Type 1 转到 Type 2 了。而旧版本的 VMware 不能被嵌套虚拟。但新版本的可以。
|
8
Tink 2021-03-21 16:51:20 +08:00 via Android 1
1 。对的,开启 hyperv 之后,原来的 Windows 就作为一个虚拟机来跑了
2.虚拟机嵌套的话需要通过一些特定的接口来实现 |
9
Mithril 2021-03-21 16:58:15 +08:00 1
|
10
jizhihaoSAMA OP |