Кластер MariaDB
Кластер Оплёта -- это связка ресурсов Брацка Облака, обеспечивающая отказоустойчивость тех пользовательских приложений, которые в качестве базы данных используют MariaDB Server. Исключение составляет Оплёт, который использует Кластер Оплёта.
Содержание
Положение дел
Инфраструктура
- Ранее, если одно приложение, использующее базу данных MariaDB, падало, за ним следовали все остальные. Все данные терялись и восстановление шло из резервной копии, если таковая была в наличии, или было невозможно.
- По состоянию на сентябрь 2021, пользователи работают с приложениями, которые установлены на трёх различных серверах Contabo (два -- в Сент-Луисе, один -- в Германии). Этот кластер построен на основе трёх MariaDB Galera Cluster (установленная версия -- 26.4.6) в качестве взаимо-синхранизуемых баз данных. Сервера поддерживают синхранизованные базы, которые обновляют друг друга. Три сервера синхранизовано копируются друг на друга, скорее всего, при поддержке инсталляции InnoDB.
Задачи
- Структура нуждается в переделке на отказоустойчивый кластер прежде всего и, ещё лучше, географически распределённый (Geocast). В перспективе одну машину в Сент-Луисе планируется заменить на машину в Сингапуре.
- Доступность приложений -- это текущая проблема отказоустойчивости. В настоящее время, если один сервер падает, то его пользовательские приложения не доступны. То есть, хотя базы сохраняются и данные не теряются, не решена проблема load balancer.
Наработки
- Наработки решения шли по двум направлениям:
- MariaDB MaxScale в качестве распределителя нагрузки. Использовались следующие ресурсы:
- HAProxy в качестве распределителя нагрузки. Наработки задокументированы на вики-странице Кластер Оплёта.
- Теоретически, каждое из этих двух решений имеет плюсы и минусы. HAProxy отлично работает на раздаче, но не понимает в рабочем ли состоянии базы данных. MariaDB MaxScale привлекательно тем, что оно понимает состояние баз, а также может слушать Nagios Core.
- Также должны быть рассмотрены MariaDB Backup для резервного копирования и MariaDB Replication для поддержки тех приложений Опытна Облака, котoрые используют MariaDB Server.