29 votos

¿Al usar el software RAID y LVM en Linux, qué configuración de programador y readahead IO es honrados?

En el caso de múltiples capas (unidades físicas -> md -> dm -> lvm), cómo hacer de los programadores, readahead la configuración, y otros ajustes del disco de interactuar?

Imagina que tienes varios discos (/dev/sda y /dev/sdd) todos parte de un RAID por software del dispositivo (/dev/md0) creado con mdadm. Cada dispositivo (incluyendo discos físicos y /dev/md0) tiene su propia configuración para IO scheduler (cambiado como así) y readahead (modificado mediante blockdev). Cuando usted lanza en cosas como dm (cripto) y LVM añadir más capas con su propia configuración.

Por ejemplo, si el dispositivo físico tiene una lectura anticipada de 128 bloques y el RAID tiene un readahead de 64 bloques, que es honrado cuando hago una lectura desde /dev/md0? ¿El md controlador intento de 64 bloque de leer que la física de controlador de dispositivo, a continuación, se traduce en una lectura de 128 bloques? ¿O es que el RAID readahead "pass-through" para el dispositivo subyacente, lo que resulta en un 64 bloque de leer?

El mismo tipo de pregunta tiene para los programadores? ¿Tengo que preocuparse de múltiples capas de IO programadores y cómo interactúan, o no la /dev/md0 efectivamente reemplazar subyacente de los programadores?

En mis intentos de responder a esta pregunta, he desenterrado algunos datos interesantes acerca de los programadores y de las herramientas que puede ayudar a entender esto:

8voto

stark Puntos 198

Si vas a hacer una lectura de md0, a continuación, el readahead para md0 se utiliza. Si usted hizo la lectura de la sda, que es un componente de md0, a continuación, se haría uso de la sda configuración. El mapeador de dispositivos sólo rompe una e/S en varias lee y escribe para hacer la RAID, pero por debajo de todo el bloque de la caché de la capa donde readahead se lleva a cabo. La pila de almacenamiento se ve así:

sistema de archivos - se omite la memoria caché cuando se abre con O_DIRECT

bloque de caché de lectura anticipada, caché de escritura, programador

device-mapper - dm, lvm, RAID de software, instantánea, etc.

sd - controlador de disco

SCSI - manejo de errores, el dispositivo de enrutamiento

controlador de hardware - tarjeta scsi, FC tarjeta ethernet

Tenga en cuenta que al hacer

dd if=/dev/sda of=foo

usted está leyendo sda como un archivo, entonces usted va a través del bloque de la caché. Para ir directamente a la disco, hacer

dd if=/dev/sda of=foo iflag=direct

Como para I/O elevador de programadores, a aquellos que sólo existen en el controlador de disco (sd). No hay ninguna cola de directorio bajo el directorio /sys/block/md o /sys/block/dm. Usted sólo va a través de la disco ascensor ordenar la vez.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: