No caso de várias camadas (unidades físicas -> md -> dm -> lvm), como os agendadores, as configurações de readahead e outras configurações de disco interagem?
Imagine que você tem vários discos (/ dev / sda - / dev / sdd), todos parte de um dispositivo RAID de software (/ dev / md0) criado com o mdadm. Cada dispositivo (incluindo discos físicos e / dev / md0) possui sua própria configuração para o planejador de E / S ( alterado da mesma forma ) e o readahead ( alterado usando o blockdev ). Quando você lança coisas como dm (crypto) e LVM, adiciona ainda mais camadas com suas próprias configurações.
Por exemplo, se o dispositivo físico tiver uma leitura à frente de 128 blocos e o RAID tiver um cabeçote de leitura de 64 blocos, o que é respeitado quando faço uma leitura em / dev / md0? O driver md tenta uma leitura de 64 blocos que o driver de dispositivo físico traduz para uma leitura de 128 blocos? Ou o readahead do RAID "passa" para o dispositivo subjacente, resultando em uma leitura de 64 blocos?
O mesmo tipo de pergunta vale para agendadores? Preciso me preocupar com várias camadas de agendadores de E / S e como eles interagem, ou o / dev / md0 efetivamente substitui os agendadores subjacentes?
Nas minhas tentativas de responder a essa pergunta, desenterrei alguns dados interessantes sobre agendadores e ferramentas que podem ajudar a descobrir isso:
/sys/block/md0/queue/scheduler
em meus sistemas, mas a única opção existenone
.