iSCSI 和 AoE 性能低下

Seb*_*cki 9 ubuntu performance iscsi

我们正在寻找合理的速度存储。由于预算较低,我们决定使用软件 iSCSI 或 AoE 目标。在我们改变生产基础设施之前,我们正在做一些测试来选择最好的技术。

为了测试,我们使用:

  • 富士通西门子RX200 S4为目标
  • 富士通西门子RX200 S4作为发起者
  • NetGear 管理的 1GBit 交换机
  • 板载 NIC(Broadcom w/TOE)、EdiMax NIC、Broadcom NIC w/TOE - 所有 1GBit
  • 目标服务器使用带有 6 个 2TB WD Blue SATA 驱动器的 QLogic 控制器。
  • 目标和启动器操作系统都是带有所有更新的 Ubuntu 16.04 LTS。交换机专用于存储目的。我们测试绑定和多路径。

我们的问题是读取速度低。为了测试,我们使用dd40-100GB 的文件。

  • 目标服务器本地读写超过300MB/s。
  • 通过 iSCSI 或 AoE 写入服务器超过 200MB/s,这让我们感到满意。
  • 从服务器读取总是 95-99MB/s。

我们试过ietd、aoetools、LIO。我们使用了 2 个 NIC 的绑定:balance-rr 和 LACP,使用 rr 进行多路径。使用普通帧和巨型帧。最后,我们甚至在目标和主机(没有交换机)之间建立了直接的以太网连接。

所有测试给出的结果都不尽相同(当然,使用没有 TOE 和 iSCSI 的普通 NIC 给出的结果要差 20-30%)。

使用 iperf 测试网络显示传输速度约为 200MB/s (2GBit)。使用 bmon 观察目标上的 NIC 使用情况显示两个设备的利用率相等(每个大约 50MB/s 的读取速度,大约 100MB/s 的写入速度)。

由于运气不佳,我们决定使用第三个 NIC(当然是两侧)。结果很奇怪:

  • 2 个 NIC - 每个 50MB/s
  • 3 个 NIC - 每个 33MB/s

禁用高于 1GBit/s 的输出的目标软件是否有任何限制?

我们做错了什么?

Net*_*ner 11

要从 iSCSI 连接的存储中获得最大性能,您应该使用 Jumbo Frames 和 MPIO(而不是 LACP)。如果可以,建议使用 RDMA/iSER。

AOE(以太网上的 ATA)很旧而且很糟糕。几年前,我们已经摆脱了 Coraid。我们使用 StarWind https://www.starwindsoftware.com/作为 iSCSI 目标已经有一段时间了,StarWind 要求我们将 Coraid 迁移到我们可以做的任何存储。

所以现在,我们非常擅长使用 StarWind 提供的 iSCSI,并在 Linux 上使用 Windows、ESX 和 SCST http://scst.sourceforge.net/作为启动器。使用 RDMA/iSER 它可以达到 10 Gbit,到目前为止非常满意。


sho*_*hok 6

您对以太网链路聚合如何工作的期望是不正确的。

除 balance-rr 之外的所有聚合方法(即:所有模式 > 0 的方法)都不会为您提供更大的单连接吞吐量;相反,当从/到受影响的主机建立多个连接时,它们会增加总可用带宽。换句话说,对于这种单连接场景,LAG/LACP 不会给您带来任何好处。

可以为您提供比通常在单个接口上的吞吐量更大的单会话吞吐量的唯一聚合方法是balance-rr,它以循环方式分发数据包。您必须在启动器和目标上设置balance-rr。然而,一个很大的问题是这在很大程度上取决于开关。

无论如何,如果您将目标和启动器都设置为 balance-rr,则直接连接两台机器应该可以提高性能。如果没有,您可以发布一个iperf带有 balance-rr 且两台机器直接连接(无开关)的帖子吗?另外,请发布dd您用于基准测试的确切命令。