PowerScale: Uzly jsou rozdělené, protože nástroj lldpd již neodesílá prezenční signál do backendového přepínače Dell.

Summary: Tento článek popisuje problém_lldpd kdy proces spotřebovává maximální povolenou paměť a přestává odesílat pakety protokolu LLDP (Link Layer Discovery Protocol) do backendových přepínačů. ...

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

VÝSTRAHA:
  • Nedoporučuje se provádět upgrade systému OneFS na dotčené verze (9.5.0.0 až 9.5.0.5)

  • RPS nebo zákazník MUSÍ restartovat všechny procesy lldpd před provedením upgradu OneFS na dotčené verzi (například upgrade z 9.5.0.1 na 9.5.0.7). V části Řešení postupujte podle možnosti 2.


V lldpd došlo k nevrácení paměti a uzel se může rozdělit, pokud proces spotřeboval maximální povolenou paměť (1 GB). Jakmile uzel spotřebuje povolenou paměť, už neodesílá pakety LLDP do back-endových přepínačů. Kvalifikovaný backendový přepínač PowerScale Dell se službami SmartFabric Services (SFS) musí přijímat pakety heartbeat (LLDP) z uzlu. Pokud dojde ke zmeškání tří prezenčních signálů, port přepínače se odebere z vyhrazené virtuální sítě. Uzel pak již nemůže prostřednictvím této cesty komunikovat s clusterem.

Pokud bude upgradován cluster, uzly se restartují postupně a při každém restartování se provede několik linek mimo provoz a zpět. Každá z těchto událostí propojení z restartování pomalu zvyšuje využití lldpd virtuálního počítače. Je vysoce pravděpodobné, že se uzly během upgradu rozdělí, pokud proces nebyl nedávno restartován.

K tomuto problému může dojít v následujících scénářích:

  • Upgrady systému OneFS
  • Normální operace clusteru

Aktuální využití nástroje vmem lze zobrazit pomocí následujícího příkazu, kde hodnota MAXIMÁLNÍ velikosti rezidentní sady (RSS) je 1 048 576 kB. RSS je šestý sloupec informací z výstupu PS (nalevo od " - ") (kromě názvu uzlu).

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

 

POZNÁMKA: "isi_for_array" nefunguje na uzlech, které jsou OFFLINE. Ke shromáždění výše uvedených informací je vyžadováno přímé připojení k uzlům OFFLINE.

 


Níže uvedený příklad výstupu:

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)
                                         ^^^^^^


Rychlost, s jakou proces lldpd spotřebovává paměť, se liší v závislosti na několika faktorech. To je také důvod vyššího než obvyklého nárůstu využití paměti během upgradů systému OneFS:

  • Velikost konfigurace sítě v clusteru
  • Počet podsítí vytvořených z konfigurace sítě
  • Počet síťových událostí, například přerušení nebo zapnutí připojení
  • Opakující se události restartování

Doba, za kterou proces _lldpd dosáhne maximálního povoleného množství paměti, se v jednotlivých clusterech liší. Bylo však zjištěno, že existuje korelace mezi velikostí konfigurace sítě a dobou do selhání. To znamená, že čím více skupinových sítí, podsítí a fondů je nakonfigurováno, tím dříve k tomu může dojít.  

Cause

Ve verzi 9.5 byl aktualizován příkaz lldpd, který obsahuje únik paměti.

Resolution

WARNING

  • Nedoporučuje se provádět upgrade systému OneFS na dotčené verze (9.5.0.0 až 9.5.0.5)

  • RPS nebo zákazník MUSÍ restartovat všechny procesy lldpd před provedením upgradu OneFS na dotčené verzi (například upgrade z 9.5.0.1 na 9.5.0.7). V části Řešení postupujte podle možnosti 2.

Existuje několik možností, jak problém vyřešit nebo obejít v závislosti na vašem aktuálním scénáři:

  1. Upgrade systému OneFS na verzi 9.5.0.6 a novější
    • Všimněte si varovných zpráv podrobně popsaných v článku týkajícím se restartování lldpd před jakýmkoli upgradem z dotčených verzí.
  2. Dočasné zástupné řešení se provede okamžitě restartováním procesů lldpd. To vyžaduje ruční zásah restartováním procesu v clusteru:
    • # killall lldpd
  3. Dočasné zástupné řešení po vyřešení problému v podobě okamžitého restartování procesů lldpd, které mají více než 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. Dočasné zástupné řešení po vyřešení problému (následující příkaz je stejný jako předchozí příkaz), které lze spustit v relaci obrazovky a provést kontrolu každých 1 200 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.