首页 > 系统相关 >Hyper-V与vmware的区别

Hyper-V与vmware的区别

时间:2022-12-14 14:46:11浏览次数:51  
标签:Hyper 虚拟化 区别 虚拟机 嵌套 vmware L1 VMware

虚拟机架构分类

  • I型原生架构
    img
    原生架构也叫裸金属架构或者裸机架构,其通过直接在cpu处理器硬件上运行虚拟机监控程序,进一步使用处理器扩展(Intel VT-x和AMD-V)来运行虚拟机。这时候计算机所有运行的操作系统(包括根操作系统)都相当于是虚拟机。Hyper-V,VMware ESX,Xen,KVM都是使用的这种框架。
  • Ⅱ型寄居架构
    img
    寄居架构是虚拟机监控程序以应用程序的形式在宿主机上运行,进而使用处理器扩展(Intel VT-x和AMD-V)来运行虚拟机。VMware WorkStantion和VirtualBox都是使用这种虚拟机架构。

Hyper-V与VMware WorkStantion的共生问题

不使用Hyper-V的时候使用VMware WorkStantion这种寄宿框架的虚拟机是没有任何问题的,但是因为Hyper-V其使用的是原生架构,Hyper-V的虚拟机监控程序hypervisor是直接在硬件之上运行,而原根操作系统在虚拟机监控程序之上运行,从cpu的角度来看根操作系统已经是一个虚拟机操作系统了,而vmware寄生在根操作系统中就无法直接访问cpu实现虚拟化。

img

所以早期要想使用VMware WorkStantion需要将Hyper-V先关闭,但是因为Windows的一些功能需要依赖与Hyper-V(WSL,Hyper-V虚拟机),所以为了使用这些功能的同时使用VMware WorkStantion需要让其与Hyper-V能够共存。Microsoft与VMware公司合作,最后VMware通过Hyper-V开启后的Windows Hypervisor Platform功能使用处理器扩展(Intel VT-x和AMD-V)。

img

但是又存在一个新的问题,虽然现在可以支持Hyper-V与VMware进行共生,但是基于VBS功能的VMware无法实现嵌套虚拟化。所以就不能在使用了Hyper-V的同时做一些嵌套虚拟化的实验和测试。

img

测试一下:在开启的Hyper-V的系统中先通过VMware开启嵌套虚拟化支持

img

现在如果使用VMware运行虚拟机的话会出现无法进行嵌套虚拟化的错误

img

Hyper-V的嵌套虚拟化

如果要想使用VMware进行嵌套虚拟化实验就需要先将Hyper-V关闭,但是Hyper-V被关闭后WSL等功能也无法使用。Hyper-V本身是实现了嵌套虚拟化的,默认关闭需要手动开启。没有开启嵌套虚拟化扩展支持的Hyper-V虚拟机整体结构如下:L1来宾就是Hyper-V虚拟机,其还没有开启嵌套虚拟化扩展支持,与L1根操作系统一样都在L0 hypervisor虚拟机监控程序之上运行。

img

如果L1来宾Hyper-V虚拟机开启了嵌套虚拟化扩展支持,系统会在L0 hypervisor虚拟机监控程序之上再模拟实现一层hypervisor虚拟机监控程序(L1层虚拟机监控程序).这个时候原来L1来宾虚拟机的角色就发生变化了,其此时就是L2层的根操作系统,然后运行在L1层的虚拟机监控程序上,并且其可以添加自己的来宾虚拟机(L2层Hyper-V虚拟机)。

img

因为默认情况下L1层Hyper-V虚拟机的嵌套虚拟化扩展功能是关闭的,需要手动开启。首先通过PowerShell打开查看需要操作的L1层Hyper-V虚拟机信息,发现ExposeVirtualizationExtensions是处于关闭状态的。

img

然后通过Set-VMProcessor -ExposeVirtualizationExtensions $true -VMName 给指定L1层Hyper-V虚拟机开启嵌套虚拟机扩展功能。

