使用 Windows Server 2003 客户机运行 VirtualBox 的根上的 FreeBSD 主机 ZFS 非常慢的高清速度

chi*_*min 7 freebsd windows-server-2003 zfs virtualbox

这是我的设置:我正在运行带有 16GB 内存和 2 个 2TB WD Green 驱动器的双四核 Xeon 2.0Ghz 驱动器,带有 FreeBSD 7,根目录下有 ZFS。硬盘驱动器位于 ZFS 镜像中。我正在运行 VirtualBox 4.0.14。我有 2 个 Windows Server 2003 来宾,每个来宾分别使用 4 GB 内存,并且有 320 个大约 70% 已满的 VDI 虚拟磁盘。一台 Windows Server 是终端服务器,另一台是 MS SQL 数据库服务器。

当直接在 Samba 上从 FreeBSD 服务器执行磁盘复制和传输时,我能够在读取和写入时获得 80-90 MB/s 的传输速率。当我尝试在 VM 内部传输时,我得到的最大速度为 10MB/s。

当我在 VM 中复制一个大文件时,最大速度为 10MB/s。使用 zpool iostat 我从来没有看到 VM 使用超过 20-30 MB/s 的最大传输。在 VirtualBox 配置中,我尝试了 IDE 适配器和 SATA。我还没有尝试过 SCSI。

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

kwo*_*orr 3

  1. 您应该更新到 8.3 或 9.0,其中有很多修复。
  2. 您应该更新 VirtualBox。在执行此操作之前,您需要更新端口。
  3. 设置磁盘的好方法是:
    • 将它们移动到 zvols,zvols 可以通过 VBoxManage 内部命令 createrawvmdk 转移到 VirtualBox,这将使其使用更少的元数据并将扇区限制为 8k(提示:由于您的扇区默认最大为 512K,几乎每个写入的字节将导致写入 512K 块);
    • 虚拟磁盘上的所有数据都已由虚拟化系统 FS 管理,因此您可以微调 zfs vdev:
      • sync=disabled,这将关闭磁盘上的日志记录,使磁盘能够不等待长时间运行的写入;
      • logbias=吞吐量,当启用日志时,将从 zpool 获取新的数据页面,而不是从意图日志获取,从而避免双重写入;数据也立即写入;
      • Compression=on,在大多数环境中这会加快读/写速度;
      • 不要打开重复数据删除。
  4. 不要使用 SCSI,SATA 是使用磁盘的更好方式。更新 VirtualBox 后,在控制器上设置 hostiocache。