Первый · ИТ · Альянс
Перейти к основному содержимому
К списку материалов
PostgreSQL
4 апреля 2026 г. 10 мин чтения

Отказоустойчивый кластер PostgreSQL: Patroni и repmgr на практике 2026

Patroni vs repmgr: какой инструмент выбрать для HA-кластера PostgreSQL, как настроить автоматический failover и не потерять данные при split-brain.

HA Patroni repmgr кластер failover

Один сервер PostgreSQL — это не вопрос «упадёт ли», а вопрос «когда». Для прод-нагрузок нужен кластер с автоматическим failover. В РФ за последние 3 года стандартом де-факто стал Patroni, но repmgr всё ещё активно используется в Postgres Pro Enterprise.

Patroni: лидер для современных инсталляций

Шаблон от Zalando. Использует распределённое key-value хранилище (etcd, Consul, ZooKeeper) для выбора лидера. При падении мастера автоматически промоутит реплику за 10-30 секунд. Команда 1IT разворачивает Patroni в продакшен на Astra Linux SE и РЕД ОС.

  • Минимальный кластер: 3 ноды PostgreSQL + 3 ноды etcd (можно совмещать)
  • REST API для управления: переключение, проверка статуса
  • Поддержка синхронной и каскадной репликации
  • Интеграция с HAProxy / pgBouncer для роутинга трафика
  • Watchdog для защиты от split-brain

repmgr: проще, но без автоматики из коробки

Разработка 2ndQuadrant (теперь EDB). Управляет репликацией, делает switchover/failover, но без DCS — нужен отдельный демон repmgrd с witness-нодой. Чаще встречается в legacy-инсталляциях или там, где etcd считают «чёрным ящиком».

Архитектура продакшен-кластера

  1. 3 PostgreSQL ноды в разных стойках (или AZ облака)
  2. 3 etcd-ноды (кворум из 2)
  3. 2 HAProxy с keepalived и виртуальным IP
  4. PgBouncer на каждом PostgreSQL для пуллинга
  5. Отдельный сервер для бэкапов (Barman или WAL-G)
  6. Prometheus + Grafana + Alertmanager для мониторинга

Синхронная или асинхронная репликация

  • Асинхронная (по умолчанию) — низкая latency, RPO 0-несколько секунд
  • Синхронная — RPO=0, но мастер ждёт подтверждения реплики
  • ANY 1 (sync_replicas=2) — компромисс: ждём любую из двух реплик
  • Для финансов и КИИ — обязательно синхронная
  • Для веба, контента, аналитики — асинхронная

Защита от split-brain

Главный кошмар HA — два мастера одновременно. Patroni решает через DCS-кворум: нода без связи с большинством etcd добровольно демоутится. Дополнительно — Linux watchdog: если процесс Patroni завис, ядро ребутает сервер за 10 секунд.

Мониторинг и алерты

Обязательный набор метрик: pg_stat_replication.lag, состояние Patroni leader, размер pg_wal, задержка checkpoint, состояние etcd-кворума. Алерты — на лаг репликации >10 МБ, переключение лидера, рост wal_size.

Частые вопросы

Можно ли построить HA на Postgres Pro Multimaster вместо Patroni?+

Да, но Multimaster решает другую задачу — активная запись в несколько узлов с конфликтами. Для классического HA с автофейловером и read-репликами Patroni проще, дешевле и надёжнее.

Сколько ресурсов нужно на etcd?+

etcd очень лёгкий: 2 vCPU и 2 ГБ RAM на ноду хватает для кластера до 50 PostgreSQL-инстансов. Главное — низкая latency между нодами (<10 мс) и быстрый диск (NVMe или SSD).

Как тестировать failover в проде?+

Раз в квартал — учения: kill -9 процесс postmaster на мастере или iptables DROP. Замеряете время failover, проверяете, что приложение восстановилось. Документируете результаты для аудита.

Нужна помощь по этой теме?

Обсудим задачу и предложим план за 24 часа. Работаем с компаниями из России и СНГ с 1999 года.