免责声明
这确实是此主题。由于目标已经慢慢转移,我提出了一个新问题,因此我认为开一个新帖子是件好事。如果需要,我会合并回来。
设置
- 带有 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
当然,测试是在目标存储设备中的文件夹中运行的。已测试了以下不同的配置:
准备一个 LVM 思考卷,作为 virtio scsi 驱动程序传递给 Linux 和 Windows VM。
- 在其上运行 iozone:本地 Linux 和 Windows VM 都经过测试。
使用与虚拟和物理 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 驱动程序如此糟糕。请问您能分享一些经验来了解在哪里调整虚拟机吗?!