PowerScale: Nodi suddivisi come lldpd non invia più heartbeat allo switch Dell back-end
Summary: Questo articolo descrive un problema con _lldpd processo che consuma la memoria massima consentita e non invia più pacchetti LLDP (Link Layer Discovery Protocol) agli switch back-end.
Symptoms
-
Non è consigliabile eseguire un aggiornamento di OneFS alle versioni interessate (da 9.5.0.0 a 9.5.0.5)
-
RPS o il cliente DEVE riavviare tutti i processi lldpd prima di eseguire un aggiornamento di OneFS su una versione interessata (ad esempio, l'aggiornamento da 9.5.0.1 a 9.5.0.7). Seguire l'opzione 2 nella risoluzione.
Si verifica una perdita di memoria in lldpd e un nodo può dividersi se il processo ha consumato la memoria massima consentita (1 GB). Una volta che il nodo utilizza la memoria consentita, non invia più pacchetti LLDP agli switch back-end. Uno switch di back-end qualificato Dell PowerScale che esegue SmartFabric Services (SFS) deve ricevere pacchetti heartbeat (LLDP) da un nodo. Se vengono mancati tre heartbeat, la porta dello switch viene rimossa dalla rete virtuale dedicata. Quindi, un nodo non può più comunicare con il cluster tramite tale percorso.
Se un cluster verrà aggiornato, i nodi vengono riavviati in successione e ogni riavvio richiede diversi collegamenti verso l'alto e verso l'alto. Ognuno di questi eventi di collegamento dei riavvii aumenta lentamente le dimensioni dell'utilizzo di vmem lldpd. È molto probabile che i nodi si dividano durante un aggiornamento se il processo non è stato riavviato di recente.
Questo problema può verificarsi nei seguenti scenari:
- Upgrade di OneFS
- Operazioni normali del cluster
L'utilizzo corrente di vmem può essere visualizzato con il seguente comando, dove un valore MAXIMUM Resident Set Size (RSS) è 1.048.576 KB. RSS è la sesta colonna di informazioni dall'output PS (a sinistra di " -") (escluso il nome del nodo).
# isi_for_array -s 'ps aux | grep _lldpd | grep -v grep'
Output di esempio riportato di seguito:
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 velocità con cui il processo lldpd utilizza la memoria varia in base a diversi fattori. Questo è anche il motivo dell'aumento superiore al normale dell'utilizzo della memoria durante gli aggiornamenti di OneFS:
- Dimensioni della configurazione di rete nel cluster
- Numero di subnet create dalla configurazione di rete
- Il numero di eventi di rete, ad esempio link down o up.
- Eventi ricorrenti di riavvio
La quantità di tempo necessaria affinché _lldpd processo raggiunga la memoria MASSIMA consentita varia da cluster a cluster. Tuttavia, è stata rilevata una correlazione tra le dimensioni della configurazione di rete e il tempo necessario per l'errore. Ciò significa che maggiore è il numero di groupnet, subnet e pool configurati, prima può verificarsi l'operazione.
Cause
Resolution
WARNING
|
Sono disponibili diverse opzioni per risolvere il problema a seconda dello scenario corrente:
- Aggiornare OneFS alla versione 9.5.0.6 e versioni successive
- Prendere nota dei messaggi di avvertenza descritti in dettaglio nell'articolo relativi al riavvio di lldpd prima di qualsiasi aggiornamento delle versioni interessate.
- Una soluzione alternativa temporanea viene completata immediatamente riavviando i processi lldpd. Ciò richiede un intervento manuale riavviando il processo nel cluster:
-
# killall lldpd
-
- Una soluzione temporanea dopo la risoluzione del problema consiste nel riavviare immediatamente i processi lldpd di dimensioni superiori a 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 soluzione temporanea dopo la risoluzione del problema (il comando seguente è lo stesso del comando precedente), può essere eseguita in una sessione dello schermo per eseguire il controllo ogni 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
-