2011-11-23 00:28:07 +0000 2011-11-23 00:28:07 +0000
314
314

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

最新版本的VirtualBox支持多种格式的虚拟磁盘,但他们忘了提供虚拟磁盘的格式对比,请问我应该使用哪种磁盘映像?

  • VDI
  • VMDK
  • VHD
  • HDD 现在,我想知道一个建议或比较,考虑到以下几点:

  • 能否使用动态大小

  • 能否有快照

  • 能否将我的虚拟机移动到另一个操作系统甚至另一个免费的虚拟化解决方案上,只需花费最少的精力(可能在Ubuntu上运行就可以了)。

答案 (11)

224
224
224
2012-06-22 20:33:51 +0000

VirtualBox 有

  • 完全支持
  • VDI
  • VMDK
  • VHD
  • 部分支持
  • HDD (仅 Parallels 版本 2)
  • 未文档 支持
  • QCOW
  • QED

来源。Oracle® VM VirtualBox® 用户手册](https://www.virtualbox.org/manual/) “ 第 5 章. 虚拟存储 5.2. 磁盘映像文件(VDI、VDDK、VHD、HDD)


回答您的注意事项

  • 能够使用动态调整大小

VDIVMDKVHD都支持动态分配存储。VMDK有一个额外的功能,可以将存储文件分割成每个小于2GB的文件,如果你的文件系统有一个小的文件大小限制,那么这个功能就很有用。

**HDDQCOWQED*,如果在VirtualBox中创建的话,必须动态分配。其他的虚拟化软件一般不支持VDI,但要从VDI转换为其他格式还是很容易的,特别是用qemu-img convert。这种格式可能是您的最佳选择,因为您希望与其他虚拟化软件有广泛的兼容性。Windows Server 2012引入了VHDX作为VHD的继承者,但VirtualBox并不支持VHDX。

**HDD*是Parallels的格式。Parallels 专注于 macOS 的虚拟化。这可能不适合您,尤其是考虑到 VirtualBox 只支持旧版的 HDD 格式。它已经被qcow2所取代,而VirtualBox不支持qcow2。](https://wiki.qemu.org/Features/QED)

  • 性能

每种格式可能都有细微的性能差异,因为格式的块存储是如何被格式抽象出来的,但我没有找到任何比较VirtualBox支持的格式的基准。

还有一些更大的因素会影响性能,例如:

  • 你的物理设备限制(在硬盘驱动器上比固态硬盘….. *为什么? **) –扩展动态分配的虚拟磁盘驱动器(写操作会随着虚拟磁盘的扩展而变慢,但一旦虚拟磁盘足够大,扩展应该会减少) –虚拟化技术硬件与软件;硬件虚拟化有助于VirtualBox,提高虚拟操作系统的速度) –你运行的是虚拟操作系统。由于虚拟化的开销,性能总是比在主机上运行操作系统要慢。
40
40
40
2012-06-22 20:58:21 +0000

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

两种格式都能满足你的要求。

至于另外两种,VHD是微软开发的格式,HDD是苹果开发的格式,这两种格式都是自有授权的,所以限制了跨平台的支持,我不推荐。

18
18
18
2014-05-08 14:20:12 +0000

Mpack在这里解释了VHD和VDI之间的一个关键性能差异:

最近研究了VHD格式,我认为VDI至少会有一个小的差异,当你在比较同类产品时,即优化后的VDI和优化后的VHD之间的差异是最明显的。原因是动态VHD格式有这些分散在整个磁盘中的 “位图 "扇区。每当你修改一个区块内的扇区时,这些位图区块可能也需要更新和写入,涉及到额外的寻求、读取和写入。当从驱动器映像读取连续的群集时,这些位图扇区也必须跳过–更多的寻道。VDI格式就没有这些开销,特别是如果VDI已经优化了(虚拟磁盘上的块按LBA顺序排序)。在固定大小的虚拟磁盘上进行性能测试是没有意义的,因为这两种格式都是一样的(只是一个普通的磁盘映像),只是有不同的头。

5
5
5
2012-07-03 21:22:00 +0000

我不知道使用vmdk是否能让你在VMware中透明地运行在VirtualBox中创建的虚拟机。有可能。然而,一个更普遍的选择可能是使用VirtualBox文件/导出功能来创建一个 “Open Virtualization Appliance "的.ova文件,然后可以导入到VMware中。使用这种方法,你可以移植到任何支持.ova的虚拟化系统中,而无需关心你在VirtualBox中使用的磁盘镜像格式。

如果你已经有一个 .vdi 文件,你可以测试一下这个文件是否可以使用,而不需要创建一个新的虚拟机。将其导出为.ova,然后尝试用vmware导入。

