Linux

dm-crypt 上 LVM 上的 I/O 調度

  • July 1, 2016

我有以下設置:

  • 在 Dell PowerEdge R320 上執行的 Debian 穩定版(Linux 核心 3.16.7)
  • PERC H310 Mini 控制器上 RAID1 中的兩個 SATA 硬碟驅動器,顯示為/dev/sda
  • dm-crypt 目標dm-0支持/dev/sda2
  • 具有單個上述物理卷的單個 LVM 卷組dm-0
  • 上述卷組中的多個邏輯卷dm-1等,格式為dm-2``ext4

發生的情況是,當單個程序開始批量寫入邏輯卷時,所有其他程序都嚴重缺乏 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 負載重的情況下響應?

首先,DM 設備沒有任何 I/O 調度程序是完全正常的,因為(有特定例外)

關於您記錄的低性能,請考慮您的 H310 控制器不僅沒有記憶體,而且甚至禁用了物理磁碟的 DRAM 記憶體,這意味著您的系統無法通過記憶體降低延遲。

將其與加密相結合,其中讀取-修改-寫入是常見行為(由於對加密容器的未對齊寫入訪問),導致寫入 I/O 性能異常差。

引用自:https://serverfault.com/questions/787463