虚拟磁盘映像 - 文件或分区

tyl*_*erl 8 virtualization linux performance virtual-machines kvm-virtualization

我正在研究在 VM 使用中使用文件与分区来存储虚拟磁盘映像之间的差异。的常识是,基于分区的图像是不是因为一个基于文件的图像更快的开销降低。这是有道理的,但我从未见过任何实际数字。

我自己的测试证实了不同的结果。当我标杆直接到分区的虚拟磁盘,然后格式化ext4的是同一个分区,创建存储上的ext4文件系统上的虚拟磁盘映像,然后基准,我看不出有任何加速在所有的直接到分区的虚拟盘。相反,在某些系统上,基于文件的映像甚至更快(可能是由于主机操作系统缓存或类似的原因)。该测试在许多系统上重复多次,结果相当一致。

因此,也许抛开性能理由,使用分区而不是虚拟磁盘映像是否仍然被认为更好?直接分区访问比图像文件更好还有其他原因吗?

或者也许有什么理由反过来?也许是原始分区映像无法获得的一种虚拟磁盘文件格式的优势?

drc*_*lus 5

性能上的差异在于去除虚拟化层,通过使用分区,您可以去除一层(尽管很小),因此可以预期性能提升。但是,如果您在其他 VM 之间共享磁盘,则性能增益可能为零。

这里的性能提升非常小,它在很大程度上取决于您的硬件配置(读取磁盘控制器和 RAID 布局)。我的常识是,这仅在设备(磁盘)不在多个 VM 之间共享时才有意义,并且 VM 可以直接访问它。另一种选择是在直通设置中使用磁盘控制器(您的硬件和来宾操作系统必须支持它),这样您就可以删除两层虚拟化,因此性能增益应该更加明显。