Astra 1.4, heartbeat, postgresql 9.3, maclabel

vit

New member
Сообщения
1
#1
Доброго времени суток!

Столкнулся со следующей проблемой:
При создании heartbeat кластера и запуска из под него postgres, последний не принимает соединения от метки выше 0.
При этом если стопануть postgres в кластере и запустить его вручную через /etc/init.d/postgresql, все работает прекрасно.
Запуск postgres в кластере происходит с помощью следующего примитива:
Код:
primitive pr-postgresql ocf:heartbeat:pgsql \
        params pgctl="/usr/lib/postgresql/9.3/bin/pg_ctl" psql="/usr/lib/postgresql/9.3/bin/psql" pgdata="/drbd/postgresql/9.3/main" config="/drbd/postgresql/9.3/main/postgresql.conf" pgdba="postgres" monitor_user="postgres" monitor_password="postgres" logfile="/var/log/postgresql/postgresql-9.3-main.log" \
        op monitor interval="30s" timeout="120s" depth="0" \
        meta target-role="Started"
Помимо этого при запуске через кластер не создается /var/run/postgresql/.s.PGSQL.5432, хотя при запуске вручную через /etc/init.d/postgresql все в порядке.

Создается впечатление, что postgres как-то неверно стартует из кластера и не создается сокет для подключения с мандатными атрибутами.
Если кто-то сталкивался или видит ошибку, прошу откликнуться.
Заранее спасибо!
 

Wasp

New member
Сообщения
4
#2
Присоединяюсь к проблеме.
Постргес 9.6
pg_lsclusters выдает что кластер ПГ не запущен.
Пробовал и lsb скрипты, тоже самое.
В логи тоже ничего не пишется.
 

Wasp

New member
Сообщения
4
#3
Разобрался. Дело в Systemd. Это известный баг Debian 9 и Systemd.
Скрипт запуска постгре лежит в systemd, поэтому необходимо использовать скрипт запуска из systemd: postgresql@9.6-main.service
Привычный скрипт из init.d не сработает!
 

Olej

New member
Сообщения
684
#4
Дело в Systemd. Это известный баг Debian 9 и Systemd.
Скрипт запуска постгре лежит в systemd, поэтому необходимо использовать скрипт запуска из systemd: postgresql@9.6-main.service
Привычный скрипт из init.d не сработает!
Это не баг - это нормальное состояние дел во всех Linux под управлением systemd, используйте systemctl - будет вам счастье.
P.S. Причём systemctl будет вам единообразно (вы и не заметите ;)) управлять сервисами как systend, так и sysV ... см. сюда ;):
Код:
olej@ACER:~/2019_WORK/own.WORK/WaterBiz$
olej@ACER:/etc/init.d$ systemctl status alsa-utils
● alsa-utils.service
   Loaded: masked (Reason: Unit alsa-utils.service is masked.)
   Active: inactive (dead)
Вот здесь вот: systemd для администраторов - лежит свежий перевод лучшего из существующих в природе руководств по использованию systemd, от его автора
28 октября 2017 г.
129 сир.
Всем будет полезно.
 
Последнее редактирование:

Wasp

New member
Сообщения
4
#5
Это не баг - это нормальное состояние дел во всех Linux под управлением systemd, используйте systemctl - будет вам счастье.
P.S. Причём systemctl будет вам единообразно (вы и не заметите ;)) управлять сервисами как systend, так и sysV ... см. сюда ;):
Код:
olej@ACER:~/2019_WORK/own.WORK/WaterBiz$
olej@ACER:/etc/init.d$ systemctl status alsa-utils
● alsa-utils.service
   Loaded: masked (Reason: Unit alsa-utils.service is masked.)
   Active: inactive (dead)
Вот здесь вот: systemd для администраторов - лежит свежий перевод лучшего из существующих в природе руководств по использованию systemd, от его автора

Всем будет полезно.
!
Спасибо! Почитаю.
Дело в том, что я запускал ПГ всегда в том же Debian 9 из init.d.
Всё работало, кластеры ПГ поднимались сразу.
Если попытаться сделать тоже самое из Corosync- кластеры ПГ будут в оффлайне.
Ну и как это не ошибка? Делаю же тоже самое! Обоснуйте! :)
 

Olej

New member
Сообщения
684
#6
Обосновываю ;)
я запускал ПГ всегда в том же Debian 9 из init.d.
Всё работало, кластеры ПГ поднимались сразу.
Потому что неправильно запускали.
Сервисы из init.d - это классика UNIX 40-летней давности... добротно своё отслужившая...
Но запускать их непосредственно оттуда - неправильно ... так же, как и из /usr/lib/systemd/system/
Уже давненько для управления сервисами есть команды:
Код:
olej@astra:/usr/share/X11/xorg.conf.d$ /usr/sbin/service
Usage: service < option > | --status-all | [ service_name [ command | --full-restart ] ]
А ещё лучше:
Код:
olej@astra:/usr/share/X11/xorg.conf.d$ systemctl --version
systemd 232
+PAM +AUDIT +SELINUX +IMA +APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 +SECCOMP +BLKID +ELFUTILS +KMO
D +IDN
И со времён systemd (~2012г.) ни один разработчик сервисов/служб/серверов не обязан чтобы его продукт запускался какими-либо непосредственно скриптами (и даже техника написания демонов несколько изменилась ... в показанном руководстве о всём этом есть).

P.S. И эти команды управляют сервисами не зависимо от того, сервис записан в /etc/init.d (в старом стиле sysVinit - инсталляции старых пакетов) или в /usr/lib/systemd/system (в стиле systemd).
 
Последнее редактирование:

Olej

New member
Сообщения
684
#7
Вот здесь вот: systemd для администраторов - лежит свежий перевод лучшего из существующих в природе руководств по использованию systemd, от его автора
Точнее ... я неправильно высказался...
Это - лучшее руководство в мире по systemd. Более того, переводчик Сергей Пташник собирает статьи Lennart Poettering (автор ystemd) + объединяет их в единый цельный текст, и проделывает это, как минимум, с 2014г. (я слежу за этой публикацией с этого года), а статьи вошли в материал даже с 2010г.
Т.е. даже в англоязычных оригиналах нет такого полного руководства ... потому что Ленарту Поттерингу всегда некогда ;) - он пишет массово только разрозненные статьи и заметки у себя в блоге, которые последующие отменяют предыдущие и т.д.

P.S. Так что я советовал бы всем сохранить этот PDF, на случай если он исчезнет из онлайн... Там великое множество интересного и того, что вы нигде в других местах не прочитаете, а systemd - это на сегодня один из краеугольных камней администрирования Linux.
 
Последнее редактирование:

Wasp

New member
Сообщения
4
#8
Точнее ... я неправильно высказался...
Это - лучшее руководство в мире по systemd. Более того, переводчик Сергей Пташник собирает статьи Lennart Poettering (автор ystemd) + объединяет их в единый цельный текст, и проделывает это, как минимум, с 2014г. (я слежу за этой публикацией с этого года), а статьи вошли в материал даже с 2010г.
Т.е. даже в англоязычных оригиналах нет такого полного руководства ... потому что Ленарту Поттерингу всегда некогда ;) - он пишет массово только разрозненные статьи и заметки у себя в блоге, которые последующие отменяют предыдущие и т.д.

P.S. Так что я советовал бы всем сохранить этот PDF, на случай если он исчезнет из онлайн... Там великое множество интересного и того, что вы нигде в других местах не прочитаете, а systemd - это на сегодня один из краеугольных камней администрирования Linux.
Спасибо, будем изучать.