PostgreSQL/Cluster: различия между версиями
Нет описания правки |
Нет описания правки |
||
Строка 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
Конфигурация стенда
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