5
5
5
2015-01-08 04:33:15 +0000

这也要看你打算如何使用虚拟磁盘。并不是每个虚拟机都希望在一个磁盘上有一个分区。

VDI似乎有更多的选择(当与VirtualBox一起使用时),但是一旦你把VirtualBox从图片中移除,对VDI的支持就会变得有些不稳定(截至2014年年底)。在linux或Windows 7上安装VDI(如环回设备)比你想象中的更难,更容易出问题。几乎就像VDI有太多的功能,让你很难做出完全符合的实用程序,可以在它上运行。

VMDK只是当你想让它与任何工作站上的任何VM一起工作时,当你想同时将它克隆3次到网络上的其他系统时,以及当你想撬开它而不启动VM实例时,VMDK就没有那么痛苦了。

尽管我90%的时间都在使用VirtualBox,但在某些工作流程中,当我的磁盘变得无法访问时,这几次的情况让我倾向于使用可插拔/共享文件系统的VMDK。

5
5
5
2015-11-28 18:23:51 +0000

磁盘映像文件驻留在主机系统中,被来宾系统视为具有一定几何形状的硬盘。当来宾操作系统从硬盘中读取或写入硬盘时,VirtualBox 会将请求重定向到映像文件。然而,与物理磁盘不同,VirtualBox允许你在创建后扩展映像文件,即使它已经有数据,也可以扩展;VirtualBox支持四种磁盘映像文件的变体:

VDI:通常情况下,VirtualBox使用自己的容器格式来客制化硬盘–虚拟磁盘映像(VDI)文件。特别是当你创建一个新的虚拟机时,将使用这种格式。

VMDK:VirtualBox还完全支持其他许多虚拟化产品,特别是VMware公司使用的流行的、开放的VMDK容器格式。 [25]

VHD:VirtualBox也完全支持微软公司使用的VHD格式。

VHD:VirtualBox还支持Parallels版本2(HDD格式)的映像文件。[26]由于缺乏该格式的文档,不支持较新的格式(3和4)。但是,您可以使用 Parallels 提供的工具将这些映像文件转换为版本 2 格式。

4
4
4
2015-01-30 15:13:42 +0000

对我来说,使用vmdk的一个很好的理由是,Virtualbox(至少在v4.1之前)使用VDI格式的Virtualbox,随着时间的推移,往往会把分配的磁盘空间全部填满,尽管内部虚拟磁盘的使用量仍然少得多。使用Virtualbox使用vmdk磁盘的时候,这个问题似乎没有那么严重。

但我说的是多年的正常运行时间。这可能不是很多人都会遇到的问题。

3
3
3
2016-11-19 00:23:59 +0000

看来,使用VDI可以将磁盘文件修剪到实际大小 VirtualBox和SSD的TRIM命令支持

2
2
2
2017-09-21 15:41:54 +0000

我刚刚将一个原始的VMDK迁移到了一个创见SSD370 128GB的分区,映射到了三星Pro 850 512GB。我不明白为什么,可能是我哪里出错了,

我通过虚拟媒体管理器把VMDK复制到850上。一次作为VDI,一次作为VMDK。

然后我在图像上运行hdparm -tT --direct /dev/sda。对于每一次的 “运行",我都换成了 "机器->设置->存储->控制器SATA->ImageFile.xxx"。SSD370上的原始分区是由一个VMDK文件定义的,所以不是真正的映像。

这些结果是:

################################################################################################

Welcome to Ubuntu 16.04.3 LTS (GNU/Linux 4.4.0-96-generic x86_64)

  System information as of Thu Sep 21 17:02:51 CEST 2017

  System load: 1.96 Processes: 201
  Usage of /: 83.2% of 43.88GB Users logged in: 0
  Memory usage: 4% IP address for eth0:    
  Swap usage: 0% IP address for docker0: 172.17.0.1

################################################################################################

======================================================================================
      V M D K --- R A W !!! --- on Transcend SSD370 128 GB
======================================================================================

 Timing O_DIRECT cached reads: 1024 MB in 2.00 seconds = 511.61 MB/sec <---
 Timing O_DIRECT disk reads: 1134 MB in 3.00 seconds = 377.88 MB/sec <---

 Timing O_DIRECT cached reads: 1042 MB in 2.00 seconds = 520.82 MB/sec <---
 Timing O_DIRECT disk reads: 1162 MB in 3.00 seconds = 387.27 MB/sec <---

---

 Timing O_DIRECT cached reads: 816 MB in 2.00 seconds = 407.55 MB/sec
 Timing O_DIRECT disk reads: 1020 MB in 3.01 seconds = 339.43 MB/sec <---

