如果我允许虚拟机访问原始分区,它会比普通的基于文件的虚拟磁盘快得多吗?
如果重要的话,我正在使用 VirtualBox、Windows 7 和 5400 rpm HDD。
答案1
Microsoft Word 文档标题为虚拟硬盘性能讨论了在 Hyper-V 下获得的性能结果。它指出:
自 Windows Server 2008/Hyper-V 发布到制造以来,固定大小的 VHD 性能一直与物理磁盘相当,在 Windows Server R2 中,固定 VHD 性能保持不变,即它与原始磁盘或原始文件一样好。
为了支持这一说法,该文档包含了针对各种情况的措施,从中可以得出结论,原始分区/磁盘不会显著提高性能,甚至根本不会提高性能。
结果太多,无法在此重复,因此下面我仅给出其中两个。
对于固定大小的 VHD:
对于动态扩展 VHD(结果不像以前那么统一):
答案2
我个人坚持使用 VHD,而不是使用原始访问。Virtualbox 中的警告文档引发了有关稳定性问题的各种警示。
“原始硬盘访问”;它允许客户操作系统访问其虚拟硬盘,而无需通过主机操作系统文件系统。映像文件与原始磁盘的实际性能差异很大,具体取决于主机文件系统的开销、是否使用动态增长映像以及主机操作系统缓存策略。缓存还间接影响其他方面,例如故障行为,即虚拟磁盘是否包含主机操作系统崩溃前写入的所有数据。有关详细信息,请参阅主机操作系统文档..... 不正确使用或使用过时的配置可能会导致物理磁盘上的数据完全丢失。最重要的是,不要尝试在客户机中使用当前正在运行的主机操作系统启动分区。这将导致严重的数据损坏。
当我必须同时运行 3 个操作系统并且文件位于同一分区时,我曾将原始磁盘与 VMWare 一起使用。原始磁盘略微提高了性能。但是,我在使用快照等功能时遇到了问题。因此,我切换回了 VHD 设置。在使用单个 VM 的正常操作模式下,我没有体验到任何明显的性能提升。但是,我尚未使用任何性能评估工具验证这一点。
答案3
我在 VirtualBox 中使用 Linux 作为主机操作系统,猜测是 WinXP。我之前将它用于文件存储,现在我的 XP 位于硬盘上的单独分区中。我的观察是,它没有任何好处,至少我感觉不到。理论上有好处,因为您将跳过 FS 层,但对于当今的系统来说,它的好处似乎太小,不重要。
所以我的经验是:使用预分配存储的文件,因为动态分配的图像会产生巨大的差异(它比预分配的慢得多,并且 IO 占用更大)。