27.2. Подготовка BiHA-кластера #
- 27.2.1. Предварительные требования и особенности
- 27.2.2. Настройка аутентификации пользователей
- 27.2.3. Подготовка BiHA-кластера с нуля
- 27.2.4. Подготовка BiHA-кластера из существующего кластера с потоковой репликацией
- 27.2.5. Подготовка BiHA-кластера из существующего сервера баз данных
- 27.2.6. Подготовка узла-рефери в BiHA-кластере
- 27.2.7. Подготовка BiHA-кластера с proxima
- 27.2.8. Подготовка геораспределённого и катастрофоустойчивого кластера BiHA (GDBiHA)
- 27.2.9. Настройка SSL для служебных подключений (необязательно)
- 27.2.10. Использование «магической» строки (необязательно)
- 27.2.2. Настройка аутентификации пользователей
Подготовка BiHA-кластера выполняется при помощи утилиты bihactl. Есть несколько сценариев использования утилиты:
Прежде чем начать подготовку BiHA-кластера, внимательно изучите Предварительные требования и особенности.
27.2.1. Предварительные требования и особенности #
Прежде чем начать подготовку BiHA-кластера, прочитайте следующую информацию и выполните необходимые действия:
Обеспечьте сетевую связность между всеми узлами вашего будущего BiHA-кластера.
Если необходима изоляция сети, при которой управляющий канал и передача WAL работают в одной сети, а клиентские сеансы с базой данных — в другой, настройте BiHA-кластер следующим образом:
Используйте имена хостов, которые разрешаются в IP-адреса сети для управляющего канала и WAL.
Добавьте IP-адрес для клиентских соединений в параметр конфигурации
listen_addresses.
BiHA создаёт ряд вспомогательных файлов и устанавливает некоторые параметры Postgres Pro, чтобы обеспечить корректную работу. За подробной информацией обратитесь к Конфигурация Postgres Pro.
Чтобы избежать проблем с
biha-background-worker, связанных с настройкой времени на узлах кластера, настройте синхронизацию времени на всех узлах.Не рекомендуется выполнять команды bihactl в каталоге
PGDATA. Утилитаbihactlможет создавать файлыbiha_init.logиbiha_add.logв том каталоге, откуда запускается. Однако для корректного выполнения командbihactlцелевой каталогPGDATAдолжен быть пустым.Настроить аутентификацию пользователей можно с помощью файла паролей или переменной окружения. За подробной информацией обратитесь к Настройка аутентификации пользователей.
Во время работы BiHA использует собственный механизм, чтобы динамически изменять конфигурацию Postgres Pro. Некоторые параметры Postgres Pro управляются расширением biha и изменить их с помощью ALTER SYSTEM невозможно, так как они критичны для работы biha. К таким параметрам относятся:
За подробной информацией обратитесь к Конфигурация Postgres Pro.
При использовании BiHA не рекомендуется вручную изменять какие-либо параметры конфигурации, относящиеся к применению WAL, так как это может привести к непредвиденному поведению кластера. Например, если изменить значение recovery_min_apply_delay на последователе, он может перестать принимать WAL, но при этом продолжит отображаться, как доступный и в состоянии
FOLLOWER.Не рекомендуется использовать команду
restore_commandс BiHA-кластером. За подробной информацией обратитесь к Подразделу 27.3.14.В некоторых операционных системах управление сеансами пользователей может осуществляться менеджером служб systemd. В этом случае, если сервер запущен с использованием pg_ctl и управляется удалённо, имейте в виду, что при завершении SSH-сеанса все фоновые процессы, инициированные в нём, будут также завершены демоном systemd. Чтобы избежать такого поведения, выполните одно из следующих действий:
Воспользуйтесь файлом службы
postgrespro-ent-18менеджера systemd для запуска сервера СУБД на узле кластера.Измените конфигурацию службы управления сеансами пользователей
systemd-logindв файле/etc/systemd/logind.conf, а именно установите значениеnoдля параметраKillUserProcesses.
27.2.2. Настройка аутентификации пользователей #
Роль biha_replication_user создаётся во время инициализации кластера и обладает правами на выполнение репликации в BiHA-кластере. Прежде чем приступить к инициализации кластера, вы должны выбрать метод аутентификации роли biha_replication_user и выполнить необходимую подготовку в зависимости от вашего выбора.
Важно
Если вы не настроите аутентификацию одним из перечисленных ниже методов, будет невозможно добавить последователей в BiHA-кластер.
BiHA поддерживает следующие варианты настройки аутентификации biha_replication_user:
27.2.2.1. Настройка аутентификации через переменные окружения #
Чтобы не хранить пароль biha_replication_user в файле паролей pgpass, можно использовать переменные окружения PGPASSWORD и BIHA_REPLICATION_PASSWORD. Пароль должен быть одинаковым в обеих переменных окружения и на всех узлах BiHA-кластера.
При инициализации кластера командой bihactl bihactl cluster init утилита bihactl получает пароль из BIHA_REPLICATION_PASSWORD.
При добавлении узлов в кластер командой bihactl node add утилита bihactl получает пароль из PGPASSWORD.
27.2.2.2. Настройка аутентификации через файл паролей #
Чтобы использовать аутентификацию через файл паролей pgpass, необходимо указать пароль для роли biha_replication_user в файлах паролей всех узлов BiHA-кластера. При инициализации кластера командой bihactl cluster init и последующем добавлении узлов командой bihactl node add утилита bihactl получает пароль из файла паролей.
Важно
Чтобы обеспечить подключение между лидером и последователями, пароль роли biha_replication_user должен быть одинаковым на всех узлах BiHA-кластера.
Для указания пароля можно использовать один из следующих способов:
Безопасный и рекомендуемый способ — добавить отдельную строку для каждого узла:
echo '
имя_хоста:порт:biha_db:biha_replication_user:пароль' >> ~/.pgpass echo 'имя_хоста:порт:replication:biha_replication_user:пароль' >> ~/.pgpassПростой способ — добавить одну строку для всех узлов:
echo '*:*:*:biha_replication_user:
пароль' >> ~/.pgpass
27.2.3. Подготовка BiHA-кластера с нуля #
Чтобы подготовить BiHA-кластер с нуля, выполните следующие действия.
Предварительные требования
На всех узлах будущего кластера установите пакет
postgrespro-ent-18-contrib. Не создавайте экземпляры баз данных.Убедитесь, что вы выполняете команды
bihactlот имени пользователя, который будет запускать сервер Postgres Pro Enterprise.Например, если вы запускаете сервер как пользователь
postgres, командыbihactlдолжны также выполняться пользователемpostgres.Если вы планируете использовать pg_probackup с biha, установите пакет
pg-probackup-ent-18.Выберите метод аутентификации для роли
biha_replication_userи выполните необходимую подготовку. За подробной информацией обратитесь к разделу Настройка аутентификации пользователей.
Инициализация кластера
Используйте команду bihactl cluster init, чтобы инициализировать кластер и создать узел-лидер.
Выполните команду bihactl cluster init с необходимыми параметрами:
bihactl cluster init \ --biha-node-id=1 \ --host=хост\ --port=порт_узла\ --biha-port=порт_biha\ --nquorum=количество_узлов\ --pgdata=каталог_PGDATA_лидераНа этом этапе можно также включить SSL для служебных подключений к кластеру и настроить кворумную синхронную репликацию.
(Необязательно) Задайте пароль для роли
biha_replication_userи введите повторно для проверки.Примечание
bihactl предлагает указать пароль для роли
biha_replication_user, только если вы не настроили какой-либо из поддерживаемых методов аутентификации. В этом случае лидер будет создан, но добавление последователей будет недоступно. Чтобы создать полноценный BiHA-кластер, настройте аутентификацию пользователей.Запускается утилита initdb, редактируются файлы postgresql.conf и pg_hba.conf.
При инициализации BiHA-кластера генерируется «магическая» строка. Об использовании «магической» строки читайте в Подразделе 27.2.10.
Запустите СУБД с помощью pg_ctl:
pg_ctl start -D
каталог_PGDATA_лидера-lфайл_журнала_лидераПроверьте статус узла в представлении biha.status_v:
SELECT * FROM biha.status_v;
Добавление узла-последователя
Примечание
Узлы необходимо добавлять по очереди. Не добавляйте новый узел, пока создание ранее добавленного узла не завершено и он находится в состоянии CSTATE_FORMING. В противном случае во время резервного копирования узла может возникнуть ошибка.
Убедитесь, что узел-лидер находится в состоянии
LEADER_ROилиLEADER_RW.Убедитесь, что вы настроили аутентификацию для роли
biha_replication_userс помощью одного из поддерживаемых методов.Выполните команду bihactl node add с необходимыми параметрами:
bihactl add \ --biha-node-id=2 \ --host=узел_2\ --port=порт_узла\ --biha-port=порт_biha\ --use-leader "host=узел_лидерport=порт_лидераbiha-port=порт_лидера_biha" \ --pgdata=каталог_PGDATA_последователяСоздаётся резервная копия узла-лидера при помощи pg_basebackup или pg_probackup в зависимости от значения, переданного в параметре --backup-method. Также редактируются файлы postgresql.conf и pg_hba.conf.
Примечание
При выполнении этого процесса все файлы копируются с лидера на новый узел. Чем больше размер базы данных, тем дольше времени требуется для добавления последователя.
Также можно добавить данные для подключения к узлу-лидеру с помощью «магической» строки. За дополнительной информацией об использовании «магической» строки обратитесь к Подразделу 27.2.10.
Запустите СУБД с помощью pg_ctl:
pg_ctl start -D
каталог_PGDATA_последователя-lфайл_журнала_последователяПроверьте статус узла в представлении biha.status_v:
SELECT * FROM biha.status_v;
27.2.4. Подготовка BiHA-кластера из существующего кластера с потоковой репликацией #
Преобразуйте существующий кластер Postgres Pro Enterprise 18 с потоковой репликацией и настроенным экземпляром базы данных в BiHA-кластер. В результате ведущий узел кластера станет лидером, а ведомые — последователями.
Предварительные требования
Убедитесь, что вы выполняете команды
bihactlот имени пользователя, который будет запускать сервер Postgres Pro Enterprise.Например, если вы запускаете сервер как пользователь
postgres, командыbihactlдолжны также выполняться пользователемpostgres.Если вы планируете использовать pg_probackup с biha, установите пакет
pg-probackup-ent-18.Выберите метод аутентификации для роли
biha_replication_userи выполните необходимую подготовку. За подробной информацией обратитесь к разделу Настройка аутентификации пользователей.
Преобразование ведущего узла в узел-лидер
Остановите существующий ведущий узел с помощью pg_ctl:
pg_ctl stop -D
каталог_PGDATA_ведущего_узлаВыполните команду bihactl cluster init с параметром --convert:
bihactl init --convert \ --biha-node-id=1 \ --host=хост\ --port=порт_PostgresPro\ --biha-port=порт_biha\ --nquorum=количество_узлов\ --pgdata=каталог_PGDATA_лидераНа этом этапе можно также включить SSL для служебных подключений к кластеру и настроить кворумную синхронную репликацию.
Во время преобразования кластера генерируется «магическая» строка. За дополнительной информацией об использовании «магической» строки обратитесь к Подразделу 27.2.10.
(Необязательно) Задайте пароль для роли
biha_replication_userи введите повторно для проверки.Примечание
bihactl предлагает указать пароль для роли
biha_replication_user, только если вы не настроили какой-либо из поддерживаемых методов аутентификации. В этом случае лидер будет создан, но добавление последователей будет недоступно. Чтобы создать полноценный BiHA-кластер, настройте аутентификацию пользователей.Запустите СУБД с помощью pg_ctl:
pg_ctl start -D
каталог_PGDATA_лидера-lфайл_журнала_лидераПроверьте статус узла в представлении biha.status_v:
SELECT * FROM biha.status_v;
Преобразование ведомого узла в узел-последователь
Убедитесь, что вы настроили аутентификацию для роли
biha_replication_userс помощью одного из поддерживаемых методов.Остановите ведомый узел с помощью pg_ctl:
pg_ctl stop -D
каталог_PGDATA_ведомого_узлаВыполните команду bihactl node add с параметром --convert-standby:
bihactl add --convert-standby \ --biha-node-id=2 \ --host=
узел_2\ --port=порт_PostgresPro\ --biha-port=5435 \ --use-leader "host=адрес_узла_лидераport=порт_лидераbiha-port=порт_лидера_biha" \ --pgdata=каталог_PGDATA_последователяПри преобразовании существующего ведомого узла в узел-последователь biha создаёт файлы
икаталог_PGDATA_последователя/pg_biha/biha.conf, необходимые для подключения узла к кластеру, и редактирует файлы postgresql.conf и pg_hba.conf.каталог_PGDATA_последователя/pg_biha/biha.stateТакже можно добавить данные для подключения к узлу-лидеру с помощью «магической» строки. За дополнительной информацией об использовании «магической» строки обратитесь к Подразделу 27.2.10.
Запустите СУБД с помощью pg_ctl:
pg_ctl start -D
каталог_PGDATA_последователя-lфайл_журнала_последователяПроверьте статус узла в представлении biha.status_v:
SELECT * FROM biha.status_v;
27.2.5. Подготовка BiHA-кластера из существующего сервера баз данных #
Если существующий сервер Postgres Pro Enterprise 18 с настроенной базой данных состоит только из одного узла, вы можете преобразовать его в узел-лидер, а затем добавить остальные узлы в BiHA-кластер с помощью команды bihactl node add.
Предварительные требования
Убедитесь, что вы выполняете команды
bihactlот имени пользователя, который будет запускать сервер Postgres Pro Enterprise.Например, если вы запускаете сервер как пользователь
postgres, командыbihactlдолжны также выполняться пользователемpostgres.Если вы планируете использовать pg_probackup с biha, установите пакет
pg-probackup-ent-18.Выберите метод аутентификации для роли
biha_replication_userи выполните необходимую подготовку. За подробной информацией обратитесь к разделу Настройка аутентификации пользователей.
Преобразование существующего узла в узел-лидер
Остановите существующий узел с помощью pg_ctl:
pg_ctl stop -D
каталог_PGDATA_сервераВыполните команду bihactl cluster init с параметром --convert:
bihactl init --convert \ --biha-node-id=1 \ --host=хост\ --port=порт_PostgresPro\ --biha-port=порт_biha\ --nquorum=количество_узлов\ --pgdata=каталог_PGDATA_лидераНа этом этапе можно также включить SSL для служебных подключений к кластеру и настроить кворумную синхронную репликацию.
Редактируются файлы postgresql.conf и pg_hba.conf.
Во время преобразования узла генерируется «магическая» строка. За дополнительной информацией об использовании «магической» строки обратитесь к Подразделу 27.2.10.
(Необязательно) Задайте пароль для роли
biha_replication_userи введите повторно для проверки.Примечание
bihactl предлагает указать пароль для роли
biha_replication_user, только если вы не настроили какой-либо из поддерживаемых методов аутентификации. В этом случае лидер будет создан, но добавление последователей будет недоступно. Чтобы создать полноценный BiHA-кластер, настройте аутентификацию пользователей.Запустите СУБД с помощью pg_ctl:
pg_ctl start -D
каталог_PGDATA_лидера-lфайл_журнала_лидераПроверьте статус узла в представлении biha.status_v:
SELECT * FROM biha.status_v;
Добавление узла-последователя
Убедитесь, что узел-лидер находится в состоянии
LEADER_ROилиLEADER_RW.Убедитесь, что вы настроили аутентификацию для роли
biha_replication_userс помощью одного из поддерживаемых методов.Выполните команду bihactl node add с необходимыми параметрами:
bihactl add \ --biha-node-id=2 \ --host=узел_2\ --port=порт_узла\ --biha-port=порт_biha\ --use-leader "host=адрес_узла_лидераport=порт_лидераbiha-port=порт_biha_лидера" \ --pgdata=каталог_PGDATA_последователяСоздаётся резервная копия узла-лидера при помощи pg_basebackup или pg_probackup в зависимости от значения, переданного в параметре --backup-method. Также редактируются файлы postgresql.conf и pg_hba.conf.
Также можно добавить данные для подключения к узлу-лидеру с помощью «магической» строки. За дополнительной информацией об использовании «магической» строки обратитесь к Подразделу 27.2.10.
Запустите СУБД с помощью pg_ctl:
pg_ctl start -D
каталог_PGDATA_последователя-lфайл_журнала_последователяПроверьте статус узла в представлении biha.status_v:
SELECT * FROM biha.status_v;
27.2.6. Подготовка узла-рефери в BiHA-кластере #
Узел-рефери участвует в выборах и помогает разрешить проблемы разделения кластера.
Примечание
Рекомендуется отключить автоочистку перед добавлением рефери. Когда рефери добавлен, автоочистку можно снова включить.
При добавлении в кластер узла-рефери можно использовать только pg_basebackup.
По умолчанию на рефери копируются только база данных
biha_dbи системные таблицы. База данныхpostgresи пользовательские данные не копируются. Если необходимо, чтобы база данныхpostgresприсутствовала на рефери, укажите параметр --referee-with-postgres-db.
Чтобы подготовить узел-рефери:
Выполните команду bihactl node add с соответствующим значением параметра --mode:
bihactl add \ --biha-node-id=3 \ --host=узел_3\ --port=порт_узла\ --biha-port=порт_biha\ --use-leader "host=адрес_узла_лидераport=порт_лидераbiha-port=порт_лидера_biha" \ --pgdata=каталог_PGDATA_рефери\ --mode=refereeили
bihactl add \ --biha-node-id=3 \ --host=узел_3\ --port=порт_узла\ --biha-port=порт_biha\ --use-leader "host=адрес_узла_лидераport=порт_лидераbiha-port=порт_лидера_biha" \ --pgdata=каталог_PGDATA_рефери\ --mode=referee_with_walПроверьте параметр конфигурации shared_buffers на рефери.
Если значение слишком высокое, установите значение по умолчанию 128 МБ.
С помощью pg_ctl запустите экземпляр Postgres Pro с настроенным узлом-рефери:
pg_ctl start -D
каталог_PGDATA_рефериПроверьте статус узла в представлении biha.status_v:
SELECT * FROM biha.status_v;
27.2.7. Подготовка BiHA-кластера с proxima #
Чтобы расширить возможности отказоустойчивости функциональностью прокси-сервера и пула соединений, можно включить расширение proxima во время подготовки BiHA-кластера.
Расширением proxima можно также управлять в существующем BiHA-кластере. За подробной информацией обратитесь к Управление расширением proxima.
Примечание
Расширение proxima не устанавливается на рефери.
Во время инициализации BiHA-кластера с нуля в команде bihactl cluster init укажите параметр --enable-proxima. Например:
bihactl init \ --biha-node-id=1 \ --host=хост\ --port=порт_узла\ --biha-port=порт_biha\ --nquorum=количество_узлов\ --pgdata=каталог_PGDATA_лидера--enable-proximaУтилита bihactl добавляет proxima в список shared_preload_libraries в файле postgresql.conf, создаёт файл
postgresql.proxima.confи включает его в файлpostgresql.biha.conf.Так как последователи добавляются с помощью создания и восстановления резервной копии лидера, конфигурация proxima копируется на последователей так же, как и другие параметры конфигурации BiHA.
При добавлении узла-рефери конфигурация proxima не копируется на рефери.
Когда BiHA-кластер будет готов, вы сможете изменить параметры конфигурации proxima.
27.2.8. Подготовка геораспределённого и катастрофоустойчивого кластера BiHA (GDBiHA) #
Вы можете либо создать кластер GDBiHA с нуля, либо преобразовать существующий кластер Postgres Pro Enterprise 18 с потоковой репликацией и настроенным экземпляром базы данных в кластер GDBiHA.
В этом примере создаётся кластер GDBiHA, состоящий из шести узлов, распределённых между двумя сегментами.
Предварительные требования
При подготовке кластера GDBiHA с нуля установитe пакет
postgrespro-ent-18-contribна всех узлах будущего кластера. Не создавайте экземпляры баз данных.Убедитесь, что вы выполняете команды
bihactlот имени пользователя, который будет запускать сервер Postgres Pro Enterprise.Например, если вы запускаете сервер как пользователь
postgres, командыbihactlдолжны также выполняться пользователемpostgres.Если вы планируете использовать pg_probackup с biha, установите пакет
pg-probackup-ent-18.Выберите метод аутентификации для роли
biha_replication_userи выполните необходимую подготовку. За подробной информацией обратитесь к разделу Настройка аутентификации пользователей.
Инициализация кластера
Используйте команду bihactl cluster init, чтобы инициализировать кластер и создать узел-лидер.
Выполните команду bihactl cluster init с необходимыми параметрами:
bihactl cluster init \ --biha-node-id=1 \ --host=хост\ --port=порт_узла\ --biha-port=порт_biha\ --nquorum=количество_узлов\ --pgdata=каталог_PGDATA_лидераЧтобы преобразовать существующий кластер Postgres Pro Enterprise 18, дополнительно укажите параметр --convert.
(Необязательно) Задайте пароль для роли
biha_replication_userи введите повторно для проверки.Запускается утилита initdb, редактируются файлы postgresql.conf и pg_hba.conf.
При инициализации BiHA-кластера генерируется «магическая» строка. Об использовании «магической» строки читайте в Подразделе 27.2.10.
Запустите СУБД с помощью pg_ctl:
pg_ctl start -D
каталог_PGDATA_лидера-lфайл_журнала_лидераПроверьте статус узла в представлении biha.status_v:
SELECT * FROM biha.status_v;
Добавление сегмента
В этом примере кластер GDBiHA состоит из двух сегментов. Сегмент по умолчанию с идентификатором 111 создаётся автоматически при инициализации кластера. Второй сегмент необходимо добавить вручную с помощью команды bihactl segment add.
Выполните команду bihactl segment add с необходимыми параметрами:
bihactl segment add \ --biha-node-id=идентификатор_сегмента\ --use-leader "host=адрес_узлаport=порт_узлаbiha-port=порт_biha_узла" \
Добавление последователей
Так как в этом примере кластер GDBiHA состоит из шести узлов, необходимо добавить пять последователей.
Примечание
Узлы необходимо добавлять по очереди. Не добавляйте новый узел, если создание ранее добавленного узла ещё не завершено и узел находится в состоянии
CSTATE_FORMING. В противном случае может возникнуть следующая ошибка:WARNING: aborting backup due to backend exiting before pg_backup_stop was calledПри добавлении последователей помните, что их необходимо распределить между двумя сегментами. Рекомендуется сначала добавить двух последователей в сегмент по умолчанию
111, а затем добавить трёх последователей в тот сегмент, который вы создали вручную.
Убедитесь, что узел-лидер находится в состоянии
LEADER_ROилиLEADER_RW.Выполните команду bihactl node add с необходимыми параметрами:
bihactl node add \ --biha-node-id=2 \ --host=хост\ --port=порт_узла\ --biha-port=порт_biha\ --use-leader "host=адрес_узла_лидераport=порт_лидераbiha-port=порт_biha_лидера" \ --pgdata=каталог_PGDATA_последователя\ --segment-id=идентификатор_сегментаЧтобы преобразовать существующий кластер Postgres Pro Enterprise 18, дополнительно укажите параметр --convert-standby.
Создаётся резервная копия узла-лидера при помощи pg_basebackup или pg_probackup в зависимости от значения, переданного в параметре --backup-method. Также редактируются файлы postgresql.conf и pg_hba.conf.
Примечание
При выполнении этого процесса все файлы копируются с лидера на новый узел. Чем больше размер базы данных, тем дольше времени требуется для добавления последователя.
Также можно добавить данные для подключения к узлу-лидеру с помощью «магической» строки. За дополнительной информацией об использовании «магической» строки обратитесь к Подразделу 27.2.10.
Запустите СУБД с помощью pg_ctl:
pg_ctl start -D
каталог_PGDATA_последователя-lфайл_журнала_последователяПроверьте статус узла в представлении biha.status_v:
SELECT * FROM biha.status_v;
Повторите шаги выше, чтобы создать всех необходимых последователей.
Когда все узлы готовы, проверьте статус кластера в представлении biha.super_status_v:
SELECT * FROM biha.super_status_v;
27.2.9. Настройка SSL для служебных подключений (необязательно) #
При инициализации BiHA-кластера можно включить SSL для служебных соединений кластера с помощью параметра --use-ssl. Чтобы включить или отключить SSL в инициализированном BiHA-кластере, воспользуйтесь инструкцией Управление SSL для служебных подключений.
Подготовка сертификата и ключа
С помощью утилиты
OpenSSLсгенерируйте сертификат и закрытый ключ и сохраните их в каталоге/PGDATA/pg_bihaна каждом узле кластера:openssl req -x509 -newkey rsa:4096 -keyout
путь_к_ключу-outпуть_к_сертификату-sha256 -daysсрок_действия-nodes -subj "/CN=домен_сертификата"Например:
openssl req -x509 -newkey rsa:4096 -keyout /PGDATA/pg_biha/biha_priv_key.pem -out /PGDATA/pg_biha/biha_pub_cert.pem -sha256 -days 365 -nodes -subj "/CN=localhost"
Будут созданы следующие файлы:
biha_priv_key.pem— закрытый ключ с доступом пользователя на чтение и запись (0600)biha_pub_cert.pem— самоподписанный сертификат, выпущенный на указанный период времени и для указанного домена
Важно
Убедитесь, что для файлов сертификата и закрытого ключа вы использовали вышеуказанные имена, так как BiHA будет искать файлы именно по этим именам.
Включение SSL
При инициализации BiHA-кластера с помощью команды bihactl cluster init укажите параметр --use-ssl:
bihactl init \ --biha-node-id=1 \ --host=хост\ --port=порт_узла\ --biha-port=порт_biha\ --nquorum=количество_узлов\ --pgdata=каталог_PGDATA_лидера--use-sslЧтобы убедиться, что SSL включён, после завершения настройки BiHA-кластера с помощью команды
SHOWпроверьте, что для параметраbiha.use_sslустановлено значениеtrue:SHOW biha.use_ssl;
27.2.10. Использование «магической» строки (необязательно) #
«Магическая» строка — это специальная строка, которая автоматически генерируется при инициализации BiHA-кластера. Строка содержит данные, необходимые для подключения узлов-последователей к узлу-лидеру.
Вы можете использовать «магическую» строку в скриптах подготовки BiHA-кластера, чтобы при добавлении узлов-последователей не вводить данные для подключения к узлу-лидеру вручную.
Далее приведён пример использования «магической» строки:
Инициализируйте BiHA-кластер с помощью команды bihactl cluster init:
bihactl init \ --biha-node-id=1 \ --host=хост\ --port=порт_узла\ --biha-port=порт_biha\ --nquorum=количество_узлов\ --pgdata=каталог_PGDATA_лидераВывод команды bihactl cluster init является «магической» строкой. Пример «магической» строки выглядит следующим образом:
dmVyc2lvbj0xIGhvc3Q9bG9jYWxob3N0IHBvcnQ9NTQzMiBiaWhhLXBvcnQ9NTQzMw==
Скопируйте и сохраните вывод команды.
При добавлении последователя с помощью bihactl node add укажите вывод команды bihactl cluster init в качестве значения параметра --magic-string. Например:
bihactl add \ --biha-node-id=2 \ --host=
узел_2\ --port=порт_узла\ --biha-port=порт_biha\ --magic-string=dmVyc2lvbj0xIGhvc3Q9bG9jYWxob3N0IHBvcnQ9NTQzMiBiaWhhLXBvcnQ9NTQzMw== \ --pgdata=каталог_PGDATA_последователяУзел-последователь будет использовать закодированные данные из «магической» строки для подключения к узлу-лидеру.