======================================================================================
      V M D K --- on Samsung Pro 850 515GB
======================================================================================

 Timing O_DIRECT cached reads: 836 MB in 2.00 seconds = 417.21 MB/sec <---
 Timing O_DIRECT disk reads: 782 MB in 3.01 seconds = 260.21 MB/sec

 Timing O_DIRECT cached reads: 834 MB in 2.00 seconds = 416.08 MB/sec
 Timing O_DIRECT disk reads: 786 MB in 3.00 seconds = 261.71 MB/sec

---

 Timing O_DIRECT cached reads: 826 MB in 2.00 seconds = 412.75 MB/sec <---
 Timing O_DIRECT disk reads: 774 MB in 3.00 seconds = 257.79 MB/sec

 Timing O_DIRECT cached reads: 828 MB in 2.00 seconds = 413.88 MB/sec <---
 Timing O_DIRECT disk reads: 774 MB in 3.00 seconds = 257.83 MB/sec

---

 Timing O_DIRECT cached reads: 842 MB in 2.00 seconds = 420.76 MB/sec <---
 Timing O_DIRECT disk reads: 770 MB in 3.00 seconds = 256.56 MB/sec

======================================================================================
      V D I --- on Samsung Pro 850 515GB
======================================================================================

 Timing O_DIRECT cached reads: 470 MB in 2.01 seconds = 234.21 MB/sec <---
 Timing O_DIRECT disk reads: 766 MB in 3.00 seconds = 254.94 MB/sec

 Timing O_DIRECT cached reads: 494 MB in 2.00 seconds = 246.45 MB/sec <---
 Timing O_DIRECT disk reads: 754 MB in 3.00 seconds = 250.92 MB/sec

 Timing O_DIRECT cached reads: 490 MB in 2.00 seconds = 244.46 MB/sec <---
 Timing O_DIRECT disk reads: 764 MB in 3.01 seconds = 254.03 MB/sec

################################################################################################
# Data above comes from here
################################################################################################

======================================================================================
      V M D K --- on Samsung Pro 850 515GB
======================================================================================

  System information as of Thu Sep 21 17:02:51 CEST 2017

user@xeon:~$ sudo hdparm -tT --direct /dev/sda
/dev/sda:
 Timing O_DIRECT cached reads: 836 MB in 2.00 seconds = 417.21 MB/sec <======
 Timing O_DIRECT disk reads: 782 MB in 3.01 seconds = 260.21 MB/sec <======

user@xeon:~$ sudo hdparm -tT /dev/sda
/dev/sda:
 Timing cached reads: 21080 MB in 2.00 seconds = 10554.40 MB/sec
 Timing buffered disk reads: 784 MB in 3.00 seconds = 260.92 MB/sec

user@xeon:~$ sudo hdparm -tT --direct /dev/sda
/dev/sda:
 Timing O_DIRECT cached reads: 834 MB in 2.00 seconds = 416.08 MB/sec <======
 Timing O_DIRECT disk reads: 786 MB in 3.00 seconds = 261.71 MB/sec <======

======================================================================================
      V M D K --- R A W !!! --- on Transcend SSD370 128 GB
======================================================================================

  System information as of Thu Sep 21 17:00:47 CEST 2017

user@xeon:~$ sudo hdparm -tT --direct /dev/sda
/dev/sda:
 Timing O_DIRECT cached reads: 1024 MB in 2.00 seconds = 511.61 MB/sec <======
 Timing O_DIRECT disk reads: 1134 MB in 3.00 seconds = 377.88 MB/sec <======

user@xeon:~$ sudo hdparm -tT /dev/sda
/dev/sda:
 Timing cached reads: 21182 MB in 2.00 seconds = 10603.52 MB/sec
 Timing buffered disk reads: 1060 MB in 3.00 seconds = 352.91 MB/sec

user@xeon:~$ sudo hdparm -tT --direct /dev/sda
/dev/sda:
 Timing O_DIRECT cached reads: 1042 MB in 2.00 seconds = 520.82 MB/sec <======
 Timing O_DIRECT disk reads: 1162 MB in 3.00 seconds = 387.27 MB/sec <======

======================================================================================
      V M D K --- on Samsung Pro 850 515GB
======================================================================================

  System information as of Thu Sep 21 16:58:12 CEST 2017

user@xeon:~$ sudo hdparm -tT --direct /dev/sda
/dev/sda:
 Timing O_DIRECT cached reads: 826 MB in 2.00 seconds = 412.75 MB/sec <======
 Timing O_DIRECT disk reads: 774 MB in 3.00 seconds = 257.79 MB/sec <======

