Fibre Channel LUN reescaneo y QLogic


8

Tengo un problema grave con una matriz de almacenamiento SAN conectada a una caja de Linux a través de Fibre Channel. Aquí está la configuración:

  • Debian con Linux simple vainilla 2.6.27.25
  • Controlador de fibra QLogic de 4 Gb de doble puerto (basado en ISP2432)

Básicamente el problema es: ¿cómo obtener este #? @ !! Controlador / controlador FC para reconocer correctamente los cambios de configuración (LUN nuevos o eliminados) de la matriz de almacenamiento?

  1. cuando creo un nuevo LUN en mi matriz (generalmente una instantánea de algún LUN existente) y lo mapeo a mi HBA, no puedo reconocerlo correctamente: en rescan-scsi-bus -l -w -rrealidad detecta algo (un dispositivo genérico / dev / sgXX) sin embargo, no hay ningún dispositivo de bloqueo se crea (/ dev / sdXX).
  2. Lo mismo al emitir un LIP y volver a escanear manualmente:

    echo 1> / sys / class / fc_host / host6 / issue_lip

    echo "- - -"> / sys / class / scsi_host / host6 / scan

  3. si elimino un LUN existente, ni la emisión de LIP ni el reescaneo o rescan-scsi-bus tienen ningún efecto. Los dispositivos anteriores permanecen allí y, por supuesto, no funcionan ("archivo -s / dev / sdXX -> error de E / S").

  4. Recargar el controlador qla2xxx funciona. Sin embargo, es completamente inviable en un entorno de producción.

Aparentemente, este es un problema muy común con QLogic . Existe algún tipo de solución que funciona solo cuando se utiliza el controlador emitido por QLogic disponible solo para las distribuciones empresariales RedHat y Suse: consulte esta explicación .

Información adicional :

Aquí están los dispositivos scsi antes de LIP y reescanear:

# sg_map -x
/dev/sg0  0 0 0 0  0  /dev/sda
/dev/sg1  0 0 1 0  5  /dev/scd0
/dev/sg2  1 0 0 0  0  /dev/sdb
/dev/sg3  6 0 0 0  0  /dev/sdc
/dev/sg4  6 0 0 1  0  /dev/sdd
/dev/sg5  6 0 0 2  3

Después de un LIP y un nuevo escaneo, tengo un nuevo dispositivo sg, pero no hay una unidad que coincida. Si vuelvo a cargar el controlador, aparece una unidad:

# sg_map -x
/dev/sg0  0 0 0 0  0  /dev/sda
/dev/sg1  0 0 1 0  5  /dev/scd0
/dev/sg2  1 0 0 0  0  /dev/sdb
/dev/sg3  6 0 0 0  0  /dev/sdc
/dev/sg4  6 0 0 1  0  /dev/sdd
/dev/sg5  6 0 0 2  3
/dev/sg6  6 0 0 3  3

~# sg_map -x
/dev/sg0  0 0 0 0  0  /dev/sda
/dev/sg1  0 0 1 0  5  /dev/scd0
/dev/sg2  1 0 0 0  0  /dev/sdb
/dev/sg3  8 0 0 0  0  /dev/sdc
/dev/sg4  8 0 0 1  0  /dev/sdd
/dev/sg5  8 0 0 2  0  /dev/sde
/dev/sg6  8 0 0 3  3

Editar: OK, obviamente esta es una nuez difícil de roer. Le preguntaré al LKML e informaré aquí.


Ese controlador emitido por QLogic del que estás hablando también se puede compilar para otras distribuciones, no es un blob binario.
Capitán Segfault

Bien, ¿dónde puedo encontrarlo entonces? Compilé todo el núcleo, un controlador más no es un problema en absoluto.
wazoox

Tengo este problema, ¿lograste descubrir algo?
ThatGraemeGuy

Lo sentimos, aún no hay información.
wazoox

Respuestas:


2

En caso de que se detecte el dispositivo de bloqueo, pero no se esté creando / dev / device, puede crearlo manualmente. Esto no es óptimo, pero podría cojear. Los números mayor y menor se presentan en / proc / particiones, y puede crear sus propios dispositivos de bloque a través del comando mknod.

 # mknod /dev/sdg4 104 17

Sin embargo, siento tu dolor. QLogic ofrece descargas de controladores para RHEL y SUSE, pero parece que no hay otras distribuciones. OpenSUSE podría tener los controladores de la marca QLogic, pero no puedo estar seguro de ello. Lo comprobaré más de cerca cuando llegue al trabajo.

Editar : estoy en el trabajo, y parece que los controladores QLogic en mis cajas SLES son todos los suministrados por QLogic. Su sistema operativo soporta grid:

http://filedownloads.qlogic.com/files/Driver/71098/readme_driver_80223.html#os_support

Y, sin embargo, cuando descargo el kernel bog-standard 2.6.27.25 y miro en el archivo ./drivers/scsi/qla2xxx/qla_version.h, es casi el mismo número de versión que tengo en mis distribuciones de Novell (SLES y openSUSE gratis). Lo que sugiere que la solución que encontró para SLES / RHEL en realidad puede funcionar con un núcleo estándar 2.6.27.25.


Desafortunadamente no puede funcionar, porque menciona el uso de un archivo que no existe (/ proc / scsi / qla2xxx / ...) y un comando (scsi-qlascan) que no aparece en el código fuente del controlador.
wazoox

1

Sí, muchos consejos en google, pero la mayoría, si no todos, son sobre RedHat / SuSe y el controlador propietario de Qlogic ... Sin embargo, uno de sus enlaces me dio una idea, volveré :)
wazoox

Bueno, eh, he intentado con el firmware más reciente, pero no hubo suerte ...
wazoox
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.