lun4194304 has a LUN larger than allowed by the host adapter

En un RedHat 7.6 he pedido una LUN para ampliar un filesystem. Esta es una tarea rutinaria de cualquier técnico de sistemas Linux, si embargo, hoy me he encontrado con que la LUN estaba asignada al servidor pero no la veía. En el log del sistema operativo (/var/log/messages) aparecía el siguiente mensaje:

kernel: scsi 0:0:0:0: lun4194304 has a LUN larger than allowed by the host adapter

Es decir, que el ID de la LUN asignada no es compatible con el que soporta el sistema operativo. De hecho, ni siquiera podía ver el device asignado (/dev/sdXXX):

[root]# lsscsi
[0:0:0:4194240] storage HP       P220i            8.00  -

Busqué información en la WEB de RedHat pero, finalmente, terminé por abrir un caso pero me enviaron información contradictoria.

Problema de incompatibilidad entre el LUN ID y el sistema operativo

En el documento oficial de RedHat https://access.redhat.com/solutions/67157, básicamente, se indica que el LUN ID proporcionado con la cabina de discos no es compatible con el controlador de la tarjeta de fibras y que debería contactar con el administrador de la cabina para que proporcione un identificador de LUN con un formato compatible.

El técnico de RedHat basaba su respuesta (en inglés) en tal documento:

Messages:
Oct 21 10:36:54 lsltsax6 kernel: scsi 0:0:0:0: lun4194304 has a LUN larger than allowed by the host adapter


This id value is in a vendor-specific format. This is one of the physical devices behind the controller that would typically be used as part of the logical volume. Since only the logical volumes should be accessed by the system, this physical lun number can be ignored. Typically only HP health agents would access information on the physical disk devices via the raid controller device. Not all combinations of Smart Array model, firmware, and hpsa driver revisions will report physical disk devices back to the host. Normally these devices are filtered off in later hpsa driver / Smart Array firmware combinations.

[controller/lun]
host0 : hpsa / 0000:03:00.0 RAID bus controller [0104]: Hewlett-Packard Company Smart Array Gen8 Controllers [103c:323b] (rev 01) 
    bus0 
        target0 - 1 lun (lun0.ac[/sg0(HP)]) 
    bus1 
        target0 - 1 lun (lun0.sd[sda/sg1(HP)]) <---

Contact storage vendor for assistance. The LUN information returned by storage is not in a compatible format for use within linux and its drivers. 

Solución

Por otro lado, en el mismo caso de RedHat, y de ahí la información contradictoria, me envían otro documento oficial con la solución al problema: https://access.redhat.com/solutions/26017.

Dependiendo de la controladora de fibras, aplica una solución u otra. En mi caso, utilizamos tarjetas Emulex. Lo podemos ver así:

[root]# lspci -v > lspci.txt
[root]# grep -i fibre lspci.txt
05:00.0 Fibre Channel: QLogic Corp. ISP2532-based 8Gb Fibre Channel to PCI Express HBA (rev 02)
05:00.1 Fibre Channel: QLogic Corp. ISP2532-based 8Gb Fibre Channel to PCI Express HBA (rev 02)
[root]#

[root]# modinfo qla2xxx |grep -i maxlun
parm:           ql2xmaxlun:Defines the maximum LU number to register with the SCSI midlayer. Default is 65535. (uint)
[root]#

NOTA: Los drivers indicados en el documento son los siguientes:

  • LPFC: Emulex
  • QLA: QLogic
  • Fnic: CISCO

Por lo tanto, en mi caso, aplica la solución para los controladores Emulex, que es la siguiente:

  • Crear el fichero lpc.conf con el siguiente contenido:
[root]# cat /etc/modprobe.d/lpfc.conf
options lpfc  lpfc_nodev_tmo=10 lpfc_lun_queue_depth=32 lpfc_max_luns=2048
[root]#

Observamos que limitamos el número máximo de LUNs a 2048.

  • Recrear el initram (dracut -f).
  • Rebotar el sistema operativo.

Tras ejecutar estas tres acciones ya podía ver la LUN y utilizarla con normalidad:

[root]# multipath -ll
mpathb (360002ac000000000000001d40002090f) dm-3 3PARdata,VV
size=50G features='1 queue_if_no_path' hwhandler='1 alua' wp=rw
`-+- policy='service-time 0' prio=50 status=active
  |- 1:0:1:0 sdc 8:32 active ready running
  `- 2:0:1:0 sde 8:64 active ready running

Te puede interesar

Aprender a configurar el Multipath en Linux

COMPÁRTEME

Deja un comentario