Кластер Galera для MariaDB: обзор

В современных решениях по управлению базами данных одинаково важны непрерывная работа, высокая доступность и гибкие возможности масштабирования. Без этих характеристик невозможно справиться с колебаниями нагрузки и неожиданными пиками. Более того, выполнение этих требований при минимальных затратах на инфраструктуру с помощью облачных решений часто представляет собой довольно сложную задачу.

Galera Cluster был разработан именно с учетом этих проблем. Это многомастерное кластерное решение для баз данных, которое использует высокопроизводительную синхронную репликацию для обеспечения всех узлов базы данных одними и теми же данными в режиме реального времени. Оно обеспечивает минимальную потерю данных и высокую надежность и доступно для MariaDB и других систем управления базами данных. В следующих разделах объясняется архитектура, лежащая в основе кластеров MariaDB Galera Clusters, преимущества и области применения этого программного обеспечения.

Что такое Galera Cluster?

Galera Cluster — это программный пакет для операционных систем Linux, который позволяет пользователям настраивать и управлять кластерами MySQL, XtraDB и MariaDB. Кластерное приложение основано на механизме хранения данных InnoDB и его развилке XtraDB. Также имеется экспериментальная поддержка механизма MyISAM, который широко использовался в MySQL и MariaDB до разработки InnoDB. При сохранении данных на различных независимых узлах кластера Galera Cluster использует принцип синхронной репликации. Это означает, что все процессы репликации и изменения хранимых данных выполняются одновременно на всех первичных и вторичных узлах хранения, так что данные всегда актуальны на всех узлах и между ними не может быть расхождений.

Кластер Galera содержит не менее трех узлов, при этом разработчики обычно рекомендуют иметь нечетное количество узлов. Это объясняется тем, что если на одном узле возникнет проблема с транзакцией (например, из-за сетевых проблем или невосприимчивости системы), два других узла сформируют большинство и смогут успешно завершить транзакцию.

Совет

Galera Cluster в первую очередь предназначен для систем баз данных MariaDB и MySQL. Подробное сравнение MariaDB и MySQL вы можете прочитать в нашей специальной статье.

Как работают кластеры MariaDB Galera Cluster?

В кластере MariaDB на базе Galera Cluster все узлы сети имеют постоянный доступ к одним и тем же данным. В кластерном ПО обычное различие между ведущим и ведомым для серверов баз данных (где ведущий — это сервер, на который можно записывать данные, а ведомые — это серверы только для чтения) больше не существует. Другими словами, пользователь может записать данные на любой из узлов хранения, и они будут автоматически реплицированы на все остальные узлы в кластере. Такая конфигурация известна как «мультимастер».

Для управления этим гибким обменом данными Galera Cluster использует синхронную процедуру репликации на основе сертификации. Когда данные реплицируются (т.е. записываются в одну из баз данных в кластере), Galera Cluster применяет два основных принципа:

  1. Каждой транзакции базы данных присваивается уникальный порядковый номер. Прежде чем любой узел в кластере зафиксирует запрошенные изменения в базе данных, он сравнивает этот порядковый номер с последней зафиксированной транзакцией. Все узлы всегда выдают одинаковый результат проверки (фиксация или отмена). Затем узел, инициировавший транзакцию, может уведомить клиента о результате.
  2. Для каждой транзакции обновляются все реплики базы данных. Следовательно, если транзакция фиксируется после проверки сертификации, соответствующие изменения будут внесены на всех узлах. Узел Galera Cluster может быть исключен (временно) из процедуры синхронной репликации только в том случае, если у него возникли технические проблемы.

Как выглядит структура Galera Cluster?

