PowerScale: Noder delt som lldpd sender ikke lenger hjerteslag til serverdelen Dell-svitsj

Summary: Denne artikkelen beskriver et problem med _lldpd prosess som bruker maksimalt tillatt minne og ikke lenger sender LLDP-pakker (Link Layer Discovery Protocol) til svitsjer.

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

ADVARSEL:
  • Det anbefales ikke å utføre en OneFS-oppgradering til de berørte versjonene (9.5.0.0 til 9.5.0.5)

  • RPS eller kunden MÅ starte alle lldpd-prosesser på nytt før en OneFS-oppgradering utføres under en berørt versjon (for eksempel oppgradering fra 9.5.0.1 til 9.5.0.7). Følg alternativ 2 i oppløsning.


Det er en minnelekkasje i lldpd, og en node kan deles hvis prosessen har brukt opp maksimalt tillatt minne (1 GB). Når noden bruker det tillatte minnet, sender den ikke lenger LLDP-pakker til backend-svitsjene. En PowerScale Dell-kvalifisert backend-svitsj som kjører SmartFabric Services (SFS), må motta hjerterytmepakker (LLDP) fra en node. Hvis du mangler tre hjerteslag, fjernes svitsjporten fra det dedikerte virtuelle nettverket. Da kan ikke en node lenger kommunisere med klyngen gjennom denne banen.

Hvis en klynge skal oppgraderes, startes noder på nytt etter hverandre, og hver omstart tar flere koblinger ned og opp igjen. Hver av disse koblingshendelsene fra omstartene øker sakte størrelsen på lldpd vmem-bruk. Det er svært sannsynlig at noder splittes under en oppgradering hvis prosessen ikke nylig har blitt startet på nytt.

Dette problemet kan oppstå i følgende scenarier:

  • OneFS-oppgraderinger
  • Normal drift av klynger

Den nåværende vmem-bruken kan sees med følgende kommando, der en MAXIMUM Resident Set Size (RSS)-verdi er 1 048 576 KB. RSS er den sjette kolonnen med informasjon fra PS-utdata (til venstre for " - ") (unntatt nodenavnet).

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

 

MERK: "isi_for_array" fungerer ikke på noder som er frakoblet. En direkte tilkobling til OFFLINE-noder er nødvendig for å samle inn informasjonen ovenfor.

 


Eksempel på utdata nedenfor:

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


Hastigheten som lldpd-prosessen bruker minnet varierer på flere faktorer. Dette er også årsaken til den høyere enn normale økningen i minnebruk under OneFS-oppgraderinger:

  • Størrelsen på nettverkskonfigurasjonen i klyngen
  • Antall delnett opprettet fra nettverkskonfigurasjonen
  • Antall nettverkshendelser, for eksempel kobling, ned eller opp
  • Regelmessige hendelser for omstart

Hvor lang tid det tar for _lldpd prosess å nå et MAKSIMALT tillatt minne, varierer fra klynge til klynge. Det ble imidlertid oppdaget at det er en sammenheng mellom nettverkskonfigurasjonsstørrelsen og tiden til feil. Dette betyr at jo flere groupnets, delnett og utvalg som er konfigurert, jo raskere kan det skje.  

Cause

I 9.5 ble lldpd oppdatert og inneholder en minnelekkasje.

Resolution

ADVARSEL

  • Det anbefales ikke å utføre en OneFS-oppgradering til de berørte versjonene (9.5.0.0 til 9.5.0.5)

  • RPS eller kunden MÅ starte alle lldpd-prosesser på nytt før en OneFS-oppgradering utføres under en berørt versjon (for eksempel oppgradering fra 9.5.0.1 til 9.5.0.7). Følg alternativ 2 i oppløsning.

Det finnes flere alternativer for å løse eller omgå problemet, avhengig av gjeldende scenario:

  1. Oppgrader OneFS til 9.5.0.6 og nyere
    • Legg merke til advarselsmeldingene som er beskrevet i artikkelen om omstart av lldpd før en oppgradering av de berørte versjonene.
  2. En midlertidig løsning fullføres umiddelbart, og starter lldpdd-prosessene på nytt umiddelbart. Dette krever manuell inngripen ved å starte prosessen på nytt på tvers av klyngen:
    • # killall lldpd
  3. En midlertidig løsning etter at problemet er løst ved å starte lldpdd-prosesser på nytt umiddelbart og som er over 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. En midlertidig løsning etter at problemet er løst (følgende kommando er den samme som forrige kommando), kan dette kjøres i en skjermøkt for å utføre sjekken hver 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.