VirtualBox USB 3.0 存储设置

VirtualBox USB 3.0 存储设置

我正在上一门大学课程,其中我们使用虚拟机来安全地与 Linux 内核一起工作,因此,我们被告知将我们的 VM 存储在闪存驱动器上会很有用(如果我们想在校园工作)。

我买了一个 usb 3.0 闪存驱动器(Corsair Voyager GT 32gb),但在某些时候运行速度非常慢,尤其是更新(使用“sudo yum update”需要 3 - 6 小时)。这是在确保在 UEFI 中启用虚拟化之后发生的,这大大加快了速度。我克隆了 VM,以便可以在 SSD 上完成第一个项目(希望它会更快),并确保克隆设置为识别它是 SSD,但我注意到控制器的另一个设置:SATA 部分称为使用主机 I/O 缓存

我是否应该为 SSD 的 VM 克隆或闪存驱动器的 VM 启用此设置?这会对性能产生影响或加快速度吗?

答案1

就主机操作系统(我假设是 Windows)而言,您的 VirtualBox.vdi文件“只是一个文件”。不知道您到目前为止对操作系统了解了多少,但如果您熟悉虚拟内存的概念以及磁盘文件如何分页到内存中,那么这基本上就是在说:

  • 如果你禁用主机 I/O 缓存,那么当客户机进行页面读取/写入时,如果发生页面错误在客人(客户机内存中没有该页面),页面错误将总是主机发生页面错误,即对存储介质进行物理读取或写入。
  • 如果启用主机 I/O 缓存,则主机将缓存 VDI 文件的页面。然后,当虚拟机管理程序从主机操作系统请求这些页面时,它们可能并不总是页面错误,如果页面在读取/写入时已经在 RAM 中。

写入稍微复杂一些,因为它取决于您的缓存策略是否是写回/写通,以及您的客户机和主机文件系统是否进行写入合并、延迟分配、日志/元数据延迟分配等。

通俗地说:使用主机 I/O 缓存将提高性能,但可能会损害数据安全,这取决于主机文件系统的设计及其缓存策略。性能提升与主机上的“可用”RAM 量(未用于驻留在应用程序虚拟地址空间或内核地址空间中的数据页面的 RAM 量)直接相关。RAM 越多 = 性能越高。这是因为,如果没有主机 I/O 缓存,您用来避免页面错误的 RAM 量将仅限于分配的 RAM 量给客人——客户机的文件系统/虚拟内存管理器将尽可能避免页面错误,但客户机分配的内存总是少于客户机内存的总和主机内存。启用主机 I/O 缓存时,您也会获得主机内存的其余部分。

只需确保,如果您的 USB 设备配置为高性能和低数据安全性(这是设备管理器中的一个选项),请不要“拔出”驱动器,而无需使用系统托盘优雅地告诉 Windows 移除驱动器。如果它配置为“快速移除”,那么这将大大降低性能,但您可以随时安全地移除它,几乎不会丢失数据。但是总是移除闪存驱动器之前,请关闭您的虚拟机。

还有一件事:您可能知道,闪存驱动器比 SSD 慢得多。原因是它们设计得便宜,只有一个单元,而 SSD 基本上是“许多闪存驱动器组合在一起”(以提高性能)。一分钱一分货。与硬盘驱动器或 SSD 的性能相比,闪存驱动器的性能总是慢得令人无法接受,无论您使用哪种连接器。

相关内容