如今,越来越多的工作负载在虚拟机 (VM) 中运行,包括在来宾操作系统中需要更多 IO 的工作负载。在 VMware vSphere 上的 VM 中,所有虚拟磁盘 (VMDK) 都连接到默认配置中的 LSI 逻辑 SAS SCSI 适配器。此适配器无需安装额外驱动程序即可被所有操作系统识别,但并不总是提供最佳性能,尤其是在使用 SSD RAID 或 NVMe 存储时。在本文中,我们比较了虚拟存储控制器LSI Logical SAS、VMware Paravirtual和NVMe Controller。
控制器型号
几乎每个 VM 中的标准控制器都是LSI 逻辑 SAS SCSI 控制器。每个客户操作系统都识别并支持此控制器,无需额外的驱动程序。它适用于几乎所有没有大量 I/O 要求的工作负载。Microsoft Server Cluster Service (MSCS)的配置也是必需的。
从 ESXi 4.0 和虚拟硬件版本 7 开始,VMware 准虚拟控制器可用。该控制器是为高性能存储系统开发的,因为它可以处理更高的 I/O 并降低 CPU 负载。为了让来宾操作系统使用控制器,必须安装VMware Tools。
从 ESXi 6.5 和虚拟硬件版本 13 开始,还可以将NVMe 控制器添加到 VM。该控制器进一步优化了 SSD RAID、NVMe 和 PMEM 存储的性能。此控制器是 vSphere 7.0 中 Windows 虚拟机的默认控制器。
正确控制器的选择取决于 VM 中的应用程序。例如,如果是办公室虚拟机,则对性能的要求相对较低,可以使用标准的 LSI Logical SAS SCSI 控制器。如果 VM 内需要更高的存储性能,并且其背后的存储系统也提供更高的性能,则 VMware 准虚拟控制器通常更合适。对于使用 SSD RAID、NVMe 或 PMEM 存储时的绝对高端性能以及 VM 中非常高的性能要求,NVMe 控制器是最佳选择。
性能测试
我们针对不同的场景进行了各种性能测试。测试场景仅为示例,应根据自己的工作负载单独调整各个值,以实现真实的结果。所用测试系统的详细信息:
硬件软件:
- 超微主板 X11DPi-NT
- 2 个英特尔至强金牌 5222(3.80GHz,4 核,16.5MB)
- 256GB ECC 寄存 (RDIMM) DDR4 2666 RAM 4 列
- 3.2 TB 三星 SSD NVMe PCI-E 3.0 (PM1725b)
- ESXi 6.7.0 更新 2(内部版本 13981272)
测试虚拟机
- Windows 10 专业版 (18362)
- 2个CPU插槽
- 8 个 vCPU
- 8GB 内存
- VMware 半虚拟化
- LSI 逻辑 SAS
- NVMe 控制器
- 厚置备快速置零 VMDK
性能比较
数据库服务器
数据库服务器(8K 随机;70% 读取;8 个线程;16 个未完成的 IO) | |||||||
IOPS | 兆字节/秒 | 延迟(毫秒) | 中央处理器 (%) | ||||
---|---|---|---|---|---|---|---|
LSI 逻辑 SAS | 78210.16 | 611.02 | 1.633 | 24.81 | |||
VMware 半虚拟化 | 153723.45 | 1200.96 | 0,832 | 31.27 | |||
NVMe 控制器 | 203612.54 | 1590.72 | 0,628 | 48.03 |
电子邮件服务器
电子邮件服务器(4K 随机;60% 读取;8 个线程;16 个未完成的 IO) | |||||||
IOPS | 兆字节/秒 | 延迟(毫秒) | 中央处理器 (%) | ||||
---|---|---|---|---|---|---|---|
LSI 逻辑 SAS | 83403.47 | 325,79 | 1.506 | 23.52 | |||
VMware 半虚拟化 | 157624.97 | 615.72 | 0,811 | 31.46 | |||
NVMe 控制器 | 236622.59 | 924.31 | 0,540 | 52.11 |
文件服务器
文件服务器(64K 顺序;90% 读取;8 个线程;16 个未完成的 IO) | |||||||
IOPS | 兆字节/秒 | 延迟(毫秒) | 中央处理器 (%) | ||||
---|---|---|---|---|---|---|---|
LSI 逻辑 SAS | 44739.43 | 2796.21 | 2.860 | 12.29 | |||
VMware 半虚拟化 | 53717.26 | 3357.33 | 2.382 | 16.87 | |||
NVMe 控制器 | 48929.05 | 3058.07 | 2.615 | 14.14 |
流媒体服务器
流媒体服务器(5120K 随机;80% 读取;8 个线程;16 个未完成的 IO) | |||||||
IOPS | 兆字节/秒 | 延迟(毫秒) | 中央处理器 (%) | ||||
---|---|---|---|---|---|---|---|
LSI 逻辑 SAS | 458.16 | 2290.81 | 279.607 | 2.18 | |||
VMware 半虚拟化 | 504.22 | 2521.10 | 253.949 | 12.26 | |||
NVMe 控制器 | 505.14 | 2525.68 | 253.659 | 1.56 |
VDI-工作负载
VDI-工作负载(4K 随机;20% 读取;8 个线程;8 个未完成的 IO) | |||||||
IOPS | 兆字节/秒 | 延迟(毫秒) | 中央处理器 (%) | ||||
---|---|---|---|---|---|---|---|
LSI 逻辑 SAS | 140155.89 | 547.48 | 0,456 | 35.69 | |||
VMware 半虚拟化 | 163073.26 | 637.00 | 0,392 | 37,98 | |||
NVMe 控制器 | 203464.89 | 794.78 | 0.314 | 49.55 |