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

我正在研究使用文件与分区之间的区别,以便在虚拟机使用中存储虚拟磁盘映像。 常见的知识是基于分区的映像比基于文件的映像更快,因为开销减less了。 这是有道理的,但我从来没有看到任何实际的数字。

我自己的testing带来了不同的结果。 当我testing一个直接到分区的虚拟磁盘,然后用ext4格式化同一个分区时,创build一个存储在ext4文件系统上的虚拟磁盘镜像,然后进行基准testing直接到分区的虚拟化没有任何加速磁盘。 相反,在一些系统上,基于文件的映像甚至更快(可能是由于主机操作系统caching或类似的东西)。 这个testing在很多系统上重复了很多次,结果相当一致。

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

或者也许有其他的理由去相反? 在原始分区映像中没有获得的虚拟磁盘文件格式中的一种可能是一个优点?

造成性能差异的原因是通过使用分区删除一个层(尽pipe很小)来消除虚拟化层,从而提高性能。 但是,如果您在其他VM中共享磁盘,则性能增益可能为零。

这里的性能增益非常小,以至于高度依赖于您的硬件configuration(读取磁盘控制器和RAID布局)。 我的常识是,如果设备(磁盘)不是在多个虚拟机之间共享,并且虚拟机可以直接访问它,那么这是唯一有意义的。 另一个select是在直通设置中使用磁盘控制器(您的硬件和客户操作系统必须支持它),这样您可以移除两层虚拟化,因此性能增益应该更加明显。