Svoboda | Graniru | BBC Russia | Golosameriki | Facebook
лого postgrespro лого postgrespro

Отказоустойчивый кластер Postgres Pro «из коробки»: как работает BiHA

Высокая отказоустойчивость — базовое требование к СУБД в business-critical системах. Однако в экосистеме открытой СУБД PostgreSQL не существует стандартного, единственного рекомендованного решения для обеспечения отказоустойчивости.  В ответ на запросы заказчиков команда Postgres Professional разработала BiHA — собственную систему управления отказоустойчивым кластером Postgres Pro.

Встроенная в Postgres Pro отказоустойчивость

BiHA расшифровывается как Built-in High Availability, то есть «встроенная высокая доступность». В этом принципиальное отличие BiHA от имеющихся решений построения active-passive кластеров. BiHA интегрирована в ядро Postgres Pro Enterprise и доступна всем пользователям с лицензией на Postgres Pro Enterprise. В то время как релизные циклы внешнего кластерного ПО и Postgres Pro Enterprise могут не совпадать, для обновления BiHA нужно лишь обновление версии СУБД Postgres Pro. В отличие от дополнительного кластерного ПО, при использовании BiHA администратор БД имеет дело только с СУБД Postgres Pro. Задачи обновления, настройки, обеспечения совместимости стороннего ПО решать в этом случае уже не нужно.

Упрощение работы администратора

BiHA управляет физической репликацией Postgres самым распространенным решением для обеспечения отказоустойчивости Postgres. Физическая репликация построена на передаче файлов журнала предзаписи (WAL) с последующим применением их на реплике. На репликах может использоваться как синхронная, так и асинхронная репликация.

При конфигурировании кластера BiHA все необходимые для репликации параметры настраиваются автоматически, что значительно упрощает работу администратора. Создание узлов кластера лидера (Leader) и ведомого (Follower) происходит простым вызовом утилиты командной строки (bihactl init и bihactl add). На лидере находится рабочая версия БД, а на ведомых узлах — резервные.

Непрерывный мониторинг состояния узлов кластера

Любой узел кластера всегда «знает» о состоянии всех остальных узлов, что позволяет быстро определять наличие сбоя в кластере. Это достигается благодаря работе специальных процессов BiHA, выполняющих непрерывный мониторинг состояния всех узлов кластера во время его работы. Взаимодействие узлов друг с другом происходит с использованием управляющего канала: между каждыми двумя узлами устанавливается сетевое соединение по протоколу TCP.

Автоматическая защита от сбоя

Отказоустойчивость кластера BiHA обеспечивается без какого-либо участия администратора системы. Если лидер недоступен, оставшиеся узлы кластера выбирают нового лидера голосованием. При голосовании учитывается множество параметров, в том числе длина журнала предзаписи (WAL), что критично при использовании асинхронной репликации. Максимальная длина WAL означает минимальную потерю данных — поэтому выбирается минимально отстающий от лидера узел.

Предотвращение несогласованности данных

Имеется возможность регулировать количество узлов, составляющее кластерный кворум, необходимый для принятия решения о назначении нового лидера. Если старый лидер продолжает работать, но изолирован по сети от других узлов кластера, клиенты могут выполнять на нем только операции чтения. Это важно для предотвращения ситуации, когда операции записи выполняются на нескольких узлах кластера одновременно и несогласованно (split brain).

При устранении сбоя и возврате старого лидера в кластер он автоматически становится ведомым, поскольку он не прошел последнее голосование и не будет признан в качестве лидера. Снова назначить этот узел лидером при необходимости можно вручную с помощью функции set_leader(id).

Автоматическое подключение пользователей к новому лидеру

Для автоматизации подключений пользователей к СУБД могут использоваться привычные прокси, пулеры и балансировщики соединений. Управлять подключениями можно также и на клиенте (libpq, JDBC): если в строке соединений перечислить все узлы кластера и выставить параметр target_session_attrs=read-write, то при сбое будет происходить автоматическое переподключение к новому лидеру. Существуют и другие значения этого параметра клиентского подключения, например read-only, которая позволит клиентам, читающим данные, подключаться только к ведомым узлам кластера, в том числе с балансировкой сессий на чтение между всеми ведомыми узлами.

BiHA — незаменимое решение для крупных инсталляций

BiHA — полностью самостоятельная разработка Postgres Pro, созданная без применения каких либо Open Source решений. Встроенный кластер позволяет добиться высокой доступности Postgres Pro Enterprise при максимально простой установке и настройке. BiHA — безопасная и экономичная технология, она не требовательна к экспертизе администратора баз данных и позволяет обойтись без использования дополнительного оборудования. BiHA может стать незаменимым решением для обеспечения отказоустойчивости крупных инсталляций в корпоративных средах.

Узнать больше о BiHA и других технологиях отказоустойчивости можно на сайте Postgres Pro.

erid:LjN8JxzDpРекламодатель: компания ООО «ППГ»ИНН/ОГРН: 7729445882/1157746074518Сайт: https://postgrespro.ru/ ПОЛУЧИТЬ КОНСУЛЬТАЦИЮ
Получить консультацию по Postgres Pro

Другие статьи

«Росатом» перенес систему электронного документооборота на российскую СУБД Postgres Pro 

СУБД Postgres Pro Enterprise Certified стала важной составляющей новой ECM-платформы «Атом.Контент», разработанной в госкорпорации «Росатом». Благодаря отечественной системе управления базами данных команде внедрения удалось перевести Единую отраслевую систему документооборота (ЕОСДО) на импортонезависимое программное обеспечение, полностью сохранив функциональность, производительность и бизнес-логику системы.

Читать полностью

С Oracle на Postgres Pro: как «Айбим» провела миграцию АИС «Московской государственной экспертизы»

Решение о переходе на Postgres Pro компания приняла еще в 2021 году — обусловлено оно было даже не вопросом импортозамещения, еще не так остро стоящим на тот момент, а несопоставимо высокой стоимостью владения системой на платформе Oracle по сравнению с реализацией на СУБД Postgres Pro. 

Читать полностью

Мониторинг, диагностика и управление базами данных в одном окне: как устроен Postgres Pro Enterprise Manager

С декабря 2023 года все пользователи российской СУБД Postgres Pro могут свободно работать с Postgres Pro Enterprise Manager (PPEM) — графической платформой для эффективного и удобного управления базами данных Postgres Pro и PostgreSQL. О том, какие функции для мониторинга, диагностики и управления есть в PPEM — в нашем обзоре на Youtube и статье ниже.

Читать полностью
Реклама

erid: LjN8JxzDp
Рекламодатель: ООО «ППГ»
ИНН/ОГРН: 7729445882/1227700166320
Сайт: https://teamstorm.io/