29 votos

Readahead Configuración de LVM, Device-Mapper, Raid de Software y Dispositivos de Bloque - ¿qué gana?

He estado tratando de encontrar una respuesta clara sobre este, y ha demostrado ser difícil de alcanzar. Esta pregunta y su respuesta está cerca, pero realmente no me dan los detalles que me gustaría. Vamos a empezar con lo que creo saber.

Si usted tiene un dispositivo de bloques estándar y ejecutar sudo blockdev --report obtendrá algo como esto:

RO    RA   SSZ   BSZ   StartSec            Size   Device
rw   256   512  4096          0    500107862016   /dev/sda
rw   256   512  4096       2048    399999238144   /dev/sda1
rw   256   512  1024  781252606            1024   /dev/sda2

Ahora, decide cambiar este valor predeterminado de 256 a 128 usando --setra en cualquiera de las particiones y le pasa a todo el dispositivo de bloque, así:

sudo blockdev --setra 128 /dev/sda1
sudo blockdev --report
RO    RA   SSZ   BSZ   StartSec            Size   Device
rw   128   512  4096          0    500107862016   /dev/sda
rw   128   512  4096       2048    399999238144   /dev/sda1
rw   128   512  1024  781252606            1024   /dev/sda2

Esto tiene perfecto sentido para mí - el bloque de dispositivo de nivel es donde el ajuste es, no de la partición, por lo que todos los cambios. También el defecto de la relación entre la RA y la configuración del dispositivo tiene sentido para mí, es generalmente:

RA * sector size (default = 512 bytes)

Por lo tanto, los cambios que he hecho anteriormente, con el sector predeterminado de tamaño de gota de readahead de 128k a 64 kb. Todo muy bien hasta ahora.

Sin embargo, ¿qué sucede cuando agregamos un software RAID o LVM y device-mapper? Imagine que su informe se parece a este lugar:

RO    RA   SSZ   BSZ   StartSec            Size   Device
rw   256   512  4096          0     10737418240   /dev/xvda1
rw   256   512  4096          0    901875499008   /dev/xvdb
rw   256   512  4096          0    108447924224   /dev/xvdj
rw   256   512  4096          0    108447924224   /dev/xvdi
rw   256   512  4096          0    108447924224   /dev/xvdh
rw   256   512  4096          0    108447924224   /dev/xvdg
rw  4096   512  4096          0    433787502592   /dev/md0
rw  4096   512   512          0    429496729600   /dev/dm-0

En este caso tenemos un dispositivo asignado dm-0 LVM dispositivo en la parte superior de la md0 creado por mdadm, que es en realidad un RAID0 banda a través de los cuatro dispositivos xvdg-j.

Tanto el md0 y dm-0 tienen una configuración de 4096 para la AR, mucho más alto que los dispositivos de bloque. Así, algunas de las preguntas aquí:

  • ¿Cómo funciona el RA configuración obtener que se pasa por el dispositivo de bloque virtual de la cadena?
  • Hace dm-0 trump todo, porque ese es el nivel superior de dispositivo de bloque que son en realidad el acceso?
  • Sería lvchange -r tienen un impacto en la dm-0 dispositivo y que no aparezcan aquí?

Si es tan simple como la, la RA la configuración desde el dispositivo de bloque virtual está utilizando pasa, ¿ que significa que una lectura de la dm-0 (o md0) se va a traducir en 4 x 4096 RA lee? (uno en cada dispositivo de bloque). Si es así, eso significaría que estos ajustes explotar el tamaño de la readahead en el escenario anterior.

A continuación, en términos de averiguar lo que el readahead configuración está haciendo en realidad:

¿Para qué las utilizan, lo que equivale al tamaño de sector para determinar el real readahead valor para un dispositivo virtual:

  • El tamaño de las bandas de la RAID (para md0)?
  • Otro sector de tamaño equivalente?
  • Es configurable, y cómo?
  • ¿El FS jugar una parte (estoy principalmente interesado en ext4 y XFS)?
  • O, si es que acaba de pasar, es simplemente la RA la configuración de la parte superior de dispositivo de nivel, multiplicado por el tamaño de sector de el real de los dispositivos de bloque?

Por último, habría preferido relación entre el tamaño de las bandas y la RA (por ejemplo)? Aquí estoy pensando que si la raya es el elemento más pequeño que va a ser arrancado del dispositivo RAID, lo ideal sería que no quieren que haya tiene que ser de 2 accesos a disco de servicio que la unidad mínima de datos y que quiere hacer la RA lo suficientemente grande como para cumplir con la petición con un solo acceso.

12voto

wojciechz Puntos 458

