PostgreSQL/Cluster: различия между версиями

Материал из ALT Linux Wiki
Нет описания правки
Нет описания правки
Строка 78: Строка 78:
==== Просмотр статуса участников кластера ====
==== Просмотр статуса участников кластера ====
<source lang="sh">corosync-cmapctl | grep members;</source>
<source lang="sh">corosync-cmapctl | grep members;</source>
== Настройка HA cluster PostgreSQL ==
=== Временное отключение кластеризации для начальной настройки ===
<source lang="sh">
pcs property set stonith-enabled=false;
pcs property set symmetric-cluster=false;
</source>
=== Инициализация базы данных ===
Работы '''только''' на <code>alt-node-1</code>
<source lang="sh">/etc/init.d/postgresql initdb;</source>
<source lang="sh">cat >> /var/lib/pgsql/data/postgresql.conf << EOF
listen_addresses = '*'
primary_conninfo = 'host=192.168.170.32 port=5432 user=repli application_name=altserver1'
wal_keep_size = 100
max_wal_senders = 10
EOF</source>
<source lang="sh">
cat >> /var/lib/pgsql/data/pg_hba.conf << EOF
host  replication  all $(hostname -s) reject
host  replication  all 127.0.0.0/8    reject
host  replication  all 0.0.0.0/0      trust
host  all          all 0.0.0.0/0      trust
EOF</source>
<source lang="sh">ip addr add 192.168.170.32/24 dev ens192</source>
<source lang="sh">systemctl start postgresql; sleep 5; systemctl status postgresql</source>
Создать учетную запись <code>hacluster</code> с паролем <code>hacluster</code> (для PostgreSQL)
<source lang="sh">
createuser -U postgres repli -P --replication
</source>
<source lang="sh">
cat > ~postgres/.pgpass << EOF
192.168.170.32:5432:replication:repli:hacluster
EOF</source>
<source lang="sh">
chown postgres: ~postgres/.pgpass && chmod 600 ~postgres/.pgpass
</source>

Версия от 15:46, 10 января 2023

Stub.png
Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.

Конфигурация стенда

alt-node-1 192.168.170.40/24
alt-node-2 192.168.170.41/24
alt-node-3 192.168.170.42/24
master 192.168.170.32/24

IP-адреса нод кластера; alt-node-1, alt-node-2, alt-node-3;

IP-адрес который назначается "мастер-ноде" кластера БД: master;

Дальнейшие операции должны быть выполнены для каждой ноды кластера.

cat >> /var/resolv/etc/hosts << EOF
192.168.170.40 alt-node-1
192.168.170.41 alt-node-2
192.168.170.42 alt-node-3
EOF

Важные требования (типичные фиксы)

1. Часы у нод кластера должны идти правильно и синхронно

Команда синхронизации часов:

ntpdate -s pool.ntp.org;

2. /etc/hosts должен быть hardlink`ом на /var/resolv/etc/hosts

Команда исправления:

rm /etc/hostsln && -v /var/resolv/etc/hosts /etc/hosts;

Установка пакетов базы данных

apt-get update && apt-get install postgresql13 postgresql13-server postgresql13-contrib;

Необходимое исправления для работоспособности PosgreSQL

usermod --home '/var/lib/pgsql' --shell '/bin/sh' postgres;

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

apt-get update && apt-get install pacemaker pcs fence-agents-virsh resource-agents-paf corosync resource-agents;

Примерная настройка кластера

Установка пароля для пользователя hacluster

passwd hacluster

Пароль: hacluster

Включение демона

systemcctl enable --now pcsd

Разрушить кластер

pcs cluster destroy --all;

Добавить сервисы кластера в автозапуск

systemctl enable --now corosync.service pacemaker.service

Сборка нод в кластер

Аутентификация на нодах кластера

pcs host auth -u hacluster alt-node-1 alt-node-2 alt-node-3;

пароль для пользователя hacluster, который использован ранее:hacluster

Сборка нод в кластер

pcs cluster setup \
    sng-cluster \
    alt-node-1 addr=$(grep alt-node-1 /etc/hosts | cut -d ' ' -f 1) \
    alt-node-2 addr=$(grep alt-node-2 /etc/hosts | cut -d ' ' -f 1) \
    alt-node-3 addr=$(grep alt-node-3 /etc/hosts | cut -d ' ' -f 1) \
    transport udpu;

Запуск кластера

pcs cluster start --all --wait=60;

Просмотр полного статуса кластера

pcs status --full;

Включить кластер

pcs cluster enable --all;

Просмотр статуса участников кластера

corosync-cmapctl | grep members;

Настройка HA cluster PostgreSQL

Временное отключение кластеризации для начальной настройки

pcs property set stonith-enabled=false;
pcs property set symmetric-cluster=false;

Инициализация базы данных

Работы только на alt-node-1

/etc/init.d/postgresql initdb;
cat >> /var/lib/pgsql/data/postgresql.conf << EOF
listen_addresses = '*'
primary_conninfo = 'host=192.168.170.32 port=5432 user=repli application_name=altserver1'
wal_keep_size = 100
max_wal_senders = 10
EOF
cat >> /var/lib/pgsql/data/pg_hba.conf << EOF
host   replication  all $(hostname -s) reject
host   replication  all 127.0.0.0/8    reject
host   replication  all 0.0.0.0/0      trust
host   all          all 0.0.0.0/0      trust
EOF
ip addr add 192.168.170.32/24 dev ens192
systemctl start postgresql; sleep 5; systemctl status postgresql

Создать учетную запись hacluster с паролем hacluster (для PostgreSQL)

createuser -U postgres repli -P --replication
cat > ~postgres/.pgpass << EOF
192.168.170.32:5432:replication:repli:hacluster
EOF
chown postgres: ~postgres/.pgpass && chmod 600 ~postgres/.pgpass