Hyper-V还是VirtualBox – 选择哪个?

当您想要运行虚拟机时,您有几个超级监视器可供选择,包括两个最受欢迎的产品:Oracle VirtualBox和Microsoft Hyper-V。那么您如何决定选择哪一个:VirtualBox还是Hyper-V?这两种解决方案都提供许多功能,允许您运行和管理虚拟机。阅读VirtualBox与Hyper-V比较以了解这两种超级监视器之间的区别,并选择更符合您需求的那个。

注意:要与其他超级监视器进行比较,请阅读我们完整的VirtualBox与VMware产品概述以及VMware与Hyper-V比较。

Hyper-V与VirtualBox:比较表

让我们首先概述Hyper-V与VirtualBox的不同方面,然后在接下来的部分中更详细地讨论每个观点。

Hyper-V VirtualBox
Hypervisor Type 1 Type 2
支持的主机操作系统 Windows Windows,Linux,macOS,Solaris
支持的客户操作系统 Windows,Linux,FreeBSD Windows,Linux,FreeBSD,Solaris,macOS 和其他
客户操作系统驱动程序和实用工具 Hyper-V 集成服务 VirtualBox 客户端附加组件
虚拟磁盘文件格式 VHD,VHDX VDI,VMDK,VHD,HDD
虚拟磁盘动态分配 是(动态磁盘) 是(动态分配)
虚拟机快照
虚拟机管理工具 VMConnect(基于 RDP) VirtualBox GUI 与 VRDE 和 VRDP
实时迁移功能 Hyper-V 实时迁移 VirtualBox 传送
实时迁移功能 较高 较低
虚拟机复制
软件虚拟化
远程管理 Hyper-V 管理器 phpVirtualBox
命令行界面 是,PowerShell 是,VBoxManage
网络模式 3 种模式 7 种模式
网络流量分析 端口镜像 网络跟踪
共享文件夹 否,仅手动 是,带有采用的功能
共享剪贴板 有限(文本) 广泛支持(文本,文件等)
拖放
加密
嵌套虚拟化
故障转移群集

虚拟化管理程序类型概述

A hypervisor is special software that allows you to run one or multiple virtual machines with their own operating systems (that is, guest OSs) on a physical computer (that is, the host machine). There are two types of hypervisors: type 1 and type 2.

  • Hyper-V 是一种 1 类型虚拟化管理程序,也称为裸金属虚拟化管理程序,直接运行在计算机硬件上。当物理计算机(主机)启动时,Hyper-V 虚拟化管理程序从 BIOS 或 UEFI 接管控制权。然后,Hyper-V 启动管理操作系统,可以是 Hyper-V 服务器、Windows 或 Windows 服务器。虚拟机可以由用户手动启动或根据其设置自动启动。
  • VirtualBox 是一种 2 类型虚拟化管理程序,有时称为托管式虚拟化管理程序。2 类型虚拟化管理程序是运行在操作系统(OS)上并已安装在主机上的应用程序。当物理计算机启动时,安装在主机上的操作系统加载并接管控制。用户启动虚拟化管理程序应用程序(在这种情况下是 VirtualBox),然后启动所需的虚拟机。虚拟机托管过程被创建。

如果主机已启动,则 Hyper-V 一直处于开启状态,而 VirtualBox 可以在需要时由用户启动和关闭。

注意:如果在 Windows 机器上安装 VirtualBox,请确保禁用 Hyper-V 以避免问题。

思考。就性能而言,1 类型虚拟化管理程序提供更好的性能。如果性能重要并且所需的客户操作系统得到支持,则选择 Hyper-V。另一方面,像 VirtualBox 这样的 2 类型虚拟化管理程序更加通用。

仅限 Windows 的 Hyper-V 对比多平台的 VirtualBox

Hyper-V 只能在Windows系列操作系统或专用的Hyper-V服务器上运行。自Windows 8起,Hyper-V功能已内置,也可作为Windows Server 2008及更高版本的服务器角色提供。

VirtualBox 可在更多操作系统上运行,包括Linux、Windows、Solaris和Mac OS。

