MariaDB Cluster е система за репликация с множество глави, изградена от MariaDB Server, MySQL wsrep patch и Galera wsrep доставчик.
Galera се основава на синхронен (или „виртуално синхрон“) метод на репликация, който гарантира, че данните се прилагат към други възли, преди да бъдат ангажирани. Наличието на едни и същи данни за всички възли означава, че отказите на възли могат лесно да бъдат толерирани и никакви данни не се губят. Също така е по-лесно да преминете при отказ към друг възел, тъй като всички възли са актуални с едни и същи данни. Справедливо е да се каже, че MariaDB Cluster е решение с висока наличност, което може да постигне високо време на работа за организации със строги споразумения за ниво на обслужване на база данни.
Освен управлението на висока наличност, той може да се използва и за мащабиране на услугата за база данни и разширяване на услугата до множество региони.
Разгръщане на клъстер MariaDB
MariaDB Cluster в ClusterControl е наистина ясен и е достъпен в безплатното за използване издание на Общността. Можете да преминете през “Deploy”, да изберете MySQL Galera, както е показано по-долу:
Попълнете SSH потребителска и идентификационна информация, име на клъстер, което искате да използвате и след това Продължи.
Изберете MariaDB като доставчик на базата данни, която искате да инсталирате. Server Data Directory, Server Port може да използва конфигурацията по подразбиране, освен ако не дефинирате конкретна конфигурация. Попълнете паролата на администраторска/коренната база данни и накрая Добавете възел, за да добавите целевите IP адреси на възлите на базата данни.
Възлите на Galera изискват поне 3 възела или можете да използвате 2 възела на база данни и арбитър на galera, конфигурирани на отделен хост.
След като всички полета са попълнени, просто разгръщайте клъстера. Това ще задейства нова задача за създаване на клъстер, както е показано по-долу:
Максимално разгръщане
Maxscale е балансьор на натоварване на база данни, прокси сървър на база данни и защитна стена, която се намира между вашето приложение и възлите на MariaDB. Някои от функциите на Maxscale са:
- Автоматично отказване за висока наличност
- Балансиране на натоварването на трафика (разделяне на четене и запис)
- Контроли на трафика за заявки и връзки.
Има два начина да преминете през внедряване на Load Balancer, можете да „Добавите Load Balancer“ в менюто на клъстера, както е показано по-долу:
Или можете да отидете на Управление -> Балансиране на натоварване. Той ще отиде на същата страница, която е страницата за балансиране на натоварването. Изберете раздела „Maxscale“ за внедряване на балансира на натоварването Maxscale:
Изберете адреса на сървъра, дефинирайте потребителско име и парола за maxscale, можете да оставите конфигурация по подразбиране за нишки и порт за четене/запис. Включете също възела(ите) на MariaDB, които да бъдат добавени в балансира на натоварването. Можете да „Разгръщате MaxScale“ за разгръщане на прокси база данни MaxScale и балансиране на натоварването.
Най-добрата практика, за да направите балансиращото натоварване високодостъпно, е да настроите поне 2 екземпляра MaxScale на различни хостове.
Поддържано внедряване
Keepalived е услуга на демон в Linux, използвана за проверки на здравето и също така използвана за преодоляване на срив, ако един от сървърите не работи. Механизмът използва VIP (виртуален IP адрес) за постигане на висока наличност, състоящ се от един сървър, действащ като главен, а другият като резервен.
Разгръщането на услугата Keepalived може да се извърши в Управление -> Load Balancer.
Моля, изберете вашия тип Load Balancer, който е MaxScale. В момента ClusterControl поддържа HAProxy, ProxySQL и MaxScale като балансьори на натоварване, които могат да бъдат интегрирани с Keepalived. Определете своя виртуален IP (VIP) и мрежов интерфейс за виртуален IP адрес.
След това просто щракнете върху Разгръщане на Keepalived. Това ще задейства нова задача за разполагане на Keepalived и на двата хоста на MaxScale.
Окончателната архитектура за MariaDB Cluster за висока достъпност се състои от 3 възела на база данни, 2 възела за балансиране на натоварването и поддържаща услуга отгоре на всеки балансьор на натоварване, както е показано в топологията по-долу:
Заключение
Показахме как можем бързо да разгърнем MariaDB клъстер с висока достъпност с MaxScale и Keepalived чрез ClusterControl. Минахме през настройките за възли на база данни и прокси възли. За да прочетете повече за Galera Cluster, вижте нашия онлайн урок. Обърнете внимание, че ClusterControl поддържа и други балансиращи натоварването като ProxySQL и HAProxy. Опитайте ги и ни уведомете, ако имате въпроси.