Подключение узлов хранения

Здесь описан вариант подключения узлов СХД вручную. Рекомендуемый способ — выполнение операции изменения дополнительных параметров кластера в веб-интерфейсе.

Для корректной работы резервного копирования с узлов хранения и диагностических отчётов выполните дополнительные настройки. Предполагается, что на момент выполнения этих настроек уже была выполнена корректная настройка системы хранения и узлов кластера МБД.П.

  1. Получите сведения для настройки узлов хранения.

    Получить сведения можно на любом узле кластера из файла /etc/fstab:

    cat /etc/fstab

    В выводе будут строки для монтирования каталога резервных копий по NFS, например:

    192.168.186.211:/mnt/nas/lundata /MBD_BACKUP/mount/data nfs rw,vers=3,proto=tcp,timeo=600,soft,rsize=65536,wsize=65536,namlen=255,nolock,retrans=2,sec=sys,_netdev 0 0
    
    192.168.186.211:/mnt/nas/lunwal /MBD_BACKUP/mount/wal nfs rw,vers=3,proto=tcp,timeo=600,soft,rsize=65536,wsize=65536,namlen=255,nolock,retrans=2,sec=sys,_netdev 0 0
    • 192.168.186.211 — VIP-адрес модуля хранения;

    • /mnt/nas/lundata — каталог данных на активном узле хранения;

    • /mnt/nas/lunwal — путь к каталогу архива WAL на активном узле хранения;

    • /MBD_BACKUP/mount/data — путь к точке монтирования каталога данных на узлах кластера.

    В дополнение к этим данным необходим путь к каталогу резервных копий, который можно получить из веб-интерфейса "Спектра".

    На странице ОБЪЕКТЫ УПРАВЛЕНИЯ  Сервисы СУБД найдите в списке все сервисы настраиваемого кластера и для каждого из них проверьте пути к каталогу резервных копий:

    • Нажмите на имя сервиса — откроется страница детализации сервиса.

    • Перейдите на вкладку Конфигурации  Конфигурация сервиса.

    • В параметре restore_command скопируйте путь к каталогу резервных копий, например:

    /MBD_BACKUP/spr-uv/pgbackup

    Для настройки сохраните уникальные пути к каталогу резервных копий.

  2. Проверьте версию pg_probackup — она должна совпадать с версией на узлах кластера:

    pg_probackup --version
  3. Проверьте uid gid пользователя pgbackup на каждом узле хранения:

    cat /etc/passwd | grep pgbackup

    В выводе будут строки:

    pgbackup:x:2000:2000::/home/pgbackup:/bin/bash

    Uid gid пользователя pgbackup должны совпадать с uid gid пользователя postgres на узле кластера — должен быть 2000.

  4. Проверьте, что на каждом узле хранения, в домашнем каталоге пользователя pgbackup, в файле .pgpass, для каждого узла кластера и сервиса СУБД присутствуют записи с паролем пользователя backup, а также указаны IP-адреса узлов и VIP мастера в сети interconnect:

    192.168.102.229:5432:*:backup:123
    192.168.102.228:5432:*:backup:123
    192.168.102.227:5432:*:backup:123
    192.168.102.34:5432:*:backup:123

    Пароль "123" указан в качестве примера. Формат файла описан в документации к PostgreSQL: www.postgresql.org/docs/current/libpq-pgpass.html.

    Пароль пользователя backup указан на узлах кластера, в файле .pgpass, в домашнем каталоге пользователя postgres (обычно это /var/lib/postgres/.pgpass). Права на чтение и запись этого файла должны быть только у владельца. Проверить можно с помощью команд:

    su - pgbackup
    ls -l ~/.pgpass

    Пример вывода:

    -rw------- 1 pgbackup pgbackup 18 авг 26 15:27 /home/pgbackup/.pgpass

    Если права отличаются от rw, измените их:

    chmod 600 ~/.pgpass
  5. Добавьте SSH-ключи пользователя spectrum на узлы хранения.

    Если на хосте "Спектра" для пользователя spectrum уже был сгенерирован SSH-ключ, используйте его. По умолчанию ключ хранится в домашней директории пользователя в файле home/spectrum/.ssh/id_rsa.pub.

    Если ключи отсутствуют, для их создания на хосте "Спектра" выполните следующие команды:

    su - spectrum -s /bin/bash
    ssh-keygen -t rsa

    По умолчанию ключи будут записаны в файлы home/spectrum/.ssh/id_rsa и home/spectrum/.ssh/id_rsa.pub.

    Если такие файлы уже существуют, введите иное имя (полный путь), чтобы не было замены ключей.

    Если файлов таких нет, на запрос пути нажмите клавишу Enter, и созданные ключи будут сохранены в файлы по умолчанию. А также на запрос парольной фразы поле оставьте пустым и нажмите клавишу Enter.

    Скопируйте содержимое файла публичного ключа (введенный_путь/введенное_имя.pub), открыв его в текстовом редакторе или запросив командой cat, например:

    ssh-rsa AAA..w== spectrum@ИМЯ_ВМ

    Скопированный ключ добавьте в файл авторизованных ключей на узле хранения, находящийся в домашней директории pgbackup по пути home/pgbackup/.ssh/authorized_keys. Чтобы перейти в домашнюю директорию пользователя pgbackup, используйте команду:

    su - pgbackup

    Чтобы снова выполнять команды из-под пользователя root, выйдите из-под пользователя spectrum, например, при помощи команды exit или комбинации клавиш ctrl+d.

  6. Добавьте в файл pg_hba.conf для каждого сервиса СУБД на узлах кластера следующие записи для пользователя backup:

    host replication backup samenet scram-sha-256
    host postgres backup samenet scram-sha-256

    Проверить наличие записей и добавить их при необходимости можно в веб-интерфейсе (Аутентификация PostgreSQL).

  7. Поместите публичный ключ пользователя pgbackup из узла хранения (/home/pgbackup/.ssh/id_rsa.pub) на все узлы кластера пользователю postgres (/var/lib/postgres/.ssh/authorized_keys).

  8. Заполните файл nodes_setup.yml (в папке inventory_samples дистрибутива "Спектра") — впишите путь (или пути) к каталогу резервных копий (см. п. 1)

    Путь к файлу nodes_setup.yml может быть иным.

  9. Запустить плейбуки из папки дистрибутива "Спектра":

    source /opt/skala-r/spectrum/python-modules/bin/activate
    ansible-playbook setup_storage_nodes.yml -i inventory_samples/nodes_setup.yml -k
    ansible-playbook setup_cluster_nodes.yml -i inventory_samples/nodes_setup.yml -k

    При запуске плейбуков необходимо ввести пароль пользователя root для доступа с использованием SSH на узлы хранения и узлы кластера. Пароль пользователя root может отличаться для узлов хранения и узлов кластера.

  10. Перейдите в веб-интерфейс "Спектра" и выполните операцию изменения дополнительных параметров кластера, добавив узлы СХД, которые были настроены вручную.