如果您的环境中物理机器上安装了Windows,则可以选择Hyper-V。如果您有多平台环境,则可以利用VirtualBox,在具有不同操作系统的不同计算机上运行虚拟机。

客户操作系统支持

A guest operating system is the OS that is installed to run on a VM. The guest OS and host OS can be different.

Hyper-V可托管具有以下客户操作系统的VM:Windows、Linux和FreeBSD。

VirtualBox支持的客户操作系统比Hyper-V更多,包括Windows、Linux、FreeBSD、Solaris、Mac OS等。

您可以在供应商的官方页面上查看VirtualBox支持的操作系统版本的完整列表。下面的屏幕截图说明了VirtualBox在Windows 10主机上运行,并在VirtualBox虚拟机(VM)中运行XubuntuLinux

注意:本博文中使用的截图是在VirtualBox 6.0中创建的,但功能的运作方式与后续的VirtualBox版本(如6.0.x、6.1等)相同。我们在本博文中使用的Windows Server 2016的Hyper-V界面与Windows Server 2019、2022以及Windows 10的Hyper-V界面相同。

Hyper-V集成服务与VirtualBox客户机附加组件

Hyper-V集成服务是一组驱动程序和实用工具,可以改善整体性能以及主机和客户操作系统之间的交互。集成服务安装在运行在虚拟机上的客户操作系统上。

  • 对于Windows操作系统,Hyper-V集成服务可以通过将虚拟光盘映像(ISO文件)附加到虚拟机上来安装,该光盘映像包含安装程序,或者通过Windows更新安装。
  • 至于Linux,集成服务已内置到现代Linux操作系统的内核中。当内核更新时,可以在Linux上更新集成服务。
  • 作为替代方案,您还可以从Microsoft Download Center手动下载Hyper-V集成服务的完整安装包。

VirtualBox客户机附加组件包含了系统应用程序和驱动程序,类似于Hyper-V集成服务,优化了客户操作系统的性能和可用性。

安装Guest Additions后,您可以获得以下功能,包括但不限于:拖放功能、双向剪贴板、自动调整大小和无缝模式。

安装Guest Additions的过程类似于集成服务:您将包含安装程序的ISO光盘映像附加到虚拟机,并使用图形用户界面或命令行安装Guest Additions。

虚拟磁盘格式

Hyper-V虚拟机的虚拟磁盘存储在两种文件格式中:

阅读详细的VHD与VHDX虚拟磁盘格式比较。

VirtualBox支持以下格式的虚拟磁盘:

  • VDI是VirtualBox的原生格式。
  • VMDK是VMware虚拟磁盘格式。
  • VHD是Hyper-V格式(请注意,VirtualBox不支持VHDX)。
  • HDD是Parallels Desktop格式。

虚拟磁盘预分配有两种类型:

  • 已修复。一旦磁盘创建完成,固定虚拟磁盘会消耗掉所有预配的存储空间。这种预配类型类似于厚预配。
  • 动态。动态虚拟磁盘在创建后几乎不消耗存储空间,并且随着数据写入虚拟磁盘而逐渐增长。这种预配类型类似于瘦预配。

阅读关于VMware瘦预配和厚预配的博客文章,了解更多关于虚拟磁盘预分配的信息。

VirtualBox和Hyper-V都支持固定大小磁盘和动态分配磁盘。您可以将固定磁盘转换为动态磁盘,适用于Hyper-V和VirtualBox。固定虚拟磁盘在创建时需要更多时间,并且在创建时消耗更多存储空间,但它们提供更高的性能。动态虚拟磁盘几乎可以立即创建,允许您节省存储空间,但它们的性能较低。

注意:在动态(动态分配)虚拟磁盘上删除文件后,您可能需要回收空闲空间。

Hyper-V检查点与VirtualBox快照

Hyper-V检查点是一种功能,允许您在特定时间点保存虚拟机的状态。如果进行了不需要的更改,可以使用检查点将VM还原到先前的状态。

