LINUX.ORG.RU
решено ФорумAdmin

кластер на pacemaker для программы с самописным systemd-скриптом.

 , ,


0

2

Алоха.
Есть программа которая стартуется и останавливается через systemctl (самописные скрипты)
Нужно настроить отказоустойчивость.
вопрос:
при создании ресурса для pcs, надо указать агента. какой агент должен быть прописан для самописной программы ?
pcs resourse create myprog systemd:heartbeat:_chtozdespisat_
в списке (pcs resource agents systemd:heartbeat) ничего подходящего не нашел.
может без агента ?

★★★★★
[root@node1 opt]# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 7.1 (Maipo)
[root@node1 opt]# pcs --version
0.9.137

vse agenti:

[root@node1 opt]# pcs resource agents systemd:heartbeat
network
netconsole
rhnsd
dracut-shutdown
alsa-store
getty@tty1
systemd-reboot
gdm
plymouth-quit
systemd-user-sessions
dbus
emergency
iscsi
dmraid-activation
lvm2-monitor
multipathd
kmod-static-nodes
systemd-binfmt
systemd-journal-flush
systemd-journald
systemd-modules-load
systemd-random-seed
systemd-sysctl
systemd-tmpfiles-setup-dev
systemd-tmpfiles-setup
systemd-udev-trigger
systemd-udevd
systemd-update-utmp
systemd-vconsole-setup
plymouth-read-write
plymouth-start
systemd-ask-password-plymouth
systemd-readahead-collect
systemd-readahead-replay
systemd-readahead-done
accounts-daemon
rtkit-daemon
rescue
abrtd
abrt-oops
crond
abrt-ccpp
abrt-xorg
mdmonitor
kdump
abrt-vmcore
libstoragemgmt
libvirtd
NetworkManager
auditd
hypervvssd
hypervkvpd
vmtoolsd
ksm
ksmtuned
chronyd
rhsmcertd
rsyslog
ModemManager
sysstat
avahi-daemon
postfix
irqbalance
sshd
smartd
rngd
tuned
atd
systemd-logind
plymouth-quit-wait
rc-local
brandbot
systemd-ask-password-wall
cpupower
sshd-keygen
sendmail
exim
cups
ntpdate
sntp
ntpd
libvirt-guests
iscsid
apparmor
iscsiuio
NetworkManager-wait-online
livesys
systemd-remount-fs
systemd-fsck-root
syslog
systemd-ask-password-console
lvm2-activation-early
lvm2-lvmetad
lvm2-activation
dm-event
systemd-udev-settle
iscsi-shutdown
rhel-import-state
rhel-readonly
systemd-random-seed-load
systemd-shutdownd
systemd-initctl
rpcbind
firewalld
microcode
rhel-autorelabel-mark
rhel-autorelabel
rhel-configure
rhel-dmesg
rhel-loadmodules
alsa-restore
alsa-state
iptables
ip6tables
ebtables
systemd-tmpfiles-clean
systemd-update-utmp-runlevel
lvm2-pvscan@8:3
lvm2-pvscan@8:17
lvm2-pvscan@8:33
polkit
upower
colord
fprintd
bluetooth
udisks2
pcsd
corosync
pacemaker

dada ★★★★★
() автор топика
Ответ на: комментарий от Deleted

т.е. агент обязательно нужен ?
иногда, в документации, при создании ресурса вообще не указывают ни стандартов, ни провайдеров, ни агентов.

dada ★★★★★
() автор топика
Последнее исправление: dada (всего исправлений: 1)
Ответ на: комментарий от dada

Насколько я знаю да, т.к. агент содержит описание как останавливать и поднимать нужный сервис, и как мигрировать, если возможно.

По ссылке вроде везде указан тип агента, просто без ocf:heartbeat, это что-то типа дефолтного набора.

Deleted
()
Ответ на: комментарий от Deleted

так, если сделать
systemctl enable proga.service
а потом посмотреть в
pcs resource agents systemd:heartbeat
можно увидеть proga.service.
но я по прежнему не могу добавить его как ресурс =(

dada ★★★★★
() автор топика
Ответ на: комментарий от Deleted

в тот раз у меня ничего не заработало =(

dada ★★★★★
() автор топика
Ответ на: комментарий от Deleted

вот тут, гагаш добавляет haproxy как ресурс.
у него все вроде бы проходит без проблем.
хотя агента на haproxy тоже нет.

dada ★★★★★
() автор топика

первое - без агента нельзя.

второе - пишешь все кристально прозрачно.

pcs resource create MyProg systemd:unitname

unitname - имя твоего юнита, который должен быть виден для systemd. Например можешь положить его в /usr/lib/systemd/system если он системный. Потом не забудь обновить список юнитов перед созданием ресурса. Также иногда pcmk тупит и не хочет видет свежий юнит. В этом случае проверь что systemd его видит и заставь pcmk создать ресурс опцией force.

и еще - при автостарте сервиса pcmk может знатно тупить, так что автостарт лучше вырубить. не, оно и так работает, я проверял, но тупит особенно в случае авторестарта упавшего сервиса

upcFrost ★★★★★
()
Последнее исправление: upcFrost (всего исправлений: 1)
Ответ на: комментарий от dada

хотя агента на haproxy тоже нет.

агент есть, но не в стандартной поставке, и довольно глюкавый

upcFrost ★★★★★
()
Ответ на: комментарий от dada

Попробуй systemctl daemon-reload сделать. А потом как upcFrost писал сделать.

Deleted
()
Последнее исправление: MyLittleLoli (всего исправлений: 1)
Ответ на: комментарий от upcFrost

сейчас у меня systemctl status unitname.service показывает что прога не раннинг и дизейблд.
выполняю pcs resource agents и в списке нет unitname.
странность в том, что наличие его в списке юнитов зависит от enable он или disable.
Оставляю его на enable. (вижу его в списке агентов)
выполняю:

# pcs resource create name systemd:unitname
Error: Unable to create resource 'systemd:unitname', it is not installed on this system (use --force to override)

dada ★★★★★
() автор топика
Ответ на: комментарий от dada

А сам юнит в /etc/systemd/system лежит? Может попробовать сделать симлинк в /usr/lib/systemd/system/ или скопировать его туда и systemctl daemon-reload сделать.

Deleted
()
Ответ на: комментарий от Deleted

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

dada ★★★★★
() автор топика
Ответ на: комментарий от Deleted

ошибка, которая высвечивается, не похоже что она из-за enabled service.

dada ★★★★★
() автор топика
Ответ на: комментарий от Deleted

так, скопировал.
сейчас видит его как агент.
При добавлении опять выходит Error: Unable to create resource 'systemd:unitname', it is not installed on this system (use --force to override)

dada ★★★★★
() автор топика
Ответ на: комментарий от dada

Скопировал на всех нодах?

p.s. А что за дистрибутив и версия pacemaker'а? Сейчас нет ни одного кластера под рукой, но могу на выходных собрать, потестить. Ну и сам юнит, если можно покажи.

Deleted
()
Ответ на: комментарий от dada

Error: Unable to create resource 'systemd:unitname', it is not installed on this system (use --force to override)

если можешь перезагрузить pcmk (а лучше всю систему) - перезагрузи. если нет - попробуй юзать force как он пишет. у меня в 50% случаев pcmk оттупляет и не хочет видеть новый сервис, но если его заставить то он его резко находит. главное чтоб систумд его видела и могла с ним работать

upcFrost ★★★★★
()
Ответ на: комментарий от Deleted

так, выполнил с --force и процесс пошёл.

dada ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.