5 votos

Que programador cambiar el LVM en beneficio de las máquinas virtuales

Cuando usted tiene LVM, tiene una entrada para un programador en /sys/block de sus volúmenes físicos, sino también para cada individuo volumen lógico, y el dispositivo en bruto.

Tenemos un Debian 6 LTS x 64, el kernel 2.6.32 sistema que ejecuta el hypervisor de Xen 4.0 (3Ware 9650 SE de hardware RAID 1). Cuando se ejecuta máquinas virtuales en cada volumen lógico, en cuál de ellos necesita para establecer el programador si desea influir en cómo conseguir programado por el sistema operativo? Si ajusta el volumen lógico a deadline, que incluso hacen nada cuando el volumen físico se establece en cfq? Y si usted no establece que se hagan a plazo en el volumen lógico, los plazos de ser honrado, incluso cuando el disco se está desacelerando debido a IO en otros LV de la que se establece para la cfq?

La pregunta se relaciona a IO sobre el VMs ralentizar otras VMs demasiado. Todos los huéspedes el uso noop como programador internamente.

Edit: de acuerdo a esto, en un entorno de múltiples rutas, sólo el DM del programador se llevará a efecto. Así que si quiero manejar IO entre máquinas virtuales en un deadline manera, tengo que poner la DM ruta de acceso del volumen físico (dm-1 en mi caso) a deadline. Es ese derecho? También hay un programador para la cosude, que es el original en el dispositivo de bloque de mi dm-1. ¿Por qué no se puede hacer acerca de eso?

edit2: pero entonces alguien dice en los comentarios que dm-0/1 no tiene un programador en los núcleos nuevos:

famzah@VBox:~$ cat /sys/block/dm-0/queue/scheduler
none

En mi sistema (Debian 6, el kernel 2.6.32), tengo:

cat /sys/block/dm-1/queue/scheduler 
noop anticipatory [deadline] cfq

La pregunta es, ¿tengo un multipath instalación? pvs muestra:

# pvs
PV         VG                 Fmt  Attr PSize PFree
/dev/dm-0  universe           lvm2 a-   5,41t 3,98t
/dev/dm-1  alternate-universe lvm2 a-   1,82t 1,18t

Pero ellos fueron creados con /dev/sd[bc]. ¿Significa eso que tengo multipath, a pesar de que es un estándar de configuración de LVM?

La pregunta principal, supongo, es: ¿tengo que poner el programador en el sdc o dm-1? Si hago iostat, veo un montón de acceso a ambos:

Device:         rrqm/s   wrqm/s     r/s     w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util
sdc               0,00     0,00   13,02   25,36   902,71   735,56    42,68     0,08    2,17   0,73   2,79
dm-1             82,25    57,26   12,97   25,36   902,31   735,56    42,72     0,18    4,73   0,84   3,23

Entonces, ¿qué es qué y quién es el jefe? Si es cosude, te puedo decir que ajustar la fecha límite de no hacer una cosa para el rendimiento de mi VMs. Mirar la diferencia en las solicitudes combinado' columnas (dos), yo diría que es dm-1 que controla la programación.

1voto

Tina Puntos 21

Hmm, Debian...

Bien, puedo compartir cómo Redhat enfoques de este con su afinado marco. Hay perfiles para "virtual host" y "virtual-invitado". Las descripciones de perfil se explican en detalle aquí, y el siguiente fragmento muestra que los dispositivos están afectados. El "dm-*" y "sdX" dispositivos tienen sus programadores cambiado.

# This is the I/O scheduler ktune will use.  This will *not* override anything
# explicitly set on the kernel command line, nor will it change the scheduler
# for any block device that is using a non-default scheduler when ktune starts.
# You should probably leave this on "deadline", but "as", "cfq", and "noop" are
# also legal values.  Comment this out to prevent ktune from changing I/O
# scheduler settings. 
ELEVATOR="deadline"

# These are the devices, that should be tuned with the ELEVATOR 
ELEVATOR_TUNE_DEVS="/sys/block/{sd,cciss,dm-,vd,zd}*/queue/scheduler"

Vea también:
CentOS Atentos Equivalente Para Debian y la Comprensión de RedHat recomienda atentos perfiles

1voto

Halfgaar Puntos 2866

Por tanto, la respuesta resultó ser simplemente: el dispositivo subyacente. Los núcleos nuevos sólo han 'ninguno' /sys/block/*/queue/scheduler cuando no hay ningún programador de configurar.

Sin embargo, por una razón desconocida para mí, los dispositivos en este servidor se crean como dispositivos multipath, por lo tanto mi jugueteando con el programador en /dev/sd[bc] nunca hizo nada en el pasado. Ahora me puse dm-1 y dm-0 a plazo con un read_expire=100 y write_expire=1500 (mucho más estrictos que los normales) y los resultados parecen muy buenas.

Este gráfico muestra el efecto de la latencia del disco en una máquina virtual, causada por otra máquina virtual con una hora de tarea:

Disk latency over 24h in ms

Se puede ver claramente el momento en el que he cambiado el programador de parámetros.

0voto

c4f4t0r Puntos 1749

como vmware recomienda, es mejor utilizar a programador de noop, si tu invitado utiliza archivo como virtualdisk, de esta manera tus invitados pasan la IO a su anfitrión directamente withouth reorganizar la IO dos veces en sus invitados y en tu host físico

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: