Synology 和 VMware 具有 4 路 MPIO,iSCSI 速度较慢

Synology 和 VMware 具有 4 路 MPIO,iSCSI 速度较慢

我正在尝试在我的 ESX 盒和 Synology NAS 之间实现较高的 iSCSI 速度。我希望达到 300-400 Mb/s 的最高速度。但到目前为止,我只能达到 150 - 170 MB/s。

我使用的主要测试是创建一个 20GB 虚拟磁盘,在基于 iSCSI SSD 的数据存储中考虑 Eager Zeroed。(以及它的变体。)

一些问题:

  1. 我假设创建此磁盘将是连续写入的?
  2. Synology 的 CPU 使用率从未超过 30%/40%,内存也几乎用完了。我假设 Synology 能够以这样的速度在 SSD 上写入,对吗?
  3. 此外,通过 iSCSI 创建虚拟磁盘时,ESX 是否能够最大程度地利用可用带宽?
  4. 如果使用基准测试工具,您会推荐什么?我如何确保数据发送端不会出现瓶颈?我可以在 SSD 数据存储中的虚拟机中安装此工具,并“针对自身”运行它吗?

这是我的设置。

我有一台 Synology 1513+,其磁盘和配置如下:

  1. 3 个 4TB WD 磁盘(未使用)
  2. 1 台三星 EVO 860。(1 卷,无突袭)
  3. 1 个三星 256GB SATA III 3D NAND。(1 个卷,无 raid)
  4. 2 个 iSCSI 目标,每个 SSD 一个。(总共连接了 8 个 vmware iSCSI 启动器)

网络配置:

  1. Synology 4000 Mbps 绑定。MTU 1500,全双工。

  2. Synology 动态链路聚合 802.3ad LACP。

  3. 为 4 个 Synology 端口配置了链路聚合的 Cisco SG350。

  4. 存储和 iSCSI 网络在物理上与主网络分离。

  5. CAT 6 电缆。

VSphere:

  1. PowerEdge r610(Xeon E5620 @ 2.40Ghz,64 GB 内存)
  2. Broadcom NetXtreme II BCM5709 1000Base-T(8 个网卡)
  3. vSphere 5.5.0 1623387

VSphere 配置:

  1. 4 个 vSwitch,每个 1 个 NIC 用于 iSCSI.MTU 1500。全双工。
  2. iSCSI 软件启动器,具有端口组中的 4 个 vmkernel 交换机,全部兼容且路径状态为活动。
  3. 2 个 iSCSI 目标,每个目标有 4 条 MPIO 路径。全部为主动和循环模式

因此基本上,来自 NAS 的 4 根电缆连接到 Cisco LAG,来自 ESX 的 4 根 iSCSI 连接到交换机上的常规端口。

我已执行的测试和配置:

  1. 在所有 vmswitches、vmkernel、synology 和 cisco 上将 MTU 设置为 9000。我还尝试了其他值,例如 2000 和 4000。
  2. 在 1/2 个 iSCSI 目标中创建 1 个(和 2 个、3 个同时创建)虚拟磁盘,以最大化工作负载。
  3. 禁用/启用标头和数据摘要,延迟确认。

我已经记不清我尝试了多少方法。我不确定我的瓶颈在哪里,或者我配置错了什么。我附上了一些截图。

任何帮助将非常感激!

ESX 上的 iSCSI 路径

ESX 上的网络配置

vmkernel 配置示例

iSCSI 启动器网络配置

Cisco LAG 配置 1

Cisco LAG 配置 2

答案1

  1. 它可能通过 VAAI ZERO 原语加速(我无法准确判断您过时的 vSphere 版本)。但无论如何它都是顺序写入。这也取决于您如何创建 iSCSI 目标。较新的 DSM-s 默认创建在文件系统顶部创建的高级 LUN。旧版本默认直接使用 LVM 磁盘,性能要差得多。
  2. 大约可以达到 400MB/s
  3. 如果目标可以提供 IO,400MB/s 不是问题
  4. 如果您正在查看纯顺序吞吐量,那么 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!

相关内容