En el caso de varias capas (unidades físicas -> md -> dm -> lvm), ¿cómo interactúan los programadores, las configuraciones de lectura previa y otras configuraciones de disco?
Imagine que tiene varios discos (/ dev / sda - / dev / sdd) todos parte de un dispositivo RAID de software (/ dev / md0) creado con mdadm. Cada dispositivo (incluidos los discos físicos y / dev / md0) tiene su propia configuración para el programador de E / S ( modificado así ) y readahead ( modificado mediante blockdev ). Cuando agrega cosas como dm (crypto) y LVM, agrega aún más capas con sus propias configuraciones.
Por ejemplo, si el dispositivo físico tiene una lectura anterior a 128 bloques y el RAID tiene una lectura anticipada de 64 bloques, ¿cuál es el honor cuando hago una lectura desde / dev / md0? ¿El controlador md intenta una lectura de 64 bloques que luego el controlador del dispositivo físico traduce a una lectura de 128 bloques? ¿O la lectura RAID "pasa" al dispositivo subyacente, lo que resulta en una lectura de 64 bloques?
¿El mismo tipo de pregunta es válida para los planificadores? ¿Tengo que preocuparme por varias capas de planificadores de E / S y cómo interactúan, o el / dev / md0 anula efectivamente los planificadores subyacentes?
En mis intentos de responder a esta pregunta, he encontrado algunos datos interesantes sobre programadores y herramientas que podrían ayudar a resolver esto:
/sys/block/md0/queue/scheduler
en mis sistemas, pero la única opción allí esnone
.