PowerScale: Los nodos divididos como lldpd ya no envían el latido al switch Dell de back-end

Summary: En este artículo, se describe un problema con _lldpd proceso que consume la memoria máxima permitida y ya no envía paquetes de protocolo de detección de capa de enlace (LLDP) a los switches de back-end. ...

This article applies to This article does not apply to This article is not tied to any specific product. Not all product versions are identified in this article.

Symptoms

PRECAUCIÓN:
  • No se recomienda realizar una actualización de OneFS a las versiones afectadas (9.5.0.0 a 9.5.0.5)

  • RPS o el cliente DEBEN reiniciar todos los procesos de lldpd antes de realizar una actualización de OneFS mientras se encuentra en una versión afectada (por ejemplo, la actualización de 9.5.0.1 a 9.5.0.7). Siga la opción 2 en resolución.


Hay una pérdida de memoria en lldpd y un nodo se puede dividir si el proceso ha consumido su memoria máxima permitida (1 GB). Una vez que el nodo consume su memoria permitida, ya no envía paquetes de LLDP a los switches de back-end. Un switch de back-end PowerScale calificado por Dell que ejecuta SmartFabric Services (SFS) debe recibir paquetes de latido (LLDP) de un nodo. Si se pierden tres latidos, el puerto del switch se elimina de su red virtual dedicada. A continuación, un nodo ya no puede comunicarse con el clúster a través de esa ruta.

Si se va a actualizar un clúster, los nodos se reinician sucesivamente y cada reinicio toma varios vínculos para retirarlos y respaldarlos. Cada uno de estos eventos de enlace de los reinicios aumenta lentamente el tamaño del uso de vmem lldpd. Es muy probable que los nodos se dividan durante una actualización si el proceso no se reinició recientemente.

Este problema puede ocurrir durante los siguientes escenarios:

  • Actualizaciones de OneFS
  • Operaciones normales del clúster

El uso actual de vmem se puede ver con el siguiente comando, donde un valor MÁXIMO de tamaño del conjunto residente (RSS) es 1 048 576 KB. RSS es la sexta columna de información de la salida de PS (izquierda de " - ") (excluyendo el nombre del nodo).

# isi_for_array -s 'ps aux | grep _lldpd | grep -v grep'

 

NOTA: "isi_for_array" no funciona en nodos que están OFFLINE. Se requiere una conexión directa a los nodos OFFLINE para recopilar la información anterior.

 


Ejemplo de salida a continuación:

cl950x-1# isi_for_array -s 'ps aux | grep _lldpd | grep -v grep'
cl950x-1: _lldpd  1483   0.0  3.2 273804 262168  -  S     6Aug23     74:25.14 lldpd: no neighbor. (lldpd)
cl950x-1: _lldpd  1492   0.0  3.2 273804 262168  -  S     6Aug23     74:31.73 lldpd: no neighbor. (lldpd)
cl950x-2: _lldpd  1483   0.0  2.9 251068 238632  -  S    14Aug23     66:19.68 lldpd: no neighbor. (lldpd)
cl950x-2: _lldpd  1492   0.0  2.9 251068 238632  -  S    14Aug23     66:24.72 lldpd: no neighbor. (lldpd)
cl950x-3: _lldpd  1483   0.0  2.9 251832 239420  -  S    14Aug23     46:25.36 lldpd: no neighbor. (lldpd)
cl950x-3: _lldpd  1492   0.0  2.9 251832 239420  -  S    14Aug23     46:32.24 lldpd: no neighbor. (lldpd)
cl950x-4: _lldpd  1487   0.0  3.1 268052 256212  -  S     8Aug23     50:25.15 lldpd: no neighbor. (lldpd)
cl950x-4: _lldpd  1496   0.0  3.1 268052 256212  -  S     8Aug23     50:36.34 lldpd: no neighbor. (lldpd)
cl950x-5: _lldpd  1483   0.0  3.1 273208 261552  -  S     6Aug23     75:41.91 lldpd: no neighbor. (lldpd)
cl950x-5: _lldpd  1492   0.0  3.1 273208 261552  -  S     6Aug23     75:35.00 lldpd: no neighbor. (lldpd)
cl950x-6: _lldpd  1482   0.0  3.2 274144 262516  -  S     6Aug23     50:49.08 lldpd: no neighbor. (lldpd)
cl950x-6: _lldpd  1492   0.0  3.2 274144 262516  -  S     6Aug23     51:02.88 lldpd: no neighbor. (lldpd)
cl950x-7: _lldpd  1483   0.0  3.2 274004 262380  -  S     6Aug23     50:51.55 lldpd: no neighbor. (lldpd)
cl950x-7: _lldpd  1492   0.0  3.2 274004 262380  -  S     6Aug23     51:03.26 lldpd: no neighbor. (lldpd)
cl950x-8: _lldpd  1483   0.0  2.9 251176 238744  -  S    14Aug23     46:40.93 lldpd: no neighbor. (lldpd)
cl950x-8: _lldpd  1492   0.0  2.9 251176 238744  -  S    14Aug23     46:49.57 lldpd: no neighbor. (lldpd)
                                         ^^^^^^


