我应该使用 VirtualBox、VDI、VMDK、VHD 还是 HDD 来处理哪种磁盘映像?

我应该使用 VirtualBox、VDI、VMDK、VHD 还是 HDD 来处理哪种磁盘映像?

VirtualBox 的最新版本支持多种虚拟磁盘格式,但他们忘了提供它们之间的比较。

  • 虚拟桌面基础架构
  • 虚拟机管理程序
  • 血管内皮细胞
  • 硬盘

现在,我对考虑以下内容的建议或比较感兴趣:

  • 能够使用动态尺寸调整
  • 能够有快照
  • 能够以最小的努力将我的虚拟机移动到另一个操作系统或甚至另一个免费的虚拟化解决方案(可能是可以在 Ubuntu 上正常运行的东西)。
  • 表现

答案1

VirtualBox 具有

  • 全力支持
    • 虚拟桌面基础架构
    • 虚拟机管理程序
    • 血管内皮细胞
  • 部分支持
    • HDD(仅限 Parallels 版本 2)
  • 未记录的支持
    • 准直器
    • 量子电动力学

来源:Oracle® VM VirtualBox® 用户手册»第 5 章虚拟存储»5.2. 磁盘映像文件(VDI、VMDK、VHD、HDD)

创建虚拟硬盘的屏幕截图


回答你的考虑

  • 能够使用动态尺寸调整

虚拟桌面基础架构虚拟机管理程序, 和血管内皮细胞都支持动态分配的存储。VMDK 还具有将存储文件分割成每个小于 2 GB 的文件的附加功能,如果您的文件系统的文件大小限制较小,此功能非常有用。

硬盘准直器, 和量子电动力学如果在 VirtualBox 中创建,则必须动态分配。

  • 能够有快照

VirtualBox 支持快照所有六种格式

  • 能够以最小的努力将我的虚拟机移动到另一个操作系统或甚至另一个免费的虚拟化解决方案(可能是可以在 Ubuntu 上正常运行的东西)。

虚拟桌面基础架构是 VirtualBox 的原生格式。其他虚拟化软件通常不支持 VDI,但从 VDI 转换为其他格式相当容易,尤其是使用qemu-img convert

虚拟机管理程序由 VMWare 开发并为其开发,但 VirtualBox 和 QEMU(另一种常见的虚拟化软件)也支持它。 这种格式可能是您的最佳选择,因为您希望与其他虚拟化软件具有广泛的兼容性。

血管内皮细胞是 Microsoft Virtual PC 的原生格式。Windows Server 2012 引入了 VHDX 作为 VHD 的后继者,但 VirtualBox 不支持 VHDX。

硬盘是一种格式相似之处。Parallels 专门从事 macOS 的虚拟化。 这可能不适合您,尤其是考虑到 VirtualBox 仅支持旧版本的 HDD 格式。

准直器是 qcow 格式的旧原始版本。它已被 qcow2 取代,VirtualBox 不支持 qcow2。

量子电动力学是 qcow2 的一个被废弃的增强功能。 QEMU 建议不要使用 QED。

  • 表现

每种格式可能都具有细微的性能特征,这是由于块存储如何通过格式抽象出来的,但我还没有找到任何比较 VirtualBox 支持的格式的基准。

影响性能的因素还有很多,比如:

  • 您的物理设备限制(在硬盘驱动器上比在固态硬盘为什么?
  • 扩展动态分配的虚拟磁盘驱动器(虚拟磁盘扩展时写入操作会变慢,但一旦虚拟磁盘足够大,扩展的次数就会减少)
  • 虚拟化技术(硬件与软件;硬件虚拟化帮助 VirtualBox 提高虚拟操作系统的速度)
  • 您正在运行虚拟操作系统。由于虚拟化开销,其性能始终比在主机上运行操作系统慢。

答案2

我一直使用 VDI,因为它是 VirtualBox 的原生格式;但是,使用 VMDK(VMWare 格式)将增加与其他虚拟机软件的兼容性。

VirtualBox 可以在 Ubuntu 上正常运行,因此如果目标是 Windows/Ubuntu 互操作性,VDI 将是一个非常有效的选择。

两种格式都可以满足您的要求。

至于另外两种,VHD 是 Microsoft 开发的格式,HDD 是 Apple 开发的格式;它们都是专有许可的,因此限制跨平台支持;我不推荐它们。

答案3

Mpack 在这里解释了 VHD 和 VDI 之间的主要性能差异:

最近研究了 VHD 格式,我预计 VDI 至少会存在一些小的差异,当您比较同类项时,即优化的 VDI 与优化的 VHD 时,差异会最为明显。原因是动态 VHD 格式在整个磁盘中分散了这些“位图”扇区。每次修改块内的扇区时,这些位图块可能也需要更新和写入,这涉及额外的寻道、读取和写入。从驱动器映像读取连续簇时,还必须跳过这些位图扇区 - 需要更多寻道。VDI 格式没有这些开销,特别是如果 VDI 已经过优化(虚拟磁盘上的块按 LBA 顺序排序)。

我的所有评论都适用于动态 VHD 格式与动态 VDI。在固定大小的虚拟磁盘上进行性能测试毫无意义,因为这两种格式都是相同的(只是磁盘的普通映像),只是标题不同。

https://forums.virtualbox.org/viewtopic.php?f=1&t=22688

答案4

我不知道使用 vmdk 是否能够让您在 VMware 中透明地运行在 VirtualBox 中创建的虚拟机。也许可以。但是,更通用的选项可能是使用 VirtualBox 文件/导出功能创建一个“开放虚拟化设备”.ova 文件,然后可以将其导入 VMware。使用这种方法,您可以移植到任何支持 .ova 的虚拟化系统,而无需关心在 VirtualBox 中使用的磁盘映像格式。

如果您需要定期(例如每天)从同一台虚拟机导出数据,这可能会很麻烦。但如果您只是偶尔迁移到不同的技术,那就没问题了。

如果您已经有 .vdi 文件,您可以测试它是否有效,而无需创建新的虚拟机。将其导出到 .ova,然后尝试使用 vmware 导入。

相关内容