在最新版本的Hyper-V中,有两种类型的检查点可用:

  • 标准检查点
  • 生产检查点

与标准检查点不同,生产检查点允许您在创建检查点之前冻结虚拟机,以防止对虚拟磁盘进行写操作。对于基于Windows的虚拟机,VSS(卷影复制服务)用于实现这一点,而对于基于Linux的虚拟机,则使用文件系统冻结。这种方法可以避免在使用标准检查点时可能出现的问题,例如由于在创建检查点时磁盘上的数据发生变化而导致的数据不一致。当创建检查点时数据没有发生变化,那么该检查点就是数据一致的,并且应用程序一致而不是崩溃一致

创建检查点时,将为虚拟机的每个VHD(或VHDX)虚拟磁盘创建一个差异虚拟磁盘(AVHD或AVHDX)。所有更改都会在检查点创建后写入差异磁盘。差异虚拟磁盘与其父虚拟磁盘一起存储在同一目录中。

VirtualBox快照 相当于Hyper-V检查点。您可以使用快照保存当前虚拟机状态,并在需要时恢复到先前状态。VDI是VirtualBox中虚拟磁盘的本机文件格式。创建快照时,将创建一个新的差分虚拟磁盘,作为一个新的VDI文件。当您删除代表先前虚拟机状态的快照时,与您当前虚拟机状态相比,那么差分虚拟磁盘将与父虚拟磁盘合并,或多个差分虚拟磁盘将被合并。请注意,快照主要用于测试目的,而不用于生产目的。

注意:检查点和快照对于测试很有用,并帮助您将虚拟机恢复到其先前的状态。但请注意,它们不足以保护数据,快照与备份之间存在许多差异

Hyper-V VMConnect与VirtualBox远程显示

Hyper-V虚拟机连接(VMConnect)是一种工具,用于访问虚拟机的图形用户界面或控制台界面,并用于管理虚拟机。VMConnect使用WMI(Windows管理工具)来实现此目的。您可以像与物理机一样使用键盘和鼠标与虚拟机的客户操作系统进行交互。可以从安装了Hyper-V并运行虚拟机的本地计算机,或通过网络从远程计算机与虚拟机建立连接。

VMConnect通常在安装Hyper-V角色时默认启用。否则,您可以在添加功能向导中添加Hyper-V工具功能。VMConnect使用Microsoft远程桌面协议(RDP)建立连接。

增强会话模式允许您重定向本地设备和资源到虚拟机。剪贴板、磁盘驱动器、USB闪存驱动器、音频、打印机和显示配置可以被重定向。因此,您可以在虚拟机中使用插入到物理机的USB端口的USB闪存驱动器。

VirtualBox也提供了方便管理虚拟机的工具。在本地计算机上,可以使用用户友好的VirtualBox GUI管理在本地计算机上运行的虚拟机。

  • VirtualBox远程桌面扩展(VRDE)是提供最大灵活性的通用扩展接口,可以由第三方开发扩展包。VRDE与Microsoft RDP兼容。
  • VirtualBox远程显示协议(VRDP)随VRDE提供。这是与RDP向后兼容的扩展,允许您使用标准的RDP客户端控制远程虚拟机。

要连接到远程客户虚拟机,您应在虚拟机显示设置中键入主机机器的IP地址和用于远程连接到虚拟机的端口。默认使用端口3389。您可以为不同的VirtualBox虚拟机设置不同的RDP端口号。

VirtualBox拥有一个名为无缝 模式的功能,允许您将来自VM客户操作系统的窗口与主机操作系统的窗口一起显示。Hyper-V没有这样的功能。VirtualBox还可以记录在VM用户界面中显示的内容的视频。无缝模式类似于Unity 模式在VMware Workstation中。

VirtualBox有更灵活的选项来在多个监视器上输出信息。Hyper-V使用RDP技术,允许您使用一个监视器或所有监视器进行图形输出。VirtualBox允许您选择自定义数量的监视器进行图形输出。例如,您可以在VirtualBox中选择3个监视器中的2个。VirtualBox支持最多8个监视器。

