Узел мастер кластера не может найти другие узлы.

Вопрос или проблема

У меня есть кластер CentOS (версия 7) с несколькими узлами. Проблема в том, что master-узел не распознает их узлы.

Я использую slurm 18.08.8. Я использую команду sbatch для запуска своей программы, но получаю следующую ошибку:

Узлы, требуемые для задания, ВЫКЛЮЧЕНЫ, ОТЦЕПЛЕНЫ или зарезервированы для заданий в приоритетных разделах

Эта проблема началась, когда кластер внезапно отключился из-за отключения электроэнергии.

Master-узел распознает другие узлы в кластере, но, так как они были выключены вне slurm, контроллер slurm не может знать, что они теперь функциональны. Для каждого узла в кластере выполните

scontrol: update NodeName=cnxx State=DOWN Reason="undraining"
scontrol: update NodeName=cnxx State=RESUME

где cnxx – это имя узла. Вы можете использовать стандартные диапазоны узлов, если это уместно. Кстати, slurm 18.x не поддерживается уже более 6 лет, и CentOS 7 также достиг конца срока службы.

Ответ или решение

Проблема: Главный узел кластера SLURM не может найти другие узлы

При работе с вычислительными кластерами под управлением SLURM может возникнуть множество проблем, особенно после внезапных выключений, таких как сбой питания. В вашем случае главный узел (мастер-узел) кластера CentOS 7 с установленной версией SLURM 18.08.8 не распознает другие узлы, что может привести к ошибке при запуске задач с помощью команды sbatch. Давайте разберемся в возникшей ситуации и предложим решение.

Признаки проблемы

Вы упомянули, что при выполнении команды sbatch получаете сообщение об ошибке:

Nodes required for job are DOWN, DRAINED or reserved for jobs in higher priority partitions

Это указывает на то, что SLURM считает узлы кластера недоступными (DOWN) или находящимися в состоянии DRAINED (выведены из эксплуатации). Во многих случаях такая ситуация возникает, если узлы были неожиданно выключены и SLURM не получил соответствующих уведомлений для обновления своего состояния.

Проверка состояния узлов

Первоначальный шаг — проверить состояние узлов в кластере. Для этого можно использовать команду:

sinfo

Эта команда покажет текущее состояние всех узлов в вашей системе. Если вы увидите, что узлы находятся в состоянии DOWN или DRAINED, то потребуется выполнить их обновление.

Решение проблемы

Чтобы внести необходимые изменения в состояние узлов, необходимо использовать команду scontrol. Для каждого узла выполните следующие команды:

scontrol update NodeName=cnxx State=DOWN Reason="undraining"
scontrol update NodeName=cnxx State=RESUME

Здесь cnxx — это имя вашего узла. Вы можете использовать диапазоны имен узлов, если это соответствует вашей конфигурации. Обратите внимание, что команда update изменяет состояние узла на DOWN с указанной причиной, а затем команда RESUME восстанавливает его работоспособность.

Пример выполнения для узлов с именами cn1 и cn2:

scontrol update NodeName=cn1 State=DOWN Reason="undraining"
scontrol update NodeName=cn1 State=RESUME

scontrol update NodeName=cn2 State=DOWN Reason="undraining"
scontrol update NodeName=cn2 State=RESUME

Обстоятельства, которые стоит учитывать

Важно отметить, что вы используете неподдерживаемую версию SLURM (18.x) и операционную систему CentOS 7, которая также вышла из активной поддержки. Рекомендуется рассмотреть возможность обновления до более новой версии SLURM и переход на более свежие дистрибутивы Linux, чтобы обеспечить стабильность и безопасность вашего кластера.

Заключение

Проблема, с которой вы столкнулись, связана с состоянием узлов после внезапного отключения питания. Обновление состояния узлов с помощью команд scontrol должно решить проблему распознавания узлов мастер-узлом. Поддержание актуальности программного обеспечения и оперативной системы также поможет избежать подобных ситуаций в будущем.

Оцените материал
Добавить комментарий

Капча загружается...