在Root上运行FreeBSD的主机ZFS运行带有Windows Server 2003客户端的VirtualBox非常慢的HD速度

这是我的设置:我正在运行双核四Xeon 2.0Ghz与16GB的Ram和2 x 2TB的WD绿色驱动器与FreeBSD 7的ZFS的根。 硬盘在ZFS镜像中。 我正在运行VirtualBox 4.0.14。 我有2个Windows Server 2003 Guest,每个分别使用4 GB的Ram,并且有大约70%的320个VDI虚拟磁盘已满。 一个Windows Server是terminal服务器,另一个是MS SQL数据库服务器。

当在Samba上直接从FreeBSD服务器执行磁盘拷贝和传输时,我可以在读取和写入时获得80-90 MB / s的传输速率。 当我尝试在虚拟机内部传输时,我最多可以获得10MB / s的速度。

当我在VM中复制一个大文件时,我获得了10MB / s的最大值。 使用zpool iostat我从来没有看到虚拟机使用超过20-30 MB / s的最大传输。 在VirtualBoxconfiguration里面,我已经尝试了IDE适配器和SATA。 我还没有尝试SCSI。

什么可能是如此慢的磁盘访问速度的原因?

  1. 你应该更新到8.3或9.0,那里有很多的修复。
  2. 你应该更新VirtualBox。 在执行此操作之前,您需要更新端口。
  3. 设置磁盘的好方法是:
    • 将它们移动到zvols,zvols可以通过VBoxManage内部命令createrawvmdk转移到VirtualBox,这将使它使用更less的元数据并将扇区限制为8k(提示:因为您的扇区默认最大为512K,几乎每写入一个字节将导致写入512K块)。
    • 虚拟磁盘上的所有数据已经​​由虚拟化系统FSpipe理,因此您可以对zfs vdev进行微调:
      • sync = disabled,这将closures磁盘login,使磁盘不会等待长时间运行的写入;
      • logbias =吞吐量,当启用日志时,数据的新页面将从zpool获取,而不是从意图日志获得,沟渠双写; 数据也立即写入;
      • 压缩=打开,在大多数情况下这加快了读/写;
      • 不要打开。
  4. 不要使用SCSI,SATA是使用磁盘的更好方法。 更新VirtualBox后,在控制器上设置hostiocache。

在出现问题的客户操作系统的Virtualbox设置中更改您的适配器types。

首先,select正在经历较慢networking传输速率的实例并closures它。 然后进入其设置。

在左边select“networking”,然后在右边select“高级”。

有一个标有“适配器types”的下拉菜单。

尝试每种适配器types,看看是否有其他选项解决您的问题。

您可能还想升级到当前版本的Virtualbox:4.1.14。 我认为FreeBSD ports集合中的最新版本目前是4.1.12,但即使这样,它也应该比你使用的4.0.14更好。

在旁边注意,为什么FreeBSD 7? 9有更好的ZFS支持。