¿Cómo funciona el RA configuración obtener que se pasa por el dispositivo de bloque virtual de la cadena?

Depende. Supongamos que dentro de Xen domU y tiene RA=256. Su /dev/xvda1 es real LV en el dom0 visible bajo el directorio /dev/dm1. Así que tienes RA(domU(/dev/xvda1)) = 256 y RA(dom0(/dev/dm1)) = 512 . Esto tendrá el efecto de que el dom0 núcleo de acceso /dev/dm1 con otra RA de domU del kernel. Simple como eso.

Otro sittutation ocurrirá si suponemos que /dev/md0(/dev/sda1,/dev/sda2) sittuation.

blockdev --report | grep sda
rw   **512**   512  4096          0   1500301910016   /dev/sda
rw   **512**   512  4096       2048      1072693248   /dev/sda1
rw   **512**   512  4096    2097152   1499227750400   /dev/sda2
blockdev --setra 256 /dev/sda1
blockdev --report | grep sda
rw   **256**   512  4096          0   1500301910016   /dev/sda
rw   **256**   512  4096       2048      1072693248   /dev/sda1
rw   **256**   512  4096    2097152   1499227750400   /dev/sda2

Configuración de /dev/md0 RA no afectará a /dev/sdX blockdevices.

rw   **256**   512  4096       2048      1072693248   /dev/sda1
rw   **256**   512  4096    2097152   1499227750400   /dev/sda2
rw   **512**   512  4096          0      1072627712   /dev/md0

Así, en general, en mi opinión núcleo de accesos blockdevice en la forma que se establece en realidad. Un volumen lógico se puede acceder a través de RAID (que es parte de) o devicemapper dispositivo y cada uno con otro RA que serán respetados.

Así que la respuesta es - la RA configuración en mi humilde opinión es que no se pasa por el blockdevice de la cadena, pero cualquiera que sea el nivel superior del dispositivo RA, se utilizará para acceder a los componentes de los dispositivos

Hace dm-0 trump todo, porque ese es el nivel superior de dispositivo de bloque que son en realidad el acceso?

Si te refieres a lo profundo de propagación por "el triunfo de todos" - como por mi comentario anterior, creo que puede tener diferentes RA para los diferentes dispositivos en el sistema.

Sería lvchange-r tienen un impacto en la dm-0 dispositivo y que no aparezcan aquí?

Sí, pero este es un caso particular. Supongamos que tenemos /dev/dm0 que es LVM /dev/vg0/blockdevice. Si se hace:

lvchange -r 512 /dev/vg0/blockdevice

el /dev/dm0 también va a cambiar debido a que /dev/dm0 y /dev/vg0/blockdevice es exactamente el mismo dispositivo de bloque cuando se trata del núcleo de acceso.

Pero supongamos que /dev/vg0/blockdevice es el mismo como /dev/dm0 y /dev/xvda1 en Xen domU que está utilizando. Ajuste de la RA de /dev/xvda1 se llevará a efecto, pero dom0 se vea todavía tiene su propia RA.

¿Para qué las utilizan, lo que equivale al tamaño de sector para determinar el real readahead valor para un dispositivo virtual:

Me suelen descubrir RA al experimentar con diferentes valores y las pruebas con hdparm .

El tamaño de las bandas de la RAID (para md0)?

Igual que el anterior.

¿El FS jugar una parte (estoy principalmente interesado en ext4 y XFS)?

Seguro que este es un tema muy importante. Te recomiendo empezar por aquí http://archives.postgresql.org/pgsql-performance/2008-09/msg00141.php

4voto

Bill Clark Puntos 31

Saber la respuesta más difícil de explicar, así que voy a hacerlo en el ejemplo. A decir por el bien de este tiene 3 dispositivos de bloque un conjunto de su RA decir 4 (4*512 bytes) suponiendo que el estándar del sector. Si usted fuera a decir el uso de un RAID-5 esquema de uso de los 3 discos, cualquier lectura que tocó a una banda en un único disco compuesto de la RA por el factor que se establece inicialmente en el dispositivo de bloque RA. Así que si su lectura se extendió exactamente todos los 3 discos, a continuación, a partir de la RA sería de 12*512 bytes. Esto puede ser agravado por settin RA en los diferentes niveles, por ejemplo, MD o LVM. Como regla general, si mis beneficios de la app de RA me puse en la capa más alta posible para que no me compuesto de la RA unnecessarrily. A continuación, iniciar el sistema de ficheros en el sector de 2049 y desplazamiento de cada sector de inicio en un número divisible por 8. Puedo estar lejos de lo que están pidiendo, pero este es mi 2¢.

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: