|
Pacemaker беспрерывно перезагружает ресурс
|
|||
---|---|---|---|
#18+
Дано: RHEL 7.3 двухузловой failover кластер на базе pacemaker: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
Здесь my_script.sh - мой самописный скрипт для запуска/остановки и контроля приложения. Параметры start/stop/monitor. Проверял логику его работы по алгоритму из доки по RHEL Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45.
Скрипт возвращает правильные значения (0 или 1) в зависимости от состояния приложения. При этом, вижу (из лога скрипта), что pacemaker беспрерывно посылает по очереди команды start и stop этому моему скрипту. Есть соображения куда копать? Может кто сталкивался с этим? Отдельный вопрос: какие есть особенности по вталкиванию lsb-скрипта в кластер? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2017, 15:39 |
|
Pacemaker беспрерывно перезагружает ресурс
|
|||
---|---|---|---|
#18+
почему вы тестируете сервис script_name >service script_name status а ресурс называется my_script.sh ? И он вообще сервисом сделан или нет? >My_Application (lsb:my_script.sh) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2017, 16:32 |
|
Pacemaker беспрерывно перезагружает ресурс
|
|||
---|---|---|---|
#18+
авторпочему вы тестируете сервис script_name >service script_name status Это пример из документации RHEL - я приложил его, чтобы показать логику, которую я проверял для своего скрипта. Конечно, при тестировании я использовал имя своего скрипта. Сам скрипт расположен в /etc/init.d Также он добавлен в кластер командой: Код: plaintext 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2017, 08:23 |
|
Pacemaker беспрерывно перезагружает ресурс
|
|||
---|---|---|---|
#18+
Раскопал проблему: При чтении документации по добавлению ресурса в кластер увидел вот что: Configuring the Red Hat High Availability Add-On with PacemakerFor example, the following command creates a resource with the name VirtualIP of standard ocf, provider heartbeat, and type IPaddr2. The floating address of this resource is 192.168.0.120, the system will check whether the resource is running every 30 seconds. Код: plaintext 1.
Потом вот такой пример: Configuring the Red Hat High Availability Add-On with PacemakerIn the following example, there is an existing resource named dummy_resource. This command sets the failure-timeout meta option to 20 seconds, so that the resource can attempt to restart on the same node in 20 seconds. Код: plaintext 1.
After executing this command, you can display the values for the resource to verity that failure-timeout=20s is set. Код: c# 1. 2. 3. 4. 5. 6.
Из чего сделал вывод, что кластер управляет скриптом посредством команд "start/stop/monitor" и тут же исправил в своем скрипте "status" на "monitor". Затем в логах corosync наблюдал следующее (выдержки без лишнего трафика): corosync.logInitiating monitor operation My_application_monitor_0 locally on Node2 Result of monitor operation for My_application on Node2: 7 (not running) Initiating start operation My_application_start_0 locally on Node2 Result of start operation for My_application on Node2: 0 (ok) Initiating monitor operation My_application_monitor_30000 locally on Node2 Result of monitor operation for My_application on Node2: 7 (not running) Initiating stop operation My_application_stop_0 locally on Node2 | action 2 Result of stop operation for My_application on Node2: 0 (ok) Ну и так далее по кругу. Было очевидно, что monitor возвращает неверный ответ, хотя вручную все работает на урра. В общем, было принято стратегическое решение "вернуть взад" параметр status вместо monitor и все завелось. С одной стороны, я, конечно, сам дурак - в спецификации lsb нет никакого monitor. Но вот pacemaker тоже порадовал - и в параметрах команда status обозвана monitor и в логах corosync. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2017, 11:39 |
|
Pacemaker беспрерывно перезагружает ресурс
|
|||
---|---|---|---|
#18+
Дальнейший анализ показал следующее: Я использовал LSB-стандарт для написания скрипта, в то время как для Pacemaker приоритетным является более современный - OCF-стандарт, в котором как раз "status" изменен на "monitor". Теперь все более-менее понятно, но... осадок остался ))) ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2017, 12:26 |
|
|
start [/forum/topic.php?fid=25&msg=39472465&tid=1481534]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
29ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
others: | 268ms |
total: | 383ms |
0 / 0 |