Astra linux common edition postgresql

Кластерная служба postgresql для кластера pacemaker

Данная статья является частью статьи: Развертывание двухузлового кластера pacemaker и применима в рамках указанной статьи.

Данная статья применима начиная с:

  • Astra Linux Special Edition РУСБ.10015-01 и РУСБ.10015-10 (очередное обновление 1.7) с установленным обновлением БЮЛЛЕТЕНЬ № 2022-1110SE17 (оперативное обновление 1.7.3)
  • Astra Linux Special Edition РУСБ.10015-17
  • Astra Linux Special Edition РУСБ.10015-37 (очередное обновление 7.7) с установленным обновлением БЮЛЛЕТЕНЬ № 2022-1110SE17 (оперативное обновление 1.7.3)
  • Astra Linux Special Edition РУСБ.10152-02 (очередное обновление 4.7) с установленным обновлением БЮЛЛЕТЕНЬ № 2022-1121SE47 (оперативное обновление 4.7.3)
  • Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.6)

При работе с защищенной СУБД postgresql с использованием МРД (см. Уровень конфиденциальности, категории конфиденциальности и целостность: что есть что, и как с этим работать?) рекомендуется использовать специальный агент ocf:astra:pgsql. Этот агент доступен в составе :

  • Astra Linux Special Edition x.7 и Astra Linux Special Edition РУСБ.10015-17 начиная с обновлений БЮЛЛЕТЕНЬ № 2022-1110SE17 (оперативное обновление 1.7.3) и БЮЛЛЕТЕНЬ № 2022-1121SE47 (оперативное обновление 4.7.3);
  • Astra Linux Special Edition РУСБ.10015-17;
  • Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.6) начиная с установленным обновлением БЮЛЛЕТЕНЬ № 20221220SE16 (оперативное обновление 12).

Для работы без использования МРД и для работы в более ранних обновлениях Astra Linux соедует использовать обычный для Linux агент ocf:heartbeat:pgsql.

Введение

Предполагается, что дальнейшие действия выполняются на ранее подготовленном кластере pacemaker. См. статью Развертывание двухузлового кластера pacemaker.
В рамках подготовки кластера созданы два узла кластера с адресами 192.168.23.101/32 и 192.168.23.102/32, а сам кластер имеет адрес 192.168.23.100.
Далее в созданном кластере pacemaker создается отказоустойчивая кластерная служба СУБД PostgreSQL с репликацией данных между узлами. В процессе настройки один из узлов назначается ведущим (master), второй (остальные) — подчиненным (slave). При отказе ведущего узла подчиненный узел автоматически становится ведущим.
Настройка и тестирование аутентификации пользователей и работы МРД в данной статье не рассматривается и не тестируется. См.:

Читайте также:  Служба adl astra linux

Установка пакетов

Установить метапакет postgresql:

  1. В Astra Linux Special Edition x.7 будет установлена защищенная СУБД PostgreSQL версии 11.
  2. В Astra Linux Special Edition, выпущенных до обновления x.7, будет установлена защищенная СУБД PostgreSQL версии 9.6.
  3. В Astra Linux Common Edition будет установлена СУБД PostgreSQL версии 9.6 без встроенной защиты.

При установке СУБД будет создан кластер СУБД (не путать с кластером pacemaker) с именем main.

Настройка СУБД postgresql

Для настройки работы СУБД postgesql проверить указанные ниже параметры и привести их к указанным значениям (добавить в случае отсутствия):

    В конфигурационном файле СУБД /etc/postgresql///postgresql.conf:

listen_addresses = '*' wal_level = replica wal_keep_segments = 32
host replication postgres 192.168.23.101/32 trust host replication postgres 192.168.23.102/32 trust

где 192.168.23.101/32 и 192.168.23.102/32 — IP-адреса узлов ранее подготовленного кластера pacemaker.

Далее предполагается, что узел 192.168.23.101/32 назначается ведущим (master), а узел 192.168.23.102/32 — ведомым (slave).

Синхронизация узлов кластерной службы postgresql

Выполнить синхронизацию данных между узлами кластерной службы postgresql, для чего на подчиненном узле (на всех подчиненных узлах):

    Действуя от имени пользователя postgres удалить содержимое кластера СУБД:

