单个 HDD 驱动器上的 Iowait 会减慢/阻止 DELL R620(带 PERC H310 Mini Mono 控制器)上所有其他 (SSD) 驱动器上的操作

单个 HDD 驱动器上的 Iowait 会减慢/阻止 DELL R620(带 PERC H310 Mini Mono 控制器)上所有其他 (SSD) 驱动器上的操作

由于戴尔论坛是一场真正的灾难,我在这里尝试,希望有人能给我一些提示:)

我们的系统有 3 个驱动器:

  1. 操作系统的 SSD
  2. SSD 包含支持 LXD 容器的 ZFS 池
  3. “备份”存储 HDD 驱动器

该系统正在运行 Ubuntu Bionic。

现在这些区域都以非 raid 配置连接到 PERC 控制器。服务器上的所有固件都是最新的。

我们看到的是,当我们使用 rsync 或 ftp 将数据从远程网络存储传输到 HDD 驱动器时,对 HDD 驱动器的写入操作拖慢整个系统

就好像 HDD 驱动器上的高 IOwait 会阻止 SSD 驱动器上的 IO 操作。这对我来说是非常违反直觉的。

为什么对 HDD 驱动器的写入操作会导致整个系统锁定并减慢 SSD 驱动器的访问时间?是控制器有问题,还是 Linux 内核中有一些可以在此处调节的旋钮?

我是不是把 HDD 驱动器和 SSD 驱动器混在一起,弄巧成拙了?:)

答案1

@sfk 的评论应该是该问题的答案。

共享 I/O 队列/缓冲绝对是此处问题的根源。

您可以使用 LSI 9211-8i 固件将卡交叉刷新到“IT”模式,或者如果您不想刷新 PERC,只需在线购买 LSI 9207-8i(现在非常便宜)。只需确保事先对磁盘上的所有内容进行完整备份即可将要需要从中恢复 - PERC 上的“非 RAID”磁盘仍然具有 RAID 虚拟磁盘配置,并且不会在非 RAID 卡上正常显示(例如 IT 模式下的这个)。

编辑:您可能考虑的另一个解决方法是找到一种方法来限制发送到该磁盘设备的 I/O(朝着您提到的“旋钮”转动的方向)。我看到了一些想法/选择这里比如 cgroups 和 ionice,但不能完全确定哪个更适合您。任何可以导致写入该磁盘的速率仅比磁盘实际处理速度慢的东西都可能是有益的,这样 I/O 就不会排队,直到 HBA 的 IO 队列被填满。

相关内容