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. ...
Symptoms
-
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'
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
Resolution
ADVERTENCIA
|
Existen varias opciones para resolver el problema o solucionar el problema según su situación actual:
- 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.
- 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
-
- 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) } }'"'"''
-
- 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
-