PowerScale: lldpd로 분할된 노드가 더 이상 백엔드 Dell 스위치로 하트비트를 전송하지 않음

Summary: 이 문서에서는 _lldpd 프로세스가 허용되는 최대 메모리를 사용하고 더 이상 LLDP(Link Layer Discovery Protocol) 패킷을 백엔드 스위치로 전송하지 않는 문제에 대해 설명합니다.

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

경고:
  • 영향을 받는 버전(9.5.0.0에서 9.5.0.5로 OneFS 업그레이드)은 수행하지 않는 것이 좋습니다

  • RPS 또는 고객은 영향을 받는 버전(예: 9.5.0.1에서 9.5.0.7로 업그레이드)에서 OneFS 업그레이드를 수행하기 전에 모든 lldpd 프로세스를 재시작해야 합니다. 해결 방법에서 옵션 2를 따릅니다.


lldpd에 메모리 누수가 있으며 프로세스가 허용되는 최대 메모리(1GB)를 사용한 경우 노드가 분할될 수 있습니다. 노드가 허용된 메모리를 사용하면 더 이상 LLDP 패킷을 백엔드 스위치로 전송하지 않습니다. SFS(SmartFabric Services)를 실행하는 PowerScale Dell 인증 백엔드 스위치는 노드에서 하트비트(LLDP) 패킷을 수신해야 합니다. 하트비트 3개가 누락되면 스위치 포트가 전용 가상 네트워크에서 제거됩니다. 그러면 노드가 더 이상 해당 경로를 통해 클러스터와 통신할 수 없습니다.

클러스터를 업그레이드하려는 경우 노드가 연속적으로 재부팅되고 재부팅할 때마다 여러 링크가 다운되었다가 백업됩니다. 재부팅으로 인한 이러한 각 링크 이벤트는 lldpd vmem 사용량의 크기를 천천히 증가시킵니다. 최근에 프로세스를 재시작하지 않은 경우 업그레이드 중에 노드가 분할될 가능성이 높습니다.

이 문제는 다음과 같은 시나리오에서 발생할 수 있습니다.

  • OneFS 업그레이드
  • 정상적인 클러스터 작업

현재 vmem 사용량은 다음 명령을 사용하여 확인할 수 있습니다. 여기서 최대 RSS(Resident Set Size) 값은 1,048,576KB입니다. RSS는 PS(" - "의 왼쪽) 출력(노드 이름 제외)의 여섯 번째 정보 열입니다.

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

 

참고: "isi_for_array"는 오프라인 상태인 노드에서 작동하지 않습니다. 위의 정보를 수집하려면 OFFLINE 노드에 직접 연결해야 합니다.

 


아래 출력 예:

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


lldpd 프로세스가 메모리를 소비하는 속도는 몇 가지 요인에 따라 달라집니다. 이는 OneFS 업그레이드 중에 메모리 사용량이 정상보다 많이 증가하는 이유이기도 합니다.

  • 클러스터의 네트워크 구성 크기
  • 네트워크 구성에서 생성된 서브넷 수
  • 링크 다운 또는 업과 같은 네트워크 이벤트의 수
  • 반복되는 재부팅 이벤트

프로세스가 허용되는 최대 메모리_lldpd 도달하는 데 걸리는 시간은 클러스터마다 다릅니다. 그러나 네트워크 구성 크기와 장애 시간 사이에는 상관 관계가 있는 것으로 밝혀졌습니다. 즉, 더 많은 그룹넷, 서브넷 및 풀을 구성할수록 더 빨리 발생할 수 있습니다.  

Cause

9.5에서는 lldpd가 업데이트되었으며 메모리 누수가 포함되어 있습니다.

Resolution

WARNING

  • 영향을 받는 버전(9.5.0.0에서 9.5.0.5로 OneFS 업그레이드)은 수행하지 않는 것이 좋습니다

  • RPS 또는 고객은 영향을 받는 버전(예: 9.5.0.1에서 9.5.0.7로 업그레이드)에서 OneFS 업그레이드를 수행하기 전에 모든 lldpd 프로세스를 재시작해야 합니다. 해결 방법에서 옵션 2를 따릅니다.

현재 시나리오에 따라 문제를 해결하거나 해결할 수 있는 몇 가지 옵션이 있습니다.

  1. OneFS를 9.5.0.6 이상으로 업그레이드
    • 영향을 받는 버전을 업그레이드하기 전에 lldpd 다시 시작과 관련된 문서에 자세히 설명된 경고 메시지를 확인합니다.
  2. lldpd 프로세스를 재시작하는 즉시 임시 해결 방법이 완료됩니다. 이를 위해서는 클러스터 전체에서 프로세스를 재시작하여 수동으로 개입해야 합니다.
    • # killall lldpd
  3. 500MB를 초과하는 lldpd 프로세스를 즉시 재시작하는 문제가 해결된 후의 임시 해결 방법:
    • # 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. 문제가 해결된 후의 임시 해결 방법(다음 명령은 이전 명령과 동일함)으로, 화면 세션에서 실행하여 1,200초마다 검사를 수행할 수 있습니다.
    • # 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.