Кластер MariaDB — различия между версиями

Материал из Брацка Правки
Перейти к: навигация, поиск
Строка 4: Строка 4:
 
==Положение дел==
 
==Положение дел==
 
===Инфраструктура===
 
===Инфраструктура===
 +
:Ранее, если одно приложение, использующее базу данных MariaDB, падало, за ним следовали все остальные.
  
    По состоянию на сентябрь 2021, управление пользователями осуществляется с дроплета (VPS) в Нью-Йоркском вычислительном центре DigitalOcean (DO). Другой дроплет во Франции поддерживает тестировку, но практически не используется.
+
:По состоянию на сентябрь 2021, пользователи работают с приложениями, которые установлены на трёх различных серверах Contabo (два -- в Сент-Луисе, один -- в Германии). Этот кластер построен на основе трёх [[MariaDB Galera Cluster]] (установленная версия -- 26.4.6) в качестве взаимо-синхранизуемых баз данных. Сервера поддерживают синхранизованные базы, которые обновляют друг друга. Три сервера синхранизовано копируются друг на друга, скорее всего, при поддержке инсталляции InnoDB.
  
 
===Задачи===
 
===Задачи===
 +
:Структура нуждается в переделке на отказоустойчивый кластер прежде всего и, ещё лучше, географически распределённый (Geocast). В перспективе одну машину в Сент-Луисе планируется заменить на машину в Сингапуре.
  
    Структура нуждается в переделке на отказоустойчивый кластер прежде всего и, ещё лучше, географически распределённый (Geocast). В перспективе к двум дроплетам в Нью-Йорке и Франции можно добавить ещё один в Сингапуре.
+
В настоящее время, если один сервер падает, то его пользовательские приложения не доступны. То есть, не решена проблема load balancer.
  
 
===Наработки===
 
===Наработки===
 +
:Наработки решения шли по двум направлениям:
 +
:#[[MariaDB MaxScale]] в качестве распределителя нагрузки. Использовались следующие ресурсы:
 +
:#*https://mariadb.com/resources/blog/getting-started-with-mariadb-galera-and-mariadb-maxscale-on-centos/
 +
:#*https://mariadb.com/services/training/
 +
:#[[HAProxy]] в качестве распределителя нагрузки. Наработки задокументированы на вики-странице [[Кластер Оплёта]].
  
Этот кластер построен на основе трёх [[MariaDB Galera Cluster]] в качестве взаимо-синхранизуемых баз данных, [[MariaDB MaxScale]] в качестве распределителя нагрузки, а также [[MariaDB Backup]] для резервного копирования и [[MariaDB Replication]] для поддержки приложений [[Опытно Облако|Опытна Облака]].
+
:Теоретически, каждое из этих двух решений имеет плюсы и минусы. [[HAProxy]] отлично работает на раздаче, но не понимает в рабочем ли состоянии базы данных. [[MariaDB MaxScale]] привлекательно тем, что оно понимает состояние баз, а также может слушать [[Nagios Core]].
  
[[Кластер MariaDB]] -- это та часть решает проблему устойчивости основной части пользовательских приложений. Ранее, если одно приложение, использующее базу данных MariaDB падало, за ним следовали все остальные.
+
:Также должны быть рассмотрены [[MariaDB Backup]] для резервного копирования и [[MariaDB Replication]] для поддержки тех приложений [[Опытно Облако|Опытна Облака]], котoрые используют [[MariaDB Server]].
 
 
Основная часть пользовательских приложений использует MariaDB Server'a, которые сейчас объединены в один MariaDB Galera Cluster (установленная версия -- 26.4.6)
 
 
 
Пользователи работают с приложениями, которые установлены на трёх различных серверах Contabo (два -- в штатах, один -- в Германии). Сервера поддерживают синхранизованные базы, которые обновляют друг друга. Три сервера MariaDB синхранизовано копируются друг на друга, скорее всего, при поддержке инсталляции InnoDB.
 
 
 
В настоящее время, если один сервер падает, то его пользовательские приложения не доступны. То есть, не решена проблема load balancer; предпринимается попытка использовать MariaDB MaxScale. Также будут рассмотрены для использования MariaDB Backup и MariaDB Replication.
 
 
 
*https://mariadb.com/resources/blog/getting-started-with-mariadb-galera-and-mariadb-maxscale-on-centos/
 
*https://mariadb.com/services/training/
 

Версия 11:22, 22 сентября 2021

Кластер Оплёта -- это связка ресурсов Брацка Облака, обеспечивающая отказоустойчивость тех пользовательских приложений, которые в качестве базы данных используют MariaDB Server. Исключение составляет Оплёт, который использует Кластер Оплёта.


Положение дел

Инфраструктура

Ранее, если одно приложение, использующее базу данных MariaDB, падало, за ним следовали все остальные.
По состоянию на сентябрь 2021, пользователи работают с приложениями, которые установлены на трёх различных серверах Contabo (два -- в Сент-Луисе, один -- в Германии). Этот кластер построен на основе трёх MariaDB Galera Cluster (установленная версия -- 26.4.6) в качестве взаимо-синхранизуемых баз данных. Сервера поддерживают синхранизованные базы, которые обновляют друг друга. Три сервера синхранизовано копируются друг на друга, скорее всего, при поддержке инсталляции InnoDB.

Задачи

Структура нуждается в переделке на отказоустойчивый кластер прежде всего и, ещё лучше, географически распределённый (Geocast). В перспективе одну машину в Сент-Луисе планируется заменить на машину в Сингапуре.

В настоящее время, если один сервер падает, то его пользовательские приложения не доступны. То есть, не решена проблема load balancer.

Наработки

Наработки решения шли по двум направлениям:
  1. MariaDB MaxScale в качестве распределителя нагрузки. Использовались следующие ресурсы:
  2. HAProxy в качестве распределителя нагрузки. Наработки задокументированы на вики-странице Кластер Оплёта.
Теоретически, каждое из этих двух решений имеет плюсы и минусы. HAProxy отлично работает на раздаче, но не понимает в рабочем ли состоянии базы данных. MariaDB MaxScale привлекательно тем, что оно понимает состояние баз, а также может слушать Nagios Core.
Также должны быть рассмотрены MariaDB Backup для резервного копирования и MariaDB Replication для поддержки тех приложений Опытна Облака, котoрые используют MariaDB Server.