Внутренняя архитектура Galera Cluster состоит из следующих четырех компонентов:

  • Система управления базой данных: СУБД является центральным узлом кластера. На каждом узле работает соответствующий сервер базы данных. Как уже упоминалось, Galera Cluster поддерживает MariaDB, MySQL и Percona XtraDB.
  • API wsrep: API wsrep определяет и реализует интерфейс и обязанности для доступа к подключенным серверам баз данных. Он также регулирует репликацию данных. API состоит из двух основных элементов: wsrep hooks, которые связываются с сервером базы данных для репликации данных, и dlopen(), которая является функцией, обеспечивающей связь с wsrep hooks.
  • Плагин репликации Galera: Этот плагин реализует API wsrep. Он обеспечивает уровень сертификации, уровень репликации (включая протокол репликации) и структуру группового взаимодействия.
  • Плагины группового взаимодействия: Galera Cluster имеет несколько плагинов для реализации систем групповой коммуникации, таких как Spread toolkit и gcomm. Group Communication Framework обеспечивает архитектуру для этих модулей.

Каковы преимущества кластера MariaDB?

Как отмечалось выше, основные преимущества решения MariaDB Galera Cluster заключаются в том, что эта технология сочетает в себе гибкое хранение данных с максимальной надежностью и доступностью — вы не сможете добиться таких же результатов при использовании стандартной установки MariaDB.

Благодаря механизму синхронной репликации вам больше не нужно заботиться о том, чтобы убедиться в актуальности всех отдельных единиц хранения. Galera Cluster автоматически обновляет каждую единицу базы данных последними изменениями, что полностью устраняет необходимость в создании трудоемких ручных копий и резервных копий. Более того, многомастерная установка означает, что вы можете получить доступ к любому из связанных серверов баз данных MariaDB, когда вам нужно записать, отредактировать или удалить данные, а поскольку вы можете расположить узлы близко к клиентам, задержки сводятся к минимуму.

Еще одним преимуществом кластера MariaDB на базе Galera Cluster является хорошая поддержка этой архитектуры в облаке — такая конфигурация идеально подходит для гибкого облачного масштабирования ресурсов базы данных. Galera Cluster также позволяет легко распределять данные между различными центрами обработки данных, поскольку каждая транзакция должна быть отправлена в каждый центр обработки данных только один раз.

Примечание

IONOS предлагает индивидуальный хостинг SQL-серверов! Посмотрите наши серверные и хостинговые решения для MariaDB, MySQL или MSSQL.

Где используются кластеры Galera?

Как мы уже видели, благодаря своим характеристикам и преимуществам кластер MariaDB Galera Cluster является отличным решением для управления средой баз данных. Он особенно подходит для следующих случаев использования.

Приложения баз данных с высокой пропускной способностью транзакций записи

Распределение операций записи по всему кластеру оптимизирует использование доступных ресурсов записи. После первоначальной обработки клиентской транзакции все узлы, на которые отправляется эта транзакция, должны только записать содержащиеся в ней изменения. Таким образом, общая пропускная способность транзакций записи при использовании метода репликации Galera Cluster значительно выше, чем при использовании стандартной базы данных, что делает его идеальным решением для приложений с интенсивной записью.

Кластеризация глобальной сети

Принцип репликации Galera Cluster прекрасно работает и в глобальной сети (WAN), такой как Интернет. При этом будет наблюдаться некоторая задержка в передаче данных (пропорциональная времени в пути — RTT), но это повлияет только на операцию фиксации входящих транзакций базы данных. Поэтому кластер MariaDB является очень разумным выбором для облачных систем.

Аварийное восстановление

Всем, кто хранит и управляет данными в облаке, необходимо подумать о восстановлении данных. Благодаря Galera Cluster данные могут храниться в отдельном центре обработки данных, чтобы в случае чрезвычайной ситуации была доступна полная копия данных для восстановления. При такой настройке центр данных восстановления кластера MariaDB получает события репликации, но не обрабатывает клиентские транзакции. Если он необходим для процесса восстановления, он временно конфигурируется как основной экземпляр, что сводит время простоя к минимуму.

Совет

Для получения дополнительной информации о аварийном восстановлении см. нашу статью о создании плана аварийного восстановления ИТ.

Оцените статью
cdelat.ru
Добавить комментарий