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

Материал из ALT Linux Wiki
(Новая страница: «== Конфигурация стенда == <source> alt-node-1 192.168.170.40/24 alt-node-2 192.168.170.41/24 alt-node-3 192.168.170.42/24 </source> <source> master 192.168.170.32/24 </source> IP-адреса нод кластера; alt-node-1, alt-node-2, alt-node-3; IP-адрес который назначается "мастер-ноде" кластера БД: master; Дальнейшие операции должны быть выполнены д...»)
 
Нет описания правки
Строка 9: Строка 9:
</source>
</source>


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


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


Дальнейшие операции должны быть выполнены для каждой ноды кластера.
Дальнейшие операции должны быть выполнены для каждой ноды кластера.
Строка 28: Строка 28:
Команда синхронизации часов:
Команда синхронизации часов:
<source lang="sh">
<source lang="sh">
ntpdate -s pool.ntp.org
ntpdate -s pool.ntp.org;
</source>
</source>


Строка 35: Строка 35:
Команда исправления:
Команда исправления:
<source lang="sh">
<source lang="sh">
rm /etc/hostsln && -v /var/resolv/etc/hosts /etc/hosts
rm /etc/hostsln && -v /var/resolv/etc/hosts /etc/hosts;
</source>
</source>
== Установка пакетов базы данных ==
== Установка пакетов базы данных ==
<source lang="sh">apt-get update && apt-get install postgresql13 postgresql13-server postgresql13-contrib</source>
<source lang="sh">apt-get update && apt-get install postgresql13 postgresql13-server postgresql13-contrib;</source>
 
== Необходимое исправления для работоспособности PosgreSQL ==
<source lang="sh">usermod --home '/var/lib/pgsql' --shell '/bin/sh' postgres;</source>
 
== Установка пакетов кластера ==
<source lang="sh">apt-get update && apt-get install pacemaker pcs fence-agents-virsh resource-agents-paf corosync resource-agents;</source>
== Примерная настройка кластера ==
=== Установка пароля для пользователя hacluster ===
<source lang="sh">passwd hacluster</source>
Пароль: <code>hacluster</code>
=== Включение демона ===
<source lang="sh">systemcctl enable --now pcsd</source>
=== Разрушить кластер ===
<source lang="sh">pcs cluster destroy --all;</source>
=== Добавить сервисы кластера в автозапуск ===
<source lang="">systemctl enable --now corosync.service pacemaker.service</source>
=== Сборка нод в кластер ===
==== Аутентификация на нодах кластера ====
<source lang="sh">pcs host auth -u hacluster alt-node-1 alt-node-2 alt-node-3;</source>
 
пароль для пользователя <code>hacluster</code>,  который использован ранее:<code>hacluster</code>
==== Сборка нод в кластер ====
<source lang="sh">
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;
</source>
==== Запуск кластера ====
<source lang="sh">pcs cluster start --all --wait=60;</source>
==== Просмотр полного статуса кластера ====
<source lang="sh">pcs status --full;</source>
==== Включить кластер ====
<source lang="sh">pcs cluster enable --all;</source>
==== Просмотр статуса участников кластера ====
<source lang="sh">corosync-cmapctl | grep members;</source>

Версия от 12:19, 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;