Создание кластерного ресурса

  1. Добавить кластерную службу СУБД как ресурс с именем pgsql. Для этого на ведущем узле:
    1. Выполнить команду создания ресурса (в качестве номера версии использовать значения 9.6 или 11 в соответствии с используемой версией PostgreSQL). Имя создаваемого ресурса — pgsql. Команды:
      1. В случаях, если требуется (или, возможно, потребуется в будущем) работа с поддержкой МРД:

      sudo pcs resource create pgsql ocf:astra:pgsql \
      pgversion=»» \
      rep_mode=»sync» \
      master_ip=»192.168.23.100″ \
      node_list=»pcmk-1 pcmk-2″

      • pgsql — имя (идентификатор) создаваемого виртуального ресурса;
      • ocf:astra:pgsql — название предопределенного набора параметров ресурса (агент).

      sudo pcs resource create pgsql ocf:heartbeat:pgsql \
      pgctl=»/usr/lib/postgresql//bin/pg_ctl» \
      pgdata=»/var/lib/postgresql//main» \
      config=»/etc/postgresql//main/postgresql.conf» \
      socketdir=»/var/run/postgresql/» \
      op monitor interval=1min \
      rep_mode=»sync» \
      master_ip=»192.168.23.100″ \
      node_list=»pcmk-1 pcmk-2″

      sudo pcs resource promotable pgsql promoted-max=1 promoted-node-max=1 clone-max=2 clone-node-max=1 notify=true

      sudo pcs resource master mspgsql pgsql master-max=1 master-node-max=1 clone-max=2 clone-node-max=1 notify=true

      • mspgsql — имя мастер-ресурса, предоставляющего доступ к активному ведущему серверу;
      • pgsql — ранее созданный ресурс СУБД.
      Cluster name: astracluster Stack: corosync Current DC: pcmk-1 (version 2.0.1-9e909a5bdd) - partition with quorum Last updated: Sat Mar 11 18:40:21 2023 Last change: Sat Mar 11 18:39:28 2023 by root via crm_attribute on pcmk-1 2 nodes configured 3 resources configured Online: [ pcmk-1 pcmk-2 ] Full list of resources: ClusterIP (ocf::heartbeat:IPaddr2): Started pcmk-1 Clone Set: pgsql-clone [pgsql] (promotable) Masters: [ pcmk-1 ] Slaves: [ pcmk-2 ] Daemon Status: corosync: active/disabled pacemaker: active/disabled pcsd: active/enabled

      Тестирование

      Тестирование должно продемонстрировать отказоустойчивость созданного кластера. Настройка и тестирование аутентификации пользователей и работы МРД в данной статье не рассматривается и не тестируется.

      Тестирование репликации

      Тестирование отказоустойчивости

      В выводе команды должно быть указано, что узел выводится из эксплуатации (demoting). Пример вывода команды:

      Cluster name: astracluster Stack: corosync Current DC: pcmk-1 (version 2.0.1-9e909a5bdd) - partition with quorum Last updated: Sun Mar 12 15:17:55 2023 Last change: Sun Mar 12 15:12:38 2023 by root via crm_attribute on pcmk-1 2 nodes configured 3 resources configured Online: [ pcmk-1 pcmk-2 ] Full list of resources: ClusterIP (ocf::heartbeat:IPaddr2): Started pcmk-2 Clone Set: pgsql-clone [pgsql] (promotable) pgsql (ocf::astra:pgsql): Demoting pcmk-1 Slaves: [ pcmk-2 ] Daemon Status: corosync: active/disabled pacemaker: active/disabled pcsd: active/enabled
      Online: [ pcmk-1 pcmk-2 ] Full list of resources: ClusterIP (ocf::heartbeat:IPaddr2): Started pcmk-2 Clone Set: pgsql-clone [pgsql] (promotable) Masters: [ pcmk-2 ] Stopped: [ pcmk-1 ] Daemon Status: corosync: active/disabled pacemaker: active/disabled pcsd: active/enabled

      Восстановление сбойного узла

      Для восстановления сбойного узла выполнить на этом узле следующие действия:

      1. Выполнить синхронизацию данных с действующим ведущим сервером. См. Синхронизация узлов кластерной службы postgresql.
      2. Удалить файл /var/lib/pgsql/tmp/PGSQL.lock:

      После перезапуска сбойного узла мастер-сервером останется работавший узел, а перезапущенный узел получит статус подчиненного:

      Cluster name: astracluster Stack: corosync Current DC: pcmk-2 (version 2.0.1-9e909a5bdd) - partition with quorum Last updated: Tue Apr 11 14:13:34 2023 Last change: Tue Apr 11 14:05:24 2023 by root via crm_attribute on pcmk-2 2 nodes configured 3 resources configured Online: [ pcmk-1 pcmk-2 ] Full list of resources: ClusterIP (ocf::heartbeat:IPaddr2): Started pcmk-2 Clone Set: pgsql-clone [pgsql] (promotable) Masters: [ pcmk-2 ] Slaves: [ pcmk-1 ] Daemon Status: corosync: active/disabled pacemaker: active/disabled pcsd: active/enabled

      Источник

      Установка на Astra Linux

      Из под учетной записи суперпользователя сервера postgresql, необходимо создать пользователя БД:

      postgres=# CREATE ROLE xm_user NOINHERIT NOREPLICATION LOGIN PASSWORD »xm_user_pass’;

      xm_user — имя пользователя,

      Создание базы данных на сервере postgresql

      postgres=# CREATE DATABASE database_name

      database_name — имя базы,

      xm_user — пользователь из пункта 1

      Изменения в файлах с версией ядра

      1. Архивы VER1 и VER2 по умолчанию содержат схему sys_cubs. Необходимо разархивировать архивы и в файлах \DB_PG\script.sql заменить sys_cubs на имя схемы БД по умолчанию.
      2. Архивы VER1 и VER4 по умолчанию содержат имя пользователя dev_user. Необходимо разархивировать архивы и в файлах \DB_PG\script.sql заменить dev_user на имя созданного пользователя БД.
      3. Заархивировать версию с изменениями.

      УСТАНОВКА ЯДРА

      Файл bases.xml должен лежать рядом с папкой lib и Installer2##2.8.64

      Содержимое файла bases.xml:

      user — имя пользователя для подключения к БД;

      password — пароль для подключения к БД;

      database_name — имя БД;

      host — ip адрес хоста БД;

      scheme_name — имя схемы БД.

      Параметр baseType не менять! 

      1) С любого компьютера с ОС Windows, у которого есть доступ к БД и установлена Oracle Java Runtime Environment 8 (JRE 8), выполнить.

      2) Installer2##2.8.64 двойным кликом, выбрать подключение к БД, нажать «Далее».

      3) Поставить галочку на «Единичная версия», выбрать файл с версией VER1.zip, нажать «Далее».

      4) Проставить галочку «Я ознакомлен с изменениями в версии». Нажать «Установить».

      5) Установка завершена. Нажать «Далее» для просмотра логов и «Закрыть» для выхода.

      6) Установить остальные файлы с архивами версий (VER2.zip, VER3.zip, VER4.zip, VER5.zip).

      УСТАНОВКА И НАСТРОЙКА СЕРВЕРА ПРИЛОЖЕНИЙ

      Установка сервера приложений ApacheTomee

      На каждом сервере приложений устанавливается идентичным образом.

      Установка ApacheTomEE

      Скачать apache-tomee-8.0.6-plus.tar.gz и распаковать архив:

      xmapp*# tar zxvf apache-tomee-8.0.6-plus.tar.gz

      Перенести распакованное дерево папок на постоянное место:

      xmapp*# mv apache-tomee-8.0.6-plus.tar.gz /opt/tomee

      Создать учетную запись пользователя, под которым будет исполняться сервер приложений:

      xmapp*# useradd -r tomee --shell /bin/false

      Передать её права на дерево папок:

      xmapp*# chown -R tomee:tomee /opt/tomee/

      Настройка Apache Tomee в качестве системного сервиса

      Создать файл /etc/systemd/system/tomee.service следующего содержания:

      # Systemd unit file for default tomee

      # To create clones of this service:

      # DO NOTHING, use tomee@.service instead.

      Environment=’CATALINA_OPTS=-Xms4096M –Xmx8192M -server -XX:+UseParallelGC’

      После сохранения файла, обновить статус системных служб:

      xmapp*# systemctl daemon-reload

      Открыть порты в файерволе:

      xmapp*# iptables -A INPUT -p tcp -m state —state NEW -m tcp —dport 8080 -j ACCEPT

      В файле \opt\tomee\conf\tomcat-users.xml добавить логин для доступа к менеджеру веб-сервера:

      xmapp*# systemctl start tomee

      xmapp*# systemctl enable tomee

      xmapp*# systemctl status tomee

      Вывод команды должен показать состояние сервиса «Active» и отсутствие ошибок.

      Проверить работу ApacheTomee в браузере вызвав соответствующий адрес http://server-ip-address:8080/ , где server-ip-address — адрес сервера

      Сопряжение БД и сервера приложений

      На каждом сервере приложений, в конфигурационный файл Tomee /opt/tomee/conf/server.xml добавить ресурс в GlobalNamingResources:

      где: server-ip-address ip адрес сервера, port порт базы database_name имя базы, xm_user пользователь из пункта 1

      В конфигурационный файл Tomee /conf/context.xml добавить в контекст:

      Для доступа к manager, в файлe

      Tomee /webapps/manager/META-INF/context.xml закомментировать строку:

      Удалить из install/tomee/lib файл ejb-core-1.0.jar

      Скопировать из дистрибутива библиотеки:

      Источник

Оцените статью
Adblock
detector