我正在尝试在我的 ESX 盒和 Synology NAS 之间实现较高的 iSCSI 速度。我希望达到 300-400 Mb/s 的最高速度。但到目前为止,我只能达到 150 - 170 MB/s。
我使用的主要测试是创建一个 20GB 虚拟磁盘,在基于 iSCSI SSD 的数据存储中考虑 Eager Zeroed。(以及它的变体。)
一些问题:
- 我假设创建此磁盘将是连续写入的?
- Synology 的 CPU 使用率从未超过 30%/40%,内存也几乎用完了。我假设 Synology 能够以这样的速度在 SSD 上写入,对吗?
- 此外,通过 iSCSI 创建虚拟磁盘时,ESX 是否能够最大程度地利用可用带宽?
- 如果使用基准测试工具,您会推荐什么?我如何确保数据发送端不会出现瓶颈?我可以在 SSD 数据存储中的虚拟机中安装此工具,并“针对自身”运行它吗?
这是我的设置。
我有一台 Synology 1513+,其磁盘和配置如下:
- 3 个 4TB WD 磁盘(未使用)
- 1 台三星 EVO 860。(1 卷,无突袭)
- 1 个三星 256GB SATA III 3D NAND。(1 个卷,无 raid)
- 2 个 iSCSI 目标,每个 SSD 一个。(总共连接了 8 个 vmware iSCSI 启动器)
网络配置:
Synology 4000 Mbps 绑定。MTU 1500,全双工。
Synology 动态链路聚合 802.3ad LACP。
为 4 个 Synology 端口配置了链路聚合的 Cisco SG350。
存储和 iSCSI 网络在物理上与主网络分离。
CAT 6 电缆。
VSphere:
- PowerEdge r610(Xeon E5620 @ 2.40Ghz,64 GB 内存)
- Broadcom NetXtreme II BCM5709 1000Base-T(8 个网卡)
- vSphere 5.5.0 1623387
VSphere 配置:
- 4 个 vSwitch,每个 1 个 NIC 用于 iSCSI.MTU 1500。全双工。
- iSCSI 软件启动器,具有端口组中的 4 个 vmkernel 交换机,全部兼容且路径状态为活动。
- 2 个 iSCSI 目标,每个目标有 4 条 MPIO 路径。全部为主动和循环模式
因此基本上,来自 NAS 的 4 根电缆连接到 Cisco LAG,来自 ESX 的 4 根 iSCSI 连接到交换机上的常规端口。
我已执行的测试和配置:
- 在所有 vmswitches、vmkernel、synology 和 cisco 上将 MTU 设置为 9000。我还尝试了其他值,例如 2000 和 4000。
- 在 1/2 个 iSCSI 目标中创建 1 个(和 2 个、3 个同时创建)虚拟磁盘,以最大化工作负载。
- 禁用/启用标头和数据摘要,延迟确认。
我已经记不清我尝试了多少方法。我不确定我的瓶颈在哪里,或者我配置错了什么。我附上了一些截图。
任何帮助将非常感激!
答案1
- 它可能通过 VAAI ZERO 原语加速(我无法准确判断您过时的 vSphere 版本)。但无论如何它都是顺序写入。这也取决于您如何创建 iSCSI 目标。较新的 DSM-s 默认创建在文件系统顶部创建的高级 LUN。旧版本默认直接使用 LVM 磁盘,性能要差得多。
- 大约可以达到 400MB/s
- 如果目标可以提供 IO,400MB/s 不是问题
- 如果您正在查看纯顺序吞吐量,那么 Linux 端的 dd 或 Windows 上的简单 CrystalDiskMark 就可以了。
LAG 和 iSCSI 通常不会混合使用。禁用 Synology 上的绑定并配置为单独的接口。在 Synology 上启用多启动器 iSCSI。不幸的是,我手边没有 Synology 可以提供确切的说明。
像这样配置 vSphere。
- vSphere 启动器 --> Synology 目标 IP/端口 1
- vSphere 启动器 --> Synology 目标 IP/端口 2
- vSphere 启动器 --> Synology 目标 IP/端口 3
- vSphere 启动器 --> Synology 目标 IP/端口 4
禁用不必要的路径(将一个 vSphere 源 IP 保留到一个 Synology IP),vSphere 仅支持(非强制)iSCSI 上每个目标 8 条路径。我不记得您是否可以在 Synology 端限制每个源的目标访问,很可能不行。此外,您已经有足够的路径来实现可靠性,再多的路径也无济于事,因为您的带宽可能有限。
将政策更改为较低的价值,请参见此处https://kb.vmware.com/s/article/2069356 否则,1000 IOPS 将沿着一条路径前进,直到发生路径改变。
继续使用巨型帧。仅带宽就节省了约 5%,而在千兆位上,您很容易出现带宽不足的情况。
答案2
更新:
我设法解决了我的问题。归根结底,80% 是我的错,20% 是配置的问题。
Synology 和交换机配置毕竟是正确的。在 Synology 和 Cisco 上使用 LACP 对我来说确实有效。我的 NAS 只有一个 IP,其中有 iSCSI 目标可用,ESX 有 4 个 NIC/vMKernels 指向它。
像这样配置 vSphere。
- vSphere ini。 10.10.74.11|
- vSphere ini。 10.10.74.12|
- vSphere ini。 10.10.74.13|
- vSphere ini. 10.10.74.14|--4Cables-->[CISCO]--4cables-->Synology IP (10.10.74.200)
我使用了带循环机制的 MPIO。
主要问题是我没有对系统施加足够的压力。我创建虚拟零磁盘并假设 ESX 主机将使用所有可用带宽来执行此操作的测试似乎是错误的。
正确配置 CrystalDiskMark 是关键!还可以根据链接中的文档更改 IOPS (https://kb.vmware.com/s/article/2069356) 是解决方案的一部分。我现在的读取速度约为 450 Mbs / 写入速度约为 300 Mbs!