Хорошие способы перезапустить все компьютеры в удаленном кластере?

У меня есть кластер, которым я управляю, и время от времени я получаю электронные письма от каждого узла (и главного узла) просящий перезапускаться после автоматического обновления.

В настоящее время моим лучшим решением до сих пор является сценарий оболочки как:

 $> cat cluster_reboot.sh
 ssh root@node1.host.edu reboot
 ssh root@node2.host.edu reboot
 ssh root@node3.host.edu reboot
 ssh root@node4.host.edu reboot
 ssh root@node5.host.edu reboot
 ssh root@headnode.host.edu reboot

Я заканчиваю тем просто, что ввел пароль root шесть раз, но он работает, я предполагаю. Существует ли лучший путь? Я могу вынудить главный узел перезагрузить компьютеры для меня?

ОБНОВЛЕНИЕ: я хотел бы уклониться от использования входа в систему без ключа для root пользователь..., но это - метод, который определенно работал бы.

ОБНОВЛЕНИЕ 2: Пары ключей могли бы иметь использование, в конце концов. Что относительно включенного входа в систему главного узла, затем входа в систему без ключа от главного узла до всех вычислить узлов. Затем что-то как следующее:

 $> ssh root@headnode
 Enter password for 'root':
 [<headnode>]$: cat cluster_reboot.sh
 ssh root@node1.host.edu reboot
 ssh root@node2.host.edu reboot
 ssh root@node3.host.edu reboot
 ssh root@node4.host.edu reboot
 ssh root@node5.host.edu reboot
 echo "Nodes rebooted. Rebooting this computer now."
 reboot
 [<headnode>]$: sh cluster_reboot.sh
 "Nodes rebooted. Rebooting this computer now."

Я думаю, что это могло бы быть secure+easy решением.

2
задан 23.03.2010, 22:16

5 ответов

Возможно, выполнение вида проверять-и-видеть системы могло бы работать здесь на Вас также?

Принятие Вас имеет своего рода сервер HTTP, работающий на главном узле, Вы могли записать немного php/perl/whatever сценария, который позволяет Вам отметить, какие компьютеры в порядке к перезагрузке.

Затем на каждом узле, помещает задание крона, которое опрашивает тот сценарий, чтобы видеть, ли это в порядке к перезагрузке. Если главный узел передает обратно хорошо, то он должен перезагрузить. После того как headnode отправил хорошо к перезагрузке команда, он мог очистить флаг.

Я установил бы это использование каталога с некоторыми текстовыми файлами в нем, если сценарий видит, что имя затем передает обратно хорошо перезагрузке, затем удаляет файл. Легкий для Вас для управления, потому что просто необходимо коснуться их для установки флага хорошо. Безопасный, потому что Вы никогда не должны передавать ни одну ту информацию непосредственно к файловой системе.

Каждый сценарий на подузлах просто проверил бы имя хоста или что-то;

http://headnode/reboot?name=subnode1

Проверка каждые 5 минут или так не должна быть слишком налоговой.

1
ответ дан 08.12.2019, 07:36

Настройте SSH для использования основанной на сертификате аутентификации. Затем используйте команду как это:

$ for h in node1 node2 node3 node4 node5 headnode; do
>   ssh root@$h reboot
>   done
1
ответ дан 08.12.2019, 07:36

Я предложил бы настроить управление по дополнительному каналу для кластера. Таким образом, можно достигнуть консоли, даже если поле падает с сети, и удаленно перезагрузка машин является снимком. Необходимо будет потратить деньги для покупки или специализированного поля с дополнительными последовательными портами и самокруткой, или цель создала концентратор последовательного порта. Это, очевидно, не самое дешевое решение, но оно сделает удаленное управление вполне немного легче.

1
ответ дан 08.12.2019, 07:36

Используйте ssh пары ключей, таким образом, Вы не должны вводить пароль так много раз.

0
ответ дан 08.12.2019, 07:36

Не разрешение для этой проблемы, но Скалы является кластерным "дистрибутивом", основывался на CentOS, который имеет ssh ключи и отслеживает то, сколько узлов Вы имеете. Вы просто работаете rocks run host reboot перезагружать все Ваши узлы. Скалы имеют все, в чем Вы нуждаетесь для абсолютного кластера HPC, и я лично попробовал его на кластере с более чем 1 200 узлами.

0
ответ дан 08.12.2019, 07:36

Теги

Похожие вопросы