複数のレイヤー(物理ドライブ-> md-> dm-> lvm)の場合、スケジューラー、先読み設定、およびその他のディスク設定はどのように相互作用しますか?
mdadmで作成されたソフトウェアRAIDデバイス(/ dev / md0)の一部である複数のディスク(/ dev / sda-/ dev / sdd)があるとします。各デバイス(物理ディスクおよび/ dev / md0を含む)には、IOスケジューラ(そのように変更)および先読み(blockdevを使用して変更)の独自の設定があります。dm(crypto)やLVMなどを追加すると、独自の設定でさらにレイヤーを追加できます。
たとえば、物理デバイスに128ブロックの先読みがあり、RAIDに64ブロックの先読みがある場合、/ dev / md0からの読み取りを行うときにこれは受け入れられますか?mdドライバーは64ブロックの読み取りを試みますが、物理デバイスドライバーはそれを128ブロックの読み取りに変換しますか?または、RAIDは先のデバイスへの「パススルー」を先読みして、64ブロックの読み取りを行いますか?
スケジューラにも同じ種類の質問がありますか?IOスケジューラの複数の層とそれらがどのように相互作用するかを心配する必要がありますか、または/ dev / md0が基礎となるスケジューラを効果的にオーバーライドしますか?
この質問に答えようとする試みの中で、これを理解するのに役立つかもしれないスケジューラーとツールに関する興味深いデータを掘り下げました。
/sys/block/md0/queue/scheduler
、私のシステムでは、そこでの唯一の選択肢ですnone
。