为什么 open-iscsi 通过 10G 以太网的写入速度比 Samba 慢两倍?

为什么 open-iscsi 通过 10G 以太网的写入速度比 Samba 慢两倍?

在我的本地文件服务器上,我在 7x 个 HDD 驱动器上安装了 raid-6。

dd if=/dev/zero of=tempfile bs=1M count=2048 conv=fdatasync

本地速度测试显示写入速度为 349 MB/s。

从 SSD 远程写入 Samba(读取速度 >2Gb/s)可获得 259 MB/s 的写入速度。但远程写入 iSCSI 驱动器(在 Win10 iSCSI 启动器上)仅可获得 151 Mb/s 的写入速度。

raid6 配置 - 128K 块大小,stripe_cache_size = 8191。写入意向位图位于 SSD 上(三星 860 PRO,4096K 位图块)。

阵列安装选项:rw,noatime,nobarrier,commit=999,stripe=128,data=writeback

open-iscsi 设置:目标基于 4Tb 文件。

有没有提示为什么 iSCSI 写入速度比 Samba 慢?有没有提示如何提高 iSCSI 写入速度?

我猜想这与 open-iscsi 希望在每次操作后将写入刷新到磁盘有关,这会增加 raid6 上的写入放大,因为过多的奇偶校验重写。但我不确定如何修复它。速度比断电时当前写入数据的安全性更重要。

顺便提一下,较旧的 ietd iSCSI 目标能够启用写回模式(使用 IOMode=wb),并且持续写入速度要快得多。不幸的是,它目前似乎无人维护。

答案1

首先,RAID-6 存在问题,因为需要进行双重奇偶校验计算。其次,您可以在 MS iSCSI Initiator 中两次连接 iSCSI 目标,启用 RR 或最少队列深度(不幸的是,Win10 不支持多路径,因此您可以改用 Windows Server 进行测试)。

事实上,块级访问必须比文件级访问更快。您使用 Windows 站点上的哪种基准测试工具?我建议使用 diskspd 或 FIO。此外,您可以使用 Starwind 之类的工具作为速度更快的 iSCSI 目标。

https://www.starwindsoftware.com/starwind-virtual-san#Hyper-V

答案2

iSCSI 应该在块级别使用,您的设置描述听起来像您正在使用文件系统,在其上放置文件,然后将该文件作为 iSCSI 块层运行。

这远非理想,而且绝对不是用于比较速度的设置。尝试在 raid6 上使用 lvm 来分割空间并停留在 iSCSI 的块层上,或者直接将 raid6 用作 iSCSI 设备。

在当前设置中,数据通过网络传输,到达文件系统中的文件,而该文件(很可能)未针对此类工作负载进行优化,并且还与其他进程共享。可以使用 iSCSI 进行此类设置,但应将其视为未优化的后备解决方案。

答案3

请注意,dd这是一个非常简单的基准,并且很容易失真。例如,您dd正在写入零 - 如果某些东西对全零的数据有特殊情况(例如因为它可以进行压缩),您将看到出色的性能,但切换到写入非零的“真实数据”,突然间性能就会消失……

为了回答你的问题(就像在所有基准测试中一样),你必须真正地将各个部分隔离开来,以找出导致问题的位。例如,直接写入 Windows 文件系统(而不是通过 iSCSI)是否也非常快?如果你采用相同的硬件配置并运行 Linux 而不是 Windows,它是否一样快还是会变慢?如果你切换到使用基准测试工具,例如菲奥

遗憾的是,有太多可能性能够很好地回答这样的问题......

相关内容