多路径、设备映射器和磁盘 i/o 调度程序

多路径、设备映射器和磁盘 i/o 调度程序

我们有两台带有多路径 SAS 控制器的机器,每台机器连接了 12 个物理磁盘。

我们正在研究一些 I/O 速度异常,并注意到在一台机器上,/dev/mpath/mpath*p1 以各种方式映射到 dm-13 到 dm-24,dm-13 和 dm-14 有一个“cfq”io 调度程序。该列表中的其他 dm 设备有“无”,并且似乎无法更改。

我相信其他设备呈现为一组不同的 dm-* 映射,并且那些设备确实设置了 cfq。

在另一台机器上,/dev/mpath/mpath*p1 中选择的设备均没有设置调度程序的相应 dm 设备。

我在这里有点不适应,但由于 iostat 确实显示一些请求正在第一个盒子的 dm-13 和 dm-14 上合并,而两个盒子上的其余请求都没有合并,所以我怀疑我们为此付出了一些代价。

我是不是挖错了洞,或者这是一个问题?如果是这样,我该如何修复它,因为echo cfq > /sys/block/dm-15/queue/scheduler当“无”是当前唯一列出的选项时,它没有任何效果?

答案1

我找到了我自己的问题的答案。

我们的设置可能有点不寻常,其中 /dev/mapper/mpatha 是整个磁盘,而 /dev/mapper/mpathap1 是该磁盘上的第一个分区。

由于我们使用 /dev/mapper/mpath?p1 设备构建了软件 raid 阵列,因此这些设备从来没有调度程序,因为它们实际上最终服从实际的底层磁盘,即 /dev/mapper/mpatha 设备。

我们所有的 /dev/mapper/mpath? 设备都有一个调度程序(我现在已将其更改为“deadline”),而所有 /dev/mapper/mpath?p1 设备都没有。这也与 LVM 的工作方式相同——底层磁盘有一个调度程序,但到逻辑分区的单个映射却没有。

答案2

如果这是 Red Hat 或 CentOS,请使用该tuned-adm实用程序将您的配置文件转移到“企业存储”配置文件:

tuned-adm profile enterprise storage

了解 RedHat 推荐的调整配置文件

相关内容