思考。在我们的Hyper-V与VirtualBox比较中,VirtualBox在便捷地管理客户操作系统方面是优胜者。

Hyper-V实时迁移 vs. VirtualBox传送

Hyper-V实时迁移允许您将正在运行的虚拟机从一个Hyper-V主机无缝地移动到另一个主机,且无显著的停机时间。当您使用Hyper-V故障转移群集时,这个功能尤其有用,因为它帮助您为虚拟机提供高可用性。建议为Hyper-V故障转移群集使用专用的迁移网络。像虚拟磁盘这样的VM文件必须位于共享存储上。如果您需要将VM文件从一个存储迁移到另一个存储,则应使用存储迁移。

VirtualBox Teleporting是一个虚拟机迁移功能,允许您通过TCP/IP网络将虚拟机从一个VirtualBox主机迁移到另一个主机,即使虚拟机正在运行。源和目标虚拟机必须使用相同的共享存储。虚拟机可以在源主机和目标主机之间以最小的停机时间迁移,与主机操作系统无关。例如,您可以将正在运行的基于Windows的虚拟机从Linux主机迁移到Solaris主机,反之亦然。从VirtualBox版本3.1开始提供Teleporting功能。迁移正在运行的虚拟机可以提高您的虚拟环境的灵活性。

Thoughts。Hyper-V中的虚拟机实时迁移功能更为先进且易于使用,而且Hyper-V支持故障转移集群。

硬件虚拟化和软件虚拟化

Hyper-V支持硬件虚拟化,这是一种使用hypervisor在软件和物理硬件之间创建抽象层以模拟计算机的技术。计算机正常功能所需的所有设备都将使用特殊软件进行模拟。在物理机器上必须在UEFI/BIOS中启用硬件虚拟化。

VirtualBox支持硬件和软件虚拟化。软件虚拟化只能用于使用x86架构的32位客户操作系统的虚拟机。对于64位客户系统,只能使用硬件虚拟化。与大多数其他虚拟化产品不同,软件虚拟化使得即使旧处理器没有硬件虚拟化支持,也可以在计算机上运行多个客户操作系统的VirtualBox。

想法。VirtualBox在通过软件虚拟化的帮助下运行不同客户操作系统方面更加灵活和通用,包括旧操作系统。Hyper-V不支持软件虚拟化,但作为一种类型-1超级监视程序,对于支持的客户操作系统,性能可能更好。

带GUI的远程管理

Hyper-V管理器是一个带有GUI的工具,可帮助您管理您的Hyper-V虚拟机。您可以使用Hyper-V管理器创建、导入、配置、启动、停止和删除虚拟机。您还可以执行其他操作,如配置虚拟交换机、虚拟硬盘、创建检查点、使用VMConnect连接到客户操作系统界面等。您还可以使用它连接到远程Hyper-V服务器,并管理驻留在该服务器上的虚拟机。

phpVirtualBox 是一个开源工具,使用 PHP 编写的 Web 界面,允许您管理带有虚拟机的远程 VirtualBox 实例。phpVirtualBox 提供了与 VirtualBox 图形用户界面相同的界面。因此,您可以通过浏览器远程管理您的 VirtualBox 实例,类似于管理本地实例的方式。如果您在无 GUI 的服务器上运行 VirtualBox(即操作系统没有图形用户界面的服务器),此工具可以作为 VirtualBox GUI 的良好替代品。

使用控制台界面进行远程管理

Hyper-V 服务器可以使用 PowerShell 命令 进行管理。PowerShell 是由 Microsoft 开发的 Windows 命令行界面。但 PowerShell Core 也与 Linux 和 macOS 兼容。为此,必须启用 PowerShell 远程。使用 PowerShell 是自动化 Hyper-V 和虚拟机管理的一种方式,特别适用于大型环境。

