最新版本的VirtualBox支持多种虚拟磁盘格式,但是它们忘记提供它们之间的比较。
- VDI
- 虚拟机
- 超高清
- 硬碟
现在,我对考虑以下内容的建议或比较感兴趣:
- 能够使用动态尺寸
- 能够有快照
- 能够将我的虚拟机转移到另一个OS甚至另一个免费的虚拟化解决方案,而只需花费很少的精力(可能在Ubuntu上可以很好地运行)。
- 性能
最新版本的VirtualBox支持多种虚拟磁盘格式,但是它们忘记提供它们之间的比较。
现在,我对考虑以下内容的建议或比较感兴趣:
Answers:
VirtualBox有
来源:《Oracle®VMVirtualBox®用户手册》 » 第5章。虚拟存储 » 5.2。磁盘映像文件(VDI,VMDK,VHD,HDD)
- 能够使用动态尺寸
VDI,VMDK和VHD均支持动态分配的存储。VMDK具有将存储文件拆分为每个文件小于2 GB的附加功能,如果您的文件系统文件大小限制较小,则该功能很有用。
如果在VirtualBox中创建HDD,QCOW和QED,则必须动态分配它们。
- 能够有快照
VirtualBox支持所有六种格式的快照。
- 能够将我的虚拟机转移到另一个OS甚至另一个免费的虚拟化解决方案,而只需花费很少的精力(可能在Ubuntu上可以很好地运行)。
VDI是VirtualBox的本机格式。其他虚拟化软件通常不支持VDI,但是将VDI转换为另一种格式非常容易,尤其是使用qemu-img convert
。
VMDK由VMWare开发并为VMWare开发,但VirtualBox和QEMU(另一种常见的虚拟化软件)也支持它。 该格式可能是您的最佳选择,因为您希望与其他虚拟化软件具有广泛的兼容性。
VHD是Microsoft Virtual PC的本机格式。Windows Server 2012引入了VHDX作为VHD的后继产品,但VirtualBox不支持VHDX。
HDD是Parallels的一种格式。Parallels专门针对macOS进行虚拟化。 这可能不适合您,特别是考虑到VirtualBox仅支持旧版本的HDD格式。
QCOW是qcow格式的旧原始版本。它已被VirtualBox不支持的qcow2取代。
QED是qcow2的放弃增强。 QEMU建议不要使用QED。
- 性能
每种格式由于块存储如何通过格式抽象而可能具有细微的性能特征,但是我还没有找到任何基准来比较VirtualBox支持的格式。
有一些较大的因素会影响性能,例如:
Mpack在这里解释了VHD和VDI之间的关键性能差异:
最近研究了VHD格式后,我希望VDI的偏好至少存在一个小差异,当您进行类似比较时,这是最明显的,即优化的VDI与优化的VHD。原因是动态VHD格式具有分散在整个磁盘中的这些“位图”扇区。每次修改块内的扇区时,这些位图块也可能需要更新和写入,这涉及额外的查找,读取和写入。从驱动器映像读取连续的簇时,也必须跳过这些位图扇区-进行更多查找。VDI格式没有这些开销,尤其是如果VDI已经过优化(虚拟磁盘上的块按LBA顺序排序)时,尤其如此。
我所有的评论都适用于动态VHD格式与动态VDI。在固定大小的虚拟磁盘上进行性能测试是没有意义的,因为这两种格式都是相同的(只是磁盘的普通映像),只是它们的头不同。
我不知道使用vmdk是否可以使您透明地运行在VMware的VirtualBox中创建的虚拟机。它可能。但是,更通用的选择是使用VirtualBox File / Export函数创建“ Open Virtualization Appliance” .ova文件,然后将其导入VMware。使用这种方法,您可以移植到任何支持.ova的虚拟化系统,而无需关心在VirtualBox中使用哪种磁盘映像格式。
如果您需要定期(例如每天)从同一VM导出,可能会很麻烦。但是,如果您偶尔仅使用另一种技术,那应该没问题。
如果您已经有一个.vdi文件,则可以测试此文件是否有效,而无需创建新的虚拟机。将其导出到.ova,然后尝试使用vmware导入。
这也取决于您计划如何使用虚拟磁盘。并非每个VM都希望在单个磁盘上有一个分区。
VDI似乎有更多选择(当与VirtualBox一起使用时),但是一旦您将VirtualBox淘汰了,对VDI的支持就会有些不稳定(截至2014年底)。
例如,我的解决方案需要最大程度的跨平台支持。在Linux或Windows 7上安装VDI(例如回送设备)比您预期的要困难和麻烦。几乎像VDI一样,它具有太多的功能,因此很难制作可以在其上运行的完全一致的实用程序。
当您希望将VMDK与任何工作站上的任何VM一起使用,将其同时克隆3次到网络上的其他系统以及想要将其撬开而不启动VM时,VMDK都变得轻松自如实例。
即使我90%的时间都使用VirtualBox,但是在某些工作流程中磁盘无法访问的那几次,使我偏向于将VMDK用于可插拔/共享文件系统。
磁盘映像文件驻留在主机系统上,并被来宾系统视为具有特定几何形状的硬盘。当来宾操作系统从硬盘读取或写入硬盘时,VirtualBox会将请求重定向到映像文件。
与物理磁盘一样,虚拟磁盘具有大小(容量),在创建映像文件时必须指定该大小。与物理磁盘相反,VirtualBox允许您在创建后扩展映像文件,即使该文件已经有数据也是如此。VirtualBox支持磁盘映像文件的四个变体:
VDI:通常,VirtualBox对来宾硬盘使用其自己的容器格式-虚拟磁盘映像(VDI)文件。特别是,当您使用新磁盘创建新的虚拟机时,将使用此格式。
VMDK:VirtualBox还完全支持许多其他虚拟化产品,尤其是VMware使用的流行且开放的VMDK容器格式。[25]
VHD:VirtualBox还完全支持Microsoft使用的VHD格式。
还支持Parallels版本2(HDD格式)的图像文件。[26] 由于缺少格式文件,因此不支持较新的格式(3和4)。但是,您可以使用Parallels提供的工具将此类图像文件转换为版本2格式。
看起来使用VDI可以将磁盘文件修整为实际大小 VirtualBox和SSD的TRIM命令支持
edit
在我的问题下有一个按钮供您参考:D
很久以前,我做了一个测试,将动态vdi转换为动态vhd只是为了测试速度和文件大小。
请记住,这是一个安装有某些应用程序的不变的Windows guest虚拟机操作系统,请记住,在我的测试中,我将一种格式转换为另一种格式,因此两种格式都必须具有完全相同的映像,例如进行克隆。
对于64GiB的磁盘,VDI文件大小为18GiB,而VHD的文件大小为22GiB。
我记得我曾经看过泰斯两件事:
那是很久以前的事,并且测试是在HDD上完成的,但是我确保两个文件都进行了碎片整理,并且在磁盘的快速部分上彼此相邻。
希望有人可以进行真正的SSD测试,但我的感觉是VHD比VDI更快(更大)。
提示:使用DiskPart命令行工具可以在任何Windows 7和更高版本上直接压缩VHD / VHDX,对于VDI,需要外部工具CloneVDI。
抱歉,我没有测试VMDK,我不知道如何在不更改其UUID(磁盘UUID)的情况下对其进行压缩,请记住,无论您使用哪种格式,VBOX命令工具都会在每个克隆上对其进行更改。
我刚刚迁移了原始VMDK,该VMDK已映射到Transcend SSD370 128 GB的分区到Samsung Pro 850 512GB。
显然,VMDK比VDI快得多。我不明白为什么,也许我在某个地方犯了一个错误。
我通过虚拟媒体管理器将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。