2 votos

El rendimiento de iSCSI entre la SAN y el hipervisor es terriblemente lento

Tenemos una pobre configuración SAN en un servidor Ubuntu de 1U que ejecuta iSCSI-Target con dos unidades de 300GB en RAID-0. Lo estamos utilizando para el almacenamiento a nivel de bloque para las máquinas virtuales. El hipervisor está conectado a la SAN a través de gigabit en una VLAN e interfaces dedicadas.

Sólo tenemos una única máquina virtual configurada y haciendo algunos benchmarks. Si ejecutamos hdparm -t /dev/sda1 de la máquina virtual, obtenemos un rendimiento "aceptable" de 75 MB/s desde la máquina virtual a la SAN. Entonces básicamente compilamos un paquete con ./configure y make . Las cosas empiezan bien, pero de repente el promedio de carga en la SAN crece a 7+ y las cosas se ralentizan. Cuando entramos por SSH en la SAN y ejecutamos el top, seguro que la carga es de 7+, pero el uso de la CPU es básicamente nada, además el servidor tiene 1,5GB de memoria disponible. Cuando matamos la compilación en la máquina virtual, lentamente la CARGA en la SAN vuelve a estar por debajo de 1 cifras.

¿Qué está causando esto? ¿Cómo podemos hacer un diagnóstico más profundo?

Aquí hay dos capturas de pantalla de la SAN durante la carga alta.

1> Output of iotop on the SAN:

http://imgur.com/2doVP

2> Output of top on the SAN:

http://i.stack.imgur.com/UK0f8.png

2voto

the-wabbit Puntos 28168

Debería ver un aumento significativo del rendimiento después de habilitar el almacenamiento en caché de escritura en el objetivo (los detalles dependen de la implementación - ¿qué está utilizando, tgt?) y sus discos

hdparm -W 1 /dev/sda
hdparm -W 1 /dev/sdb

Sin embargo, hay un precio: esto pondrá en peligro la integridad de los datos (especialmente si ejecuta bases de datos) en caso de un corte de energía o un cuelgue del sistema de la SAN, ya que los datos que se cree que se han escrito permanentemente en el disco, sólo residen en la DRAM volátil. Para mitigar este riesgo, debería utilizar un controlador con BBWC (caché de escritura respaldada por batería) en el que los datos sobrevivirían a un apagón durante un tiempo (normalmente 1-2 días).

El principal "problema" de ESXi es que sincroniza constantemente los discos. La necesidad de escribir metadatos en VMFS (si lo tienes) lo hace aún peor. Los foros de la comunidad de vmware están llenos de mensajes de "mis discos son lentos" cuando la gente está usando controladores sin cachés de escritura.

1voto

Paweł Brodacki Puntos 4635

Ejecute iometer en su máquina virtual.

Con sólo dos unidades de 7,2k rpm el acceso aleatorio te va a perjudicar. Sólo puedes obtener un número limitado de iops de ellos.

Intente ejecutar dos escenarios con el iómetro:

1) Lectura/escritura secuencial: esto debería dar unos números muy buenos. 2) acceso aleatorio a la unidad - aquí deberías estar en una tierra de dolor.

Configurar un archivo para pruebas lo suficientemente grande como para forzarlo a salir de la caché de la máquina virtual.

1voto

Anthony Puntos 56

Yo recomendaría probar algunas cosas:

  1. Intenta hacer algunas pruebas de rendimiento con tráfico no iSCSI (por ejemplo. dd if=/dev/zero bs=1M | nc ... ), y ver si las cargas se disparan de la misma manera (comparar ambas cargas y los %s de la CPU). Probablemente deberías intentar hacer pruebas con una sola conexión, así como ejecutar unas 8 de esas pruebas de forma concurrente. Y probar con el envío y recepción de datos en ambas direcciones.
  2. Pruebe a utilizar un software de destino diferente (por ejemplo, el paquete tgt de Ubuntu)
  3. Actualiza tu kernel en la SAN a una versión más reciente, por si acaso te encuentras con un error en el kernel.
  4. Informar de este problema en la lista de correo de iSCSI-Target, o si no hay suerte allí, tal vez el lista de correo linux-kernel ?
  5. Si todo lo demás falla, y si esta es una opción para usted, pruebe NexentaOS o NexentaStor y vea si obtiene mejores resultados.

También me encontré con algunos Pautas de ajuste del rendimiento de iSCSI recientemente, que pueden resultarle útiles, aunque esas recomendaciones no aborden el problema concreto que está experimentando.

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: