Головной узел высокой доступности SLURM - PullRequest
0 голосов
/ 05 июня 2018

Согласно https://slurm.schedmd.com/quickstart_admin.html#HA высокая доступность SLURM достигается путем развертывания второго BackupController, который вступает во владение при сбое основного и получает текущее состояние из общей файловой системы (возможно, NFS).

На мой взгляд, это имеет ряд недостатков.Например, это ограничивает общее количество серверов до двух, а второй сервер, вероятно, почти не используется.

Это единственный способ получить высокодоступный головной узел с SLURM?

То, что я хотел бы сделать, - это классическая трехуровневая установка: балансировщик нагрузки на первом уровне, который равномерно распределяет все запросы по узлам на уровне секунд.Это требует, чтобы головной узел (узлы) не имел состояния.Третий уровень - это уровень базы данных, где вся информация хранится или читается.Я ничего не знаю о внутренностях SLURM, и я не уверен, возможно ли это хотя бы отдаленно.

1 Ответ

0 голосов
/ 06 июня 2018

В текущем проекте внутреннее состояние контроллера находится в памяти, и Slurm сохраняет его в набор файлов в каталоге, на который регулярно указывает параметр конфигурации StateSaveLocation.Только один экземпляр slurmctld может выполнять запись в этот каталог за один раз.

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

Является ли этоединственный способ получить высокодоступный головной узел с SLURM?

Вы также можете управлять одним MasterController с помощью Corosync.Но на самом деле Slurm имеет только активные / пассивные опции, доступные для HA.

На мой взгляд, у этого есть ряд недостатков.Например, это ограничивает общее количество серверов до двух, и второй сервер, вероятно, почти не используется.

Нагрузка на контроллер часто очень разумна с точки зрения текущей вычислительной мощности и проблемы выделения ресурсовне может быть тривиально распараллелено (или лишено состояния).Часто контроллер резервного копирования размещается на машине, на которой запущен другой сервис.Например, в небольших развертываниях один компьютер запускает основной контроллер Slurm и другие службы (NFS, LDAP и т. Д.) И т. Д., А другой является узлом входа пользователя, который также действует как дополнительный контроллер Slurm.

...