Я бы хотел найти инструмент пользовательского пространства (желательно на Python - за исключением того, что я мог бы легко изменить, если он уже не делает то, что мне нужно), чтобы заменить короткий скрипт, которым я былиспользуя это, можно сделать две вещи ниже:
- опрашивает менее 100 компьютеров (Fedora 13, так бывает) на загрузку, доступную память и, если похоже, что кто-то их использует
- выбирает хорошие хосты для рабочих мест, запускает их через ssh.Эти задания являются выполнением произвольных программ командной строки, которые читают и записывают в общую файловую систему - обычно сценарии обработки изображений или аналогичные - процессоры, иногда требующие большого объема памяти.
Например, используя мой текущий сценарий,Я могу в командной строке Python
>>> import hosts
>>> hosts.run_commands(['users']*5)
или из командной строки
% hosts.py "users" "users" "users" "users" "users"
выполнить команду users
5 раз (после нахождения 5 компьютеров, на которых эта команда может быть запущена)проверяя загрузку процессора и доступную память как минимум на 5 компьютерах из файла конфигурации).Не должно быть никакого сервера заданий, кроме только что выполненного мной сценария, и не должно быть рабочих демонов или процессов на компьютерах, которые будут выполнять эти команды.
Я бы также хотел иметь возможность отслеживать задания, запускать заданияснова при сбое и т. д., но это дополнительные функции (очень стандартные в реальном планировщике заданий), которые мне на самом деле не нужны.
Я нашел хорошие библиотеки ssh для Python, такие как classh и PuSSH , которые не имеют (очень простых) функций балансировки нагрузки, которые мне бы хотелось.С другой стороны, что я хочу, это Кондор или Слёрм, как предложили Криспамар, прежде чем я пояснил, что хочу чего-то более легкого.Они будут делать вещи должным образом, но, читая о них, они звучат как раскручивание их в пространстве пользователя только тогда, когда они мне нужны, это раздражает до невозможности.Это не выделенный кластер, и у меня нет корневого доступа на этих хостах.
В настоящее время я планирую использовать оболочку вокруг classh для некоторых базовых опросов компьютеров всякий раз, когда мне нужно узнать, насколько занятони, если я не могу найти что-то еще.