img

L1层的来宾虚拟机角色就变成了L2层的根操作系统,现在就可以在L2层根操作系统中使用Hyper-V创建自己的来宾虚拟机。通过L2根操作系统的任务管理器性能信息可以判断嵌套虚拟机功能是否开启成功。

img

参考:

https://learn.microsoft.com/zh-cn/virtualization/hyper-v-on-windows/user-guide/nested-virtualization
https://docs.vmware.com/cn/VMware-Workstation-Pro/16.0/com.vmware.ws.using.doc/GUID-177F1E77-BFFD-485F-90BB-2E45B6B88678.html
https://docs.vmware.com/cn/VMware-Workstation-Pro/16.0/com.vmware.ws.using.doc/GUID-778DD0ED-6FC9-415F-B071-0CEC127BE719.html
https://cloud.tencent.com/developer/article/1782543

标签:Hyper,虚拟化,区别,虚拟机,嵌套,vmware,L1,VMware
From: https://www.cnblogs.com/revercc/p/16982107.html

相关文章

  • @Autowired 和 @Resource 的区别
    @Autowired与@Resource@Autowired属于Spring内置的注解,默认的注入方式为byType(根据类型进行匹配),也就是说会优先根据接口类型去匹配并注入Bean(接口的实现类)。如果一......
  • 无代码开发和低代码开发的本质区别
    ​无代码和低代码开发都是现在新兴的一种软件开发方式,无代码顾名思义就是不需要编写代码就能够实现软件开发;低代码就是还是需要编写代码来实现软件开发,只不过低代码开发需......
  • ubuntu安装vmware tools不起作用
    安装VMwaretools之后从windows复制文件到ubuntu发现没有成功重新执行vmware-uninstall-tools.pl脚本提示之前已经安装了版本,需要卸载重装解决方案:1)不需要卸载2)命令行......
  • 搞清webpack、vite、vue-cli、create-vue的区别
    1.要区分脚手架、构建项目、打包代码的概念1.1脚手架:创建项目,选择性安装需要的插件,指定统一的风格,生成demo。(vue-cli和create-vue是由vue提供的脚手架,创建项目时......
  • Rocky9 在 VMware Workstation 17 Pro 上的安装
    本篇随笔仅记录Rocky9的安装。  镜像下载链接:https://rockylinux.org/download 我选择的版本如图: 我给的配置(本人笔记本CPU是8核16线程,内存32G,给的这个配置......
  • Python中json.dump()和json.dumps()的区别
    一、图解json.dumps(dict,indent):将Python对象转换成json字符串 json.dump(dict,file_pointer):将Python对象写入json文件  二、json.dumps()用法1、用法json.d......
  • Mac 下 VMware Fusion Linux 虚拟机设置静态 IP
    首先打开Mac终端查看网关cat/Library/Preferences/VMware\Fusion/vmnet8/nat.conf#NATgatewayaddressip=172.16.57.2 #网关(GATEWAY)netmask=25......
  • VMware安装Centos7超详细过程(图文)
    本篇文章主要介绍了VMware安装Centos7超详细过程(图文),具有一定的参考价值,感兴趣的小伙伴们可以参考一下1.软硬件准备软件:推荐使用VMwear,我用的是VMwear12镜像:CentOS7,如果......
  • 前端入门教程:CSS标准盒模型和怪异盒模型区别
    理解盒模型:CSS3中的盒模型有以下两种:标准盒模型、IE盒子模型(怪异盒模型),盒模型是由4个部分组成,由内向外分别是content(下图蓝色部分)、padding、border、margin盒模型有5......
  • @Mapper 与 @MapperScan 的区别
    之前一直用Mapper,后来项目中用MapperScan,再后来一不小心两个一起用了,就出现问题了,本文讲解两个注解的作用和优先级。1、@Mapper作用用在接口类上,在编译之后会生成相......