В текущем проекте внутреннее состояние контроллера находится в памяти, и Slurm сохраняет его в набор файлов в каталоге, на который регулярно указывает параметр конфигурации StateSaveLocation
.Только один экземпляр slurmctld
может выполнять запись в этот каталог за один раз.
Одной из проблем с сохранением состояния в базе данных будет ужасная задержка при распределении ресурсов с большим количеством необходимых синхронизаций, поскольку оптимальное распределение ресурсовможет быть сделано только с полной информацией.Инфраструктура, необходимая для поддержки того же уровня пропускной способности, который теперь может обрабатывать Slurm с состоянием в памяти, будет очень дорогой по сравнению с текущим решением, предполагающим только побитовые операции над массивами в памяти.
Является ли этоединственный способ получить высокодоступный головной узел с SLURM?
Вы также можете управлять одним MasterController с помощью Corosync.Но на самом деле Slurm имеет только активные / пассивные опции, доступные для HA.
На мой взгляд, у этого есть ряд недостатков.Например, это ограничивает общее количество серверов до двух, и второй сервер, вероятно, почти не используется.
Нагрузка на контроллер часто очень разумна с точки зрения текущей вычислительной мощности и проблемы выделения ресурсовне может быть тривиально распараллелено (или лишено состояния).Часто контроллер резервного копирования размещается на машине, на которой запущен другой сервис.Например, в небольших развертываниях один компьютер запускает основной контроллер Slurm и другие службы (NFS, LDAP и т. Д.) И т. Д., А другой является узлом входа пользователя, который также действует как дополнительный контроллер Slurm.