VBoxManageVirtualBox 的命令行界面(CLI)。您可以访问 VirtualBox GUI 中提供的所有功能。此外,您可以使用 VBoxManage(不是所有功能都在 GUI 中可用)访问 VirtualBox 虚拟化引擎提供的所有功能。CLI 还可用于管理没有 GUI 的操作系统上的 VirtualBox 实例(仅具有控制台界面)。另一个优点是能够使用脚本和自动化。VBoxManage 是一组管理 VirtualBox 和虚拟机的命令,与 Linux、Windows、Solaris 和 Mac OS 兼容。

虚拟网络

Hyper-V 允许您使用虚拟交换机将虚拟机的虚拟网络适配器连接到所需的网络和主机。在 Hyper-V 中有三种虚拟网络模式:

  • 私有
  • 内部
  • 外部(公共)

了解更多关于Hyper-V 虚拟交换机和网络的信息。Hyper-V 支持 NIC 团队,这对于集群非常有用。

VirtualBox 拥有比 Hyper-V 更多的虚拟网络模式,并提供广泛的网络选项:

  • 未连接
  • NAT
  • NAT 网络
  • 桥接适配器
  • 内部网络
  • 主机-专用适配器
  • 通用驱动程序

阅读更多关于VirtualBox 网络设置和网络模式的信息。

Hyper-V 外部等同于 VirtualBox 桥接适配器,Hyper-V 内部等同于 VirtualBox NAT 网络,而 Hyper-V 私有等同于 VirtualBox 内部网络模式。

思考。VirtualBox 为个人用户提供了更具吸引力的网络模式。Hyper-V 更适合于链路聚合,以提高集群中的网络性能和可靠性。

虚拟机网络流量分析

端口镜像是用于Hyper-V的网络流量分析工具。此功能允许您将接收到的和发送的所有数据包的副本从一个端口发送到另一个端口以进行进一步的数据包分析。使用端口镜像的主要目的是故障排除。您可以创建一个虚拟机,其具有连接到适当虚拟交换机端口的虚拟网络适配器,在该目标虚拟机上安装数据包分析软件,并将来自多个虚拟机的网络数据包发送到目标虚拟机进行分析。

VirtualBox提供了一个网络追踪功能,您可以启用网络数据包记录以进行进一步的分析。因此,VirtualBox利用内置功能,并将虚拟机网络接口的所有捕获流量写入PCAP文件。稍后,您可以在诸如Wireshark之类的流量分析工具中打开这些文件。此功能可以通过命令行界面激活。在完成调查后禁用此功能,以防止用PCAP文件填满整个磁盘。

共享文件夹,在Hyper-V和VirtualBox中拖放

共享文件夹对于不同计算机之间的文件交换很有用,并且可用于在主机操作系统和客户操作系统之间复制文件。

Hyper-V不包括此类内置功能。您可以在主机操作系统中使用Windows GUI或PowerShell手动共享文件夹,并为指定的用户或组在客户操作系统中提供对该文件夹的访问。您还可以在Hyper-V虚拟环境中使用Copy-VMFile PowerShell cmdlet作为在物理机和虚拟机之间复制文件的替代方法。

Hyper-V 仅支持将 USB 存储设备连接到客户操作系统。无法将 USB HASP 键、打印机、扫描仪和其他外围和多媒体设备连接到 Hyper-V VMs。

VirtualBox 包括一个内置的共享文件夹功能,可以从 VirtualBox 用户界面轻松启用,以在 VirtualBox 主机和客户机之间传输文件:

  • 打开 VM 设置 并选择 共享文件夹
  • 添加共享:设置文件夹路径(文件夹位于主机上,例如,C:\temp)。
  • 输入将在客户操作系统中显示的文件夹名称。

如果需要,通过选择相应的复选框启用或禁用以下共享文件夹选项:只读、自动挂载和永久设置。请注意,客户操作系统必须安装 VirtualBox 客户端增强

共享剪贴板 是一个功能,用于从主机到客户端复制和粘贴文本等数据。必须在客户操作系统中安装 Hyper-V 集成服务或 VirtualBox 客户端增强才能使用此功能。Hyper-V 和 VirtualBox 产品都支持共享剪贴板功能。VirtualBox 还支持通过共享剪贴板复制和粘贴文件。

拖放 是 GUI 的一个功能,允许您移动对象,例如文件或文件夹,从屏幕的一部分到另一部分。在虚拟化环境中,拖放允许您将文件或文件夹从主机移动到客户机,反之亦然。但是,Hyper-V 不支持拖放。

在 VirtualBox 中,转到 设备 > 拖放 并选择方向(您可以选择 双向)以启用此功能。

想法。VirtualBox 在此 VirtualBox 对比 Hyper-V 的数据传输类别中获胜。VirtualBox 具有丰富的功能,更为方便。Hyper-V 不支持拖放文件,Hyper-V 文件传输功能与远程桌面协议有关。您可以手动配置共享文件夹,就像在 Windows 中与 Hyper-V VMs 交换文件一样。而在 VirtualBox 中,有“一键”功能可使用共享文件夹。

Hyper-V vs VirtualBox 安全性

Hyper-V 支持使用密钥存储驱动器和虚拟 TPM 进行 VM 加密。第 2 代 VM 支持使用 vTPM(虚拟受信任的平台模块),但第 1 代 VM 不支持。Hyper-V 中的第 2 代 VM 支持 Windows 和 Linux 客户端的安全启动。第 1 代 VM 使用特殊文件 – 密钥存储驱动器 – 存储 BitLocker 秘密。该文件附加到 VM 的虚拟 IDE 控制器,并用于存储 BitLocker 秘密,而不是使用 vTPM。

Hyper-V 可以加密 VM 和 VM 迁移流量。为此,Hyper-V 具有称为 Shielded Virtual Machines 的功能。自 Windows Server 2016 起,主机保护服务用于定义可以在数据中心运行 VM 的合法 Hyper-V 主机。

VirtualBox可以加密存储在虚拟机虚拟磁盘上的数据。VirtualBox支持256位或128位数据加密密钥(DEK)。您应该将包含DEK的虚拟机配置文件保存在安全的位置,并确保不要丢失此文件。

在VirtualBox中加密的不同格式的虚拟磁盘映像不能在其他用于虚拟化的软件中使用。VM数据加密使用了XTS模式的AES算法。用户在启动加密的虚拟机时必须输入密码。

从VirtualBox 7.0开始,可以模拟TPM 2.0芯片并支持安全启动。这个功能允许您在VirtualBox中的虚拟机上运行最新的Windows版本。

想法。两种虚拟化技术中使用的加密方法都足够强大。然而,在这个Hyper-V与VirtualBox的比较中,我们应该提到Hyper-V的加密设置可以满足更安全、更好地在主机之间迁移虚拟机的大型虚拟环境的需求。

Hyper-V与VirtualBox许可证

Hyper-V随Windows客户端和服务器版本一同提供,使用需要付费许可证。您可以阅读有关Windows Server许可选项和虚拟机的Windows Server许可以了解更多信息。还有一个免费替代方案,即名为Hyper-V Server的独立解决方案。Hyper-V Server是一个具有命令行界面的Hypervisor,功能有限,与完整功能的Hyper-V for Windows相比较。

VirtualBox是由GNU通用公共许可证第二版提供的开源解决方案。VirtualBox扩展包,用于增强VirtualBox功能的扩展包,也可供个人使用,但不是开源的。VirtualBox扩展包通过VirtualBox扩展包个人使用和评估许可证进行分发。

VirtualBox扩展包支持USB 2.0和USB 3.0设备透传、虚拟机加密、PXE引导、VRDP、主机摄像头透传、PCI透传、与Oracle Cloud集成等功能。

结论

没有通用答案可以确定使用 VirtualBox 还是 Hyper-V。选择取决于您的需求和所需的产品功能。无论您选择什么,请确保实施虚拟机备份策略。NAKIVO 备份与复制是一款全面的数据保护解决方案,适用于物理服务器和虚拟机,包括 Microsoft Hyper-V 虚拟机。

Source:
https://www.nakivo.com/blog/hyper-v-virtualbox-one-choose-infrastructure/