лого postgrespro лого postgrespro

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

Высокая отказоустойчивость — базовое требование к СУБД в business-critical системах. Однако в экосистеме открытой СУБД PostgreSQL не существует стандартного, единственного рекомендованного решения для обеспечения отказоустойчивости. Таких решений много, самые популярные — Patroni, Stolon, Corosync/Pacemaker. Все они сложны в установке и конфигурировании, для их использования нужна высокая квалификация администраторов баз данных. Часто обеспечение отказоустойчивости для компонентов самих этих решений еще больше усложняет архитектуру и мониторинг. Кроме того, в средах с высокими требованиями к безопасности использование внешнего кластерного ПО — дополнительный риск. И наконец, сторонние решения часто не поддерживают новейшие версии СУБД и отсутствуют в Едином реестре российского софта.

В ответ на запросы заказчиков команда 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 Enterprise

Postgres Pro — российская СУБД для enterprise-задач. Среди заказчиков системы — РЖД, «Росатом», «Газпромнефть», Федеральная налоговая служба, Федеральное казначейство, МИД, Гознак, Росфинмониторинг, а также крупнейшие частные компании России из списка «РБК 500».

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

Облегченная миграция с Oracle: как быстрее перейти на новую СУБД

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

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

Росагролизинг: как специалисты «Нетрики» провели миграцию аналитической системы компании с MS SQL Server на Postgres Pro

«Росагролизинг» — государственная лизинговая компания, которая занимается технической и технологической модернизацией отечественного агропромышленного комплекса. Чтобы повысить устойчивость аналитической системы предприятия руководители компании приняли решение о переносе СУБД в российскую Postgres Pro и импортозамещении службы интеграции MS SSIS. Проект выполнила петербургская компания «Нетрика».

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

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