dm-crypt 上 LVM 的 I/O 调度

dm-crypt 上 LVM 的 I/O 调度

我有以下设置:

  • 在 Dell PowerEdge R320 上运行的 Stock Debian 稳定版(Linux 内核 3.16.7)
  • PERC H310 Mini 控制器上的 RAID1 中的两个 SATA 硬盘,显示为/dev/sda
  • dm-crypt 目标dm-0/dev/sda2
  • 具有单个上述物理卷的单个 LVM 卷组dm-0
  • 上述卷组中的多个逻辑卷等dm-1,格式为dm-2ext4

当单个进程开始批量写入逻辑卷时,所有其他进程都会出现严重的 I/O 匮乏 - 系统变得非常迟钝(涉及 I/O 时延迟最多 30 秒)。

我认为 I/O 调度程序负责确保这种情况不会发生。我看到它sda使用了cfq

# cat /sys/block/sda/queue/scheduler 
noop deadline [cfq]

但其他所有设备映射器目标都报告没有 I/O 调度程序:

# cat /sys/block/dm-0/queue/scheduler 
none
# cat /sys/block/dm-1/queue/scheduler 
none
# cat /sys/block/dm-2/queue/scheduler 
none

我的问题是,为什么设备映射器目标没有 I/O 调度,我可以启用它吗,或者如何使该系统在繁重的 I/O 负载下响应?

答案1

首先,这是完全正常的DM 设备没有任何 I/O 调度程序,如(有特殊例外)

关于您记录的低性能,请考虑您的 H310 控制器不仅没有缓存,而且甚至禁用物理磁盘的 DRAM 缓存,这意味着您的系统无法通过缓存来降低延迟。

将其与加密相结合,其中读取-修改-写入是常见行为(由于对加密容器的写访问未对齐),导致写入 I/O 性能极差。

相关内容