Hyper-V 与 VMware 的区别
Hyper-V 与 VMware 的区别
虚拟化技术是现代IT基础设施中不可或缺的一部分,它允许在单个物理服务器上运行多个独立的操作系统实例。Hyper-V和VMware是两种主流的虚拟化解决方案,它们在架构、功能和应用场景上存在显著差异。本文将深入探讨这两种技术的特点、区别以及它们在实际应用中的兼容性问题。
什么是Hyper-V
Hyper-V是微软开发的一款虚拟化技术,它允许用户在一台物理服务器上运行多个独立的操作系统。这些操作系统可以并行运行,相互之间互不干扰。以下是关于Hyper-V的详细介绍:
一、技术背景
基于Hypervisor:Hyper-V是微软第一个采用类似Vmware ESXi和Citrix Xen的基于hypervisor的技术。Hypervisor是一种运行在物理服务器和操作系统之间的软件层,负责直接管理硬件资源,并将其分配给各个虚拟机。
微内核架构:Hyper-V采用微内核的架构,这种架构兼顾了安全性和性能的要求。Hypervisor运行在最高的特权级别下,而虚拟机的操作系统内核和驱动运行在较低的特权级别,这种设计减少了系统间的干扰,提高了安全性。
二、主要特点
高效性:Hyper-V采用基于VMbus的高速内存总线架构,来自虚拟机的硬件请求可以直接通过VMbus总线发送到物理服务器的设备驱动,中间不需要Hypervisor的帮助,这种架构效率很高。
灵活性:Hyper-V支持多种操作系统作为虚拟机运行,包括Windows、Linux等。同时,它还支持动态内存管理、虚拟网络、虚拟存储等高级功能。
安全性:由于Hyper-V底层的Hypervisor代码量很小,不包含任何第三方的驱动,非常精简,所以安全性更高。此外,Hyper-V还支持BitLocker加密、Windows防火墙等安全功能。
三、系统要求
处理器:Intel或AMD的64位处理器,从Windows 10预览版更新19559开始,ARM64位处理器也受支持。
操作系统:Windows Server 2008 R2及以上(服务器操作系统);Windows 7及以上(桌面操作系统)。需要注意的是,Hyper-V在桌面操作系统中仅适用于专业版和企业版。
硬件辅助虚拟化:CPU必须支持硬件辅助虚拟化技术,如Intel VT或AMD-V。
数据执行保护(DEP):CPU必须具备硬件的数据执行保护功能,并且该功能必须启动。
内存:最低限度为2GB,但建议根据实际情况分配更多的内存。
四、应用场景
Hyper-V主要用于企业环境,用于提高硬件资源的利用率、降低运营成本以及提高系统的可扩展性和可靠性。通过在物理服务器上部署多个虚拟机,企业可以在不增加硬件投资的情况下,灵活地部署和管理各种应用程序和服务。
五、结论
综上所述,Hyper-V是微软提供的一款功能强大、灵活高效的虚拟化技术。它基于Hypervisor架构,采用微内核设计,具有高效性、灵活性和安全性等优点。通过满足一定的系统要求,用户可以在物理服务器上部署多个虚拟机,实现资源的最大化利用。
什么是VMware
VMware是一款在计算机虚拟化领域具有重要地位的软件产品,它允许用户在单一物理计算机上虚拟出多个独立的虚拟计算机环境,每个虚拟环境都可以运行自己的操作系统和应用程序,且相互隔离,互不影响。以下是关于VMware的详细介绍:
一、产品概述
定义:VMware是一款运行在Windows(以及其他操作系统)上的虚拟机软件,通过虚拟化技术模拟出完整的计算机硬件环境,包括CPU、内存、网络接口和存储器等,从而方便用户在同一台物理机上安装和运行多种不同的操作系统。
虚拟化技术:VMware利用虚拟化技术将物理硬件资源封装成一个或多个独立的虚拟环境,每个虚拟环境都拥有自己的虚拟硬件资源,实现了资源的有效隔离和高效利用。
二、主要功能与特点
多操作系统支持:VMware支持多种操作系统作为虚拟机运行,包括Windows、macOS、Linux、Unix等,用户可以根据需求在虚拟机中安装和运行不同的操作系统。
资源动态分配:VMware允许用户根据虚拟机的实际需求动态分配CPU、内存和存储等资源,提高了资源的利用率和系统的灵活性。
快照与备份:VMware提供了快照功能,允许用户在任意时刻对虚拟机进行快照备份,以便在需要时快速恢复虚拟机到特定状态。
网络隔离与桥接:VMware支持虚拟机的网络隔离和桥接功能,用户可以根据需要选择虚拟机的网络模式,确保虚拟机之间的网络隔离或实现虚拟机与物理网络的桥接。
易于管理与维护:VMware提供了直观的管理界面和丰富的管理工具,使得用户可以方便地对虚拟机进行创建、配置、监控和维护等操作。
三、应用场景
VMware广泛应用于企业数据中心、云计算平台、开发测试环境以及个人用户等多个领域。在企业数据中心中,VMware可以帮助企业实现资源的池化管理和动态分配,提高IT基础设施的利用率和灵活性;在云计算平台中,VMware作为虚拟化层的核心组件之一,支持构建弹性可扩展的云计算服务;在开发测试环境中,VMware提供了便捷的测试环境和资源隔离功能,降低了开发测试的成本和风险;在个人用户领域,VMware则为用户提供了在同一台物理机上运行多种操作系统的便利。
Hyper-V和VMware的区别
Hyper-V为Windows10自带,不需要下载安装,开启后重启即可,而Vmware需要下载安装
Hyper-V虚拟硬盘采用vhdx格式,宿主机可直接读取虚拟机文件,而Vmware需要自行映射
Hyper-V内存动态分配,当虚拟机处于后台运行时,自动降低内存使用率,而Vmware则是固定内存
Hyper-V挂起虚拟机比较快,且可在不考虑虚拟系统运行的情况下直接关机,而Vmware挂起虚拟机较慢,需要等到虚拟内存释放掉才能关机
Hyper-V开启后宿主机性能稍下降,而Vmware则不会
Hyper-V只能显示固定大小(Linux),这导致我直接弃用Hyper-V,而Vmware在安装vm-tools之后可以跟随窗口动态调整大小
Hyper-V默认不能连接外网,且只有虚拟交换机的网络方案,Vmware默认NAT网络模式能连接外网,且有三种网络模式
Hyper-V USB外设不能直接连接虚拟机,而Vmware可以
Hyper-V 支持的操作系统更少,对Windows支持更好,对Linux支持较差,如果要使用Linux虚拟机(如Ubuntu),不推荐Hyper-V,而Vmware支持更多的操作系统
Hyper-V默认是用CPU来模拟显示,性能较低,但可以通过手段对GPU进行虚拟化,而VMware安装完Vmware-tool后直接可以利用GPU提升显示性能
Type 1 Hypervisor 和 Type 2 Hypervisor
目前地表存在两种虚拟化架构分别是Type 1和Type 2,分别对应下图左边和右边,Type 1直接跑在裸金属上(就是直接跑在裸机上的意思,可能大家觉得裸金属听起来更酷,所以都这么叫),Type 2需要一个托管的操作系统,它跑在托管的操作系统之上,本质上只是操作系统上的一个软件.
Hyper-V就是Type 1,当开启之后原本的Windows系统便成了Hyper-V的一个虚拟机,所以开启了Hyper-V的Windows性能也会稍降,而VMware Workstation属于Type 2,是Windows上的一个软件,理论上讲Type 1少了一层,性能更高。
那么问题来了,在开启了Hyper-V的Windows上能跑VMware Workstation吗?这不两层套娃了吗?对,这确实是个问题,在某个版本之前的确是不兼容的,开启了Hyper-V后就不能使用VMware Workstation,但在202005开始兼容
Vmware workstation升级到15.5.5版本后就可以兼容Hyper-V了,但有限制:必须为Windows 10 20H1(也叫2004版)或更高版本
为什么 Hyper-v 和 VMware不兼容
Hyper-V 是一个type 1 hypervisor,当在 Windows 中启用 Hyper-V 时,Windows 系统在硬件底层与 Windows 应用层之间插入了一层 Hyper-V,而原来的 Windows 应用层则变成了一个运行在 Hyper-V 上的虚拟机。
而 VMWare Workstation/Player 使用一种被称为虚拟机监视器(Virtual Machine Monitor,VMM)的机制,直接访问 CPU 内建的虚拟化功能,因此,它们本身不能在虚拟机环境中运行,换句话说,不支持嵌套虚拟化(nested virtualization)。
当 Windows 启用 Hyper-V 时,原来的 Windows 变成了虚拟机环境,偏偏 VMWare Workstation/Player 不能在虚拟机环境中运行,因此,运行VMWare Workstation/Player 时会报错。
Windows 引入的一些新功能,例如 WSL 2、 基于虚拟化的安全功能(Virtualization Based Security, VBS,包括Windows Sandbox、Credential Guard、 Application Guard 等)依赖 Hyper-V 环境,如果 Windows 系统不加载 Hyper-V, 这些功能也无法使用。
从 VMWare Workstation/Player 15.5.5 版本开始,VMWare 公司重构了 VMM机制,将 VMM 机制调整为在用户级别运行,不再直接访问硬件,而是通过利用微软的 Windows Hypervisor Platform (WHP) 的 API 来运行。从而彻底解决了 VMWare Workstation/Player 与 Hyper-V 的冲突问题。
如何共存
将 Windows 版本升级到 Windows 10 20H1 或更高版本。
将 VMWare Workstation/Player 升级到 15.5.5 或更高版本,本文以 VMWare Player 为例。注意,在安装时,需要勾选“自动安装 Windows Hypervisor Platform (WHP)”。
运行 VMWare Workstation/Player,新建或导入虚拟机。
打开虚拟机的设置选项,找到“处理器”,去掉如图所示的三个选项前面的钩,点击“确定”。
否则,在运行虚拟机时,VMWare Workstation/Player 会提示“开机时出错: VMWarePlayer 在此主机上不支持嵌套虚拟化。模块 MonitorMode 启动失败。未能启动虚拟机。
Hyper-V、虚拟机平台与 WSL2
Hyper-V其实分两个部分:底层的虚拟机平台,以及上层的虚拟机管理软件。
以前的Windows版本,这两个是同一个选项,现在的新版本则是分成Hyper-V和虚拟机平台两个选项。
wsl2、沙盒本质上是基于Hyper-V的虚拟机,所以虚拟机平台要打开才能用。但作为Windows的两项特殊功能,无需额外使用管理软件对虚拟机进行管理。但也因此wsl2缺失了一些虚拟机常见功能,例如网络只能配置为NAT,不能指定IP/网段,虚拟磁盘管理等。
另一个问题是Hyper-V是Type-I型的虚拟机,Host运行在虚拟机平台上,一方面性能有所下降,另一方面则是其它虚拟机软件可能会有所冲突。新版本的vmware workstation、virtualbox是没问题的,但旧版的,以及众多安卓模拟器就不好用了。