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

ПРЕДУПРЕЖДЕНИЕ.
  • Не рекомендуется выполнять модернизацию OneFS до затронутых версий (с 9.5.0.0 до 9.5.0.5)

  • RPS или Заказчик ДОЛЖЕН перезапустить все процессы lldpd перед выполнением модернизации OneFS при использовании затронутой версии (например, модернизации с 9.5.0.1 до 9.5.0.7). Следуйте Варианту 2 в решении.


В lldpd имеется утечка памяти, и узел может разделиться, если процесс использует максимально допустимый объем памяти (1 Гбайт). После того как узел использует разрешенную память, он больше не отправляет пакеты LLDP на внутренние коммутаторы. Сертифицированный Dell внутренний коммутатор PowerScale, работающий под управлением SmartFabric Services (SFS), должен получать пакеты тактовых импульсов (LLDP) от узла. Если три тактовых импульса пропущены, порт коммутатора удаляется из выделенной виртуальной сети. После этого узел больше не сможет обмениваться данными с кластером по этому пути.

Если кластер будет модернизирован, узлы перезагружаются последовательно, и при каждой перезагрузке несколько каналов связи будут отключены и восстановлены. Каждое из этих событий связывания при перезагрузках медленно увеличивает размер используемого vmem lldpd. Весьма вероятно, что во время модернизации произойдет разделение узлов, если процесс не был перезапущен недавно.

Эта проблема может возникнуть в следующих сценариях:

  • Модернизация OneFS
  • Нормальная работа кластера

Текущее использование vmem можно увидеть с помощью следующей команды, где значение МАКСИМАЛЬНОГО размера резидентного набора (RSS) равно 1 048 576 Кбайт. RSS - это шестой столбец информации из вывода PS (слева от " - ") (исключая имя узла).

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

 

ПРИМЕЧАНИЕ. «isi_for_array» не работает на узлах, которые находятся в автономном режиме. Для сбора указанной выше информации требуется прямое подключение к АВТОНОМНЫМ узлам.

 


Пример вывода ниже:

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

  • Не рекомендуется выполнять модернизацию OneFS до затронутых версий (с 9.5.0.0 до 9.5.0.5)

  • RPS или Заказчик ДОЛЖЕН перезапустить все процессы lldpd перед выполнением модернизации OneFS при использовании затронутой версии (например, модернизации с 9.5.0.1 до 9.5.0.7). Следуйте Варианту 2 в решении.

Существует несколько вариантов решения или временного решения проблемы в зависимости от вашего текущего сценария:

  1. Модернизация OneFS до версии 9.5.0.6 и более поздних
    • Обратите внимание на предупреждающие сообщения, подробно описанные в статье, касающиеся перезапуска lldpd перед любым обновлением затронутых версий.
  2. Временное временное временное решение проблемы выполняется немедленно с перезапуском процессов lldpd. Для этого необходимо вручную вмешаться и перезапустить процесс в кластере:
    • # killall lldpd
  3. Временное временное решение после устранения проблемы заключается в немедленном перезапуске процессов lldpd размером более 500 Мбайт:
    • # 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. Временное временное временное решение после устранения проблемы (следующая команда аналогична предыдущей команде), его можно запустить в сеансе экранирования для выполнения проверки каждые 1200 с.
    • # 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.