PowerScale: Noder delas eftersom lldpd inte längre skickar pulsslag till backend Dell-switchen
Summary: I den här artikeln beskrivs ett problem med _lldpd process som förbrukar det maximala tillåtna minnet och inte längre skickar LLDP-paket (Link Layer Discovery Protocol) till serverdelsväxlar. ...
Symptoms
-
Vi rekommenderar inte att du utför en OneFS-uppgradering till de berörda versionerna (9.5.0.0 till 9.5.0.5)
-
RPS eller kunden MÅSTE starta om alla lldpd-processer innan en OneFS-uppgradering utförs på en berörd version (exempelvis uppgradering från 9.5.0.1 till 9.5.0.7). Följ alternativ 2 i upplösning.
Det finns en minnesläcka i lldpd och en nod kan delas om processen har förbrukat sitt maximalt tillåtna minne (1 GB). När noden har förbrukat sitt tillåtna minne skickar den inte längre LLDP-paket till backend-switcharna. En PowerScale Dell-kvalificerad backend-switch som kör SmartFabric Services (SFS) måste ta emot LLDP-paket (heartbeat) från en nod. Om tre pulsslag missas tas switchporten bort från det dedikerade virtuella nätverket. Sedan kan en nod inte längre kommunicera med klustret via den sökvägen.
Om ett kluster ska uppgraderas startas noderna om i följd och varje omstart tar flera länkar ned och säkerhetskopierar. Var och en av dessa länkhändelser från omstarterna ökar långsamt storleken på lldpd vmem-användningen. Det är mycket troligt att noder delas under en uppgradering om processen inte har startats om nyligen.
Det här problemet kan uppstå i följande scenarier:
- OneFS-uppgraderingar
- Normal klusterdrift
Den aktuella vmem-användningen kan ses med följande kommando, där ett RSS-värde (MAXIMUM Resident Set Size) är 1 048 576 kB. RSS är den sjätte kolumnen med information från PS (till vänster om " - ") utdata (exklusive nodnamnet).
# isi_for_array -s 'ps aux | grep _lldpd | grep -v grep'
Exempel på utdata nedan:
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) ^^^^^^
Den hastighet med vilken lldpd-processen förbrukar minnet varierar beroende på flera faktorer. Detta är också orsaken till den högre minnesanvändningen än normalt under OneFS-uppgraderingar:
- Nätverkskonfigurationsstorlek i klustret
- Antal undernät som skapats från nätverkskonfigurationen
- Antalet nätverkshändelser, t.ex. länk ned eller upp
- Återkommande omstartshändelser
Hur lång tid det tar för _lldpd process att nå ett MAXIMALT tillåtet minne varierar från kluster till kluster. Man har dock upptäckt att det finns ett samband mellan nätverkskonfigurationens storlek och tiden till fel. Det innebär att ju fler groupnets, undernät och pooler som konfigureras, desto tidigare kan det ske.
Cause
Resolution
VARNING
|
Det finns flera alternativ för att lösa eller kringgå problemet beroende på ditt aktuella scenario:
- Uppgradera OneFS till 9.5.0.6 och senare
- Observera varningsmeddelandena som beskrivs i artikeln om att starta om lldpd före en uppgradering från de berörda versionerna.
- En tillfällig lösning slutförs omedelbart och startar om lldpd-processer. Detta kräver manuella åtgärder genom att starta om processen i klustret:
-
# killall lldpd
-
- En tillfällig lösning efter att problemet har lösts genom att omedelbart starta om lldpd-processer som är över 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) } }'"'"''
-
- En tillfällig lösning När problemet har lösts (följande kommando är detsamma som föregående kommando) kan detta köras i en skärmsession för att utföra kontrollen var 1200:e sekund.
-
# 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
-