kvm 虚拟化 Windows 磁盘性能低下

kvm 虚拟化 Windows 磁盘性能低下

免责声明

这确实是此主题。由于目标已经慢慢转移,我提出了一个新问题,因此我认为开一个新帖子是件好事。如果需要,我会合并回来。

设置

  • 带有 B140i 软 RAID 控制器的 HP DL160g9 服务器
  • RAID-5 中的 4 LFF 7.2k
  • 其上装有 Centos 7.2,带有来自 centos virt sig 的 kvm 和 qemu。规格与上一篇文章相比没有变化。
  • 所有虚拟机的存储都在服务器本地
  • 所有 NIC 和提供的 VHDD 都通过 virtio(virt-scsi),缓存为无,io 为本机。
  • 所有虚拟机都有 2 个 VNIC:一个暴露给 LAN,一个在服务器内部(默认的 libvirt NAT 网络)

经过测试的系统

  • Linux 主机(作为参考)
  • 本地 Linux 虚拟机
  • 本地 Win8.1 和 Win10 虚拟机(64 位)
  • 远程 win10 64位 专业工作站
  • 通过 virtualbox 在此类 WS 上运行的远程 Linux VM
  • 通过 virtualbox 在此类 WS 上运行的远程 win8.1 64bit pro VM

经过测试的存储类型

为了了解为什么 Win10/8.1 pro 64bit 在 KVM 下表现如此糟糕,我们进行了多项测试。磁盘性能通过以下方式衡量:

iozone -i 0 -i 8 -t 1 -s 4m

当然,测试是在目标存储设备中的文件夹中运行的。已测试了以下不同的配置:

  1. 准备一个 LVM 思考卷,作为 virtio scsi 驱动程序传递给 Linux 和 Windows VM。

    • 在其上运行 iozone:本地 Linux 和 Windows VM 都经过测试。
  2. 使用与虚拟和物理 LAN 上提供的 iscsi 目标相同的 LVM 厚卷作为块设备。这次启动虚拟机,我们手动连接了 iscsi 目标在正在运行的虚拟机中无需通过 kvm/libvirt。在这种情况下,kvm 应仅在网络上进行调解。

    • 在这种情况下,我们还对外部 Windows 工作站和在其上运行的 Linux VM 进行了基准测试。

结果

结果非常有意义。储存(本地 virtio scsi 磁盘和 iscsi 目标)如果表现很好

  • 我们从主机内部对它们进行测试(通过 LAN ip 而不是环回登录 iscsi 目标)

  • 我们在任何本地 Linux VM 上测试 virtio-scsi/iscsi 目标

  • 我们从 Windows 工作站或在 Virtual Box 上运行的虚拟机测试 iscsi 卷:Linux 和 Win。

当我说伟大时,意思是,给定或获取的吞吐量几乎是本机的,按顺序1 至 170 万 KB/秒(本机 LVM 为 200 万)!

所有组合储存(本地 virtio scsi 磁盘和 iscsi 目标)如果表现不好

  • 我们从 KVM 上的本地 win 8.1/10 VM 运行:例如50 万 KB/秒

注意事项

  • 可以说,virtio-scsi 性能不佳是因为 virtio 驱动程序与 vscsi 存储之间存在矛盾。

  • 另一方面,对于 iscsi 目标而言,这意味着即使 virtio 网络驱动程序也很烂,因为 linux 和 Win 在其他场景(本机或虚拟盒)下运行良好!

帮助

说实话,即使在网络上,我也不认为 Windows 的 virtio 驱动程序如此糟糕。请问您能分享一些经验来了解在哪里调整虚拟机吗?!

相关内容