Перейти к основному содержимому

Отказоустойчивость кластера PostgreSQL

Последнее изменение:

По умолчанию кластер облачных баз данных PostgreSQL состоит из одной мастер-ноды. Для обеспечения отказоустойчивости кластера нужно добавить в него реплики. В многонодных кластерах одна нода будет мастер-нодой, остальные — репликами.

примечание

Например, если вы создали трехнодный кластер, то в кластере будет одна мастер-нода и две реплики. Если вы добавите еще ноды, они будут репликами.

Тип размещения нод в кластере зависит от наличия реплик в кластере, типа пула, в котором расположен кластер, и количества сегментов в пуле.

Мастер-нода

По умолчанию кластер состоит из одной главной ноды — мастер-ноды. При подключении к мастер-ноде доступны все операции: чтение (SELECT) и запись (INSERT, UPDATE, DELETE и другие).

Все изменения данных на мастер-ноде дублируются на репликах. Процесс репликации не влияет на работу реплик и мастер-ноды.

Реплики

Реплики — это полные копии мастер-ноды. Доступны только для чтения данных (SELECT). В кластерах облачных баз данных PostgreSQL одна реплика всегда синхронная, все последующие реплики асинхронные.

Наличие реплик в кластере обеспечивает его отказоустойчивость — если мастер-нода перестанет работать, то ее роль перейдет одной из реплик и кластер продолжит работать в штатном режиме. Когда мастер-нода будет восстановлена, она возьмет на себя роль реплики. При этом адрес мастер-ноды изменится.

Для кластера с репликами действует SLA — мы гарантируем доступность записи 99,95% и доступность чтения 99,99%.

Если в кластере нет реплик, то он будет недоступен, пока мастер-нода не будет восстановлена. Данные при этом не будут утеряны.

Мы рекомендуем создавать отказоустойчивые кластеры с репликами или добавлять реплики в существующие кластеры.

Размещение нод

Тип размещения нод в кластере зависит от наличия реплик в кластере, типа пула, в котором расположен кластер, и количества сегментов в пуле:

  • Single-Segment — в одном сегменте однозонального пула. Применимо:

    • для кластеров без реплик;
    • кластеров с репликами, которые находятся в пулах только с одним сегментом;
    • кластеров с репликами в конфигурациях линеек HighFreq и Dedicated;
    примечание

    Например, вы создали трехнодный кластер (одна мастер-нода и две реплики) в конфигурации линейки HighFreq в пуле ru-2. Все ноды будут размещены в одном сегменте пула ru-2c.

  • Multi-Segment — в разных сегментах однозонального пула. Применимо для кластеров с репликами, которые находятся в пулах с несколькими сегментами. Сегменты находятся в разных стойках одного дата-центра. Ноды распределяются по сегментам последовательно;

    примечание

    Например, вы создали четырехнодный кластер (одна мастер-нода и три реплики) в пуле ru-1. Первые три ноды будут размещены последовательно в сегментах пула ru-1a, ru-1b и ru-1c. Четвертая нода будет размещена в сегменте ru-1a. Если вы добавите пятую ноду, то она будет размещена в сегменте пула ru-1b.

  • Single-AZ — в одном сегменте мультизонального пула. Применимо для кластеров без реплик в пуле ru-6. Если вы добавите реплику в кластер, тип размещения нод изменится на Multi-AZ;

  • Multi-AZ — в разных сегментах мультизонального пула. Применимо для кластеров с репликами в пуле ru-6. Каждый сегмент пула расположен в отдельном дата-центре. Ноды распределяются по сегментам последовательно.

    примечание

    Например, вы создали четырехнодный кластер (одна мастер-нода и три реплики) в пуле ru-6. Первые три ноды будут размещены последовательно в сегментах пула ru-6a, ru-6b и ru-6c. Четвертая нода будет размещена в сегменте ru-6a. Если вы добавите пятую ноду, то она будет размещена в сегменте пула ru-6b.

Посмотреть список пулов и сегментов можно в таблице Инфраструктура Selectel инструкции Локации: страны, регионы, зоны доступности, пулы и адреса дата-центров.

Изменить количество реплик

Можно увеличить или уменьшить количество реплик. При изменении количества реплик кластер продолжает работать.

  1. В панели управления в верхнем меню нажмите Продукты и выберите Облачные базы данных.
  2. Откройте вкладку Активные.
  3. Откройте страницу кластера → вкладка Настройки.
  4. Нажмите Изменить конфигурацию.
  5. В блоке Отказоустойчивость в поле Количество нод укажите новое количество реплик. Если в подсети, к которой подключен кластер, нет свободных адресов, то реплику нельзя добавить, — каждая новая реплика занимает новый адрес в подсети.
  6. Нажмите Сохранить.