user@xeon:~$ sudo hdparm -tT /dev/sda
/dev/sda:
 Timing cached reads: 22082 MB in 2.00 seconds = 11055.78 MB/sec
 Timing buffered disk reads: 788 MB in 3.01 seconds = 262.11 MB/sec

user@xeon:~$ sudo hdparm -tT --direct /dev/sda
/dev/sda:
 Timing O_DIRECT cached reads: 828 MB in 2.00 seconds = 413.88 MB/sec <======
 Timing O_DIRECT disk reads: 774 MB in 3.00 seconds = 257.83 MB/sec <======

======================================================================================
      V D I --- on Samsung Pro 850 515GB
======================================================================================

  System information as of Thu Sep 21 16:55:24 CEST 2017

user@xeon:~$ sudo hdparm -tT /dev/sda
/dev/sda:
 Timing cached reads: 21468 MB in 2.00 seconds = 10747.37 MB/sec
 Timing buffered disk reads: 662 MB in 3.01 seconds = 220.12 MB/sec

user@xeon:~$ sudo hdparm -tT --direct /dev/sda
/dev/sda:
 Timing O_DIRECT cached reads: 470 MB in 2.01 seconds = 234.21 MB/sec <======
 Timing O_DIRECT disk reads: 766 MB in 3.00 seconds = 254.94 MB/sec <======

user@xeon:~$ sudo hdparm -tT --direct /dev/sda
/dev/sda:
 Timing O_DIRECT cached reads: 494 MB in 2.00 seconds = 246.45 MB/sec <======
 Timing O_DIRECT disk reads: 754 MB in 3.00 seconds = 250.92 MB/sec <======

user@xeon:~$ sudo hdparm -tT /dev/sda
/dev/sda:
 Timing cached reads: 20872 MB in 2.00 seconds = 10448.98 MB/sec
 Timing buffered disk reads: 694 MB in 3.01 seconds = 230.78 MB/sec

user@xeon:~$ sudo hdparm -tT --direct /dev/sda
/dev/sda:
 Timing O_DIRECT cached reads: 490 MB in 2.00 seconds = 244.46 MB/sec <======
 Timing O_DIRECT disk reads: 764 MB in 3.01 seconds = 254.03 MB/sec <======

======================================================================================
      V M D K --- on Samsung Pro 850 515GB
======================================================================================

  System information as of Thu Sep 21 16:52:32 CEST 2017

user@xeon:~$ sudo hdparm -tT /dev/sda
/dev/sda:
 Timing cached reads: 20872 MB in 2.00 seconds = 10448.90 MB/sec
 Timing buffered disk reads: 764 MB in 3.01 seconds = 254.11 MB/sec

user@xeon:~$ sudo hdparm -tT --direct /dev/sda
/dev/sda:
 Timing O_DIRECT cached reads: 842 MB in 2.00 seconds = 420.76 MB/sec <======
 Timing O_DIRECT disk reads: 770 MB in 3.00 seconds = 256.56 MB/sec <======

======================================================================================
      V M D K --- R A W !!! --- on Transcend SSD370 128 GB
======================================================================================

  System information as of Thu Sep 21 16:29:55 CEST 2017

user@xeon:~$ sudo hdparm -tT /dev/sda
/dev/sda:
 Timing cached reads: 22034 MB in 2.00 seconds = 11029.82 MB/sec
 Timing buffered disk reads: 990 MB in 3.00 seconds = 329.68 MB/sec

user@xeon:~$ sudo hdparm -tT --direct /dev/sda
/dev/sda:
 Timing O_DIRECT cached reads: 816 MB in 2.00 seconds = 407.55 MB/sec <======
 Timing O_DIRECT disk reads: 1020 MB in 3.01 seconds = 339.43 MB/sec <======

我真的不知道该怎么理解,也许有人想留言评论一下。那么我选择了VMDK。

2
2
2
2017-08-02 18:14:46 +0000

如果虚拟机增长过大,VDI就更容易压缩。

1
1
1
2018-06-12 08:27:14 +0000

很久以前,我做了一个测试,将动态VDI转换为动态VHD只是为了测试速度和文件大小。我记得我看到的是:

我记得我看到的是:

  1. 开机时间明显不同,如果我不记得了,VHD比VDI快1.6倍
  2. VHD的大小比VDI大得多,大约比18GiB大了4GiB,所以是VDI的1.2倍。

给你一个建议:VHD/VHDX可以在任何Windows 7及以上的系统中使用DiskPart命令行工具直接压缩,而VDI则需要外部工具CloneVDI。