La velocidad a la que el proceso lldpd consume la memoria varía según varios factores. Este también es el motivo del aumento más alto de lo normal en el uso de la memoria durante las actualizaciones de OneFS:

  • Tamaño de configuración de red en el clúster
  • Cantidad de subredes creadas a partir de la configuración de red
  • La cantidad de eventos de red, como vínculo inactivo o activo
  • Eventos de reinicio recurrentes

La cantidad de tiempo que tarda _lldpd proceso en alcanzar la memoria MÁXIMA permitida varía de un clúster a otro. Sin embargo, se descubrió que existe una correlación entre el tamaño de la configuración de red y el tiempo hasta la falla. Esto significa que mientras más groupnets, subredes y pools se configuren, más pronto podrá ocurrir.  

Cause

En la versión 9.5, lldpd se actualizó y contiene una pérdida de memoria.

Resolution

ADVERTENCIA

  • No se recomienda realizar una actualización de OneFS a las versiones afectadas (9.5.0.0 a 9.5.0.5)

  • RPS o el cliente DEBEN reiniciar todos los procesos de lldpd antes de realizar una actualización de OneFS mientras se encuentra en una versión afectada (por ejemplo, la actualización de 9.5.0.1 a 9.5.0.7). Siga la opción 2 en resolución.

Existen varias opciones para resolver el problema o solucionar el problema según su situación actual:

  1. Actualizar OneFS a 9.5.0.6 y versiones posteriores
    • Tenga en cuenta los mensajes de advertencia que se detallan en el artículo con respecto al reinicio de lldpd antes de realizar cualquier actualización de las versiones afectadas.
  2. Se completa una solución alternativa temporal inmediatamente después del reinicio de los procesos de lldpd. Esto requiere intervención manual mediante el reinicio del proceso en todo el clúster:
    • # killall lldpd
  3. Una solución alternativa temporal después de resolver el problema es reiniciar inmediatamente los procesos lldpd de más de 500 MB:
    • # isi_for_array -s 'ps auxww | grep _lldpd | grep -v grep | awk '"'"'{print $2}'"'"' | while read pid; do procstat -r $pid | grep RSS; done | awk '"'"'{ if ($5 > 500000 && $2 == "lldpd") { command=sprintf("kill %d",$1); system(command); close(command) } }'"'"''
  4. Una solución alternativa temporal después de que se resuelva el problema (el siguiente comando es el mismo que el comando anterior), esto se puede ejecutar en una sesión de pantalla para realizar la comprobación cada 1200 s.
    • # while true; do isi_for_array -s 'ps auxww | grep _lldpd | grep -v grep | awk '"'"'{print $2}'"'"' | while read pid; do procstat -r $pid | grep RSS; done | awk '"'"'{ if ($5 > 500000 && $2 == "lldpd") { command=sprintf("kill %d",$1); system(command); close(command) } }'"'"''; sleep 1200; done
Article Properties
Article Number: 000219439
Article Type: Solution
Last Modified: 19 May 2025
Version:  7
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.