Linux
dm-crypt 上 LVM 上的 I/O 調度
我有以下設置:
- 在 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 性能異常差。