Онлайн обучението в днешно време бързо набира популярност след пандемията от COVID-19. Повечето от образователните институции трябва да създадат платформи за онлайн обучение и почти всички ученици трябва да имат достъп до платформата за обучение и взаимодействие с учителите. Moodle е една от системите за управление на обучението с отворен код за онлайн обучение,
Високата наличност на платформата Moodle е задължителна за институциите, в противен случай тя ще прекъсне и спре процеса на онлайн обучение. Тъй като много студенти имат достъп до платформата по едно и също време, наличността и мащабируемостта са важни. В този момент образователните институции трябва да имат знания и архитектура на платформата с висока достъпност и мащабируемост на Moodle. Ако искате да научите повече за това как да мигрирате самостоятелен Moodle в мащабируема клъстерна база данни, можете да следвате тези указания.
Moodle в режим „Единична точка на отказ“
Самостоятелната платформа Moodle се състои от един сървър и всичко инсталирано на сървъра (базата данни и сървърът на приложения на едно място). Или имате 2 сървъра, което е за сървъра на приложения и сървъра на база данни, както е описано на снимката по-долу:
И двете архитектури нямат наличност и мащабируемост на услугата. От гледна точка на наличността, можете да си представите, че ако сървърът се срине, нямате изпълнявани услуги на сървъра. Ако сървърът на приложения се срине или базата данни се срине, услугата спира да работи.
От друга страна, мащабируемостта също е важна, повече потребители означава повече трафик и повече връзки към базата данни. Мащабируемостта може да бъде постигната чрез добавяне на повече ресурси в сървърите или добавяне на повече сървъри, така че трафикът да може да бъде разпределен между възлите, в противен случай производителността ще пострада.
Преобразуване от самостоятелна в клъстерирана база данни
Мигрирането на вашия самостоятелен възел към клъстерирана база данни може да отнеме известно време и не е безрискова операция. По-долу са стъпките, които трябва да предприемем:
- Трябва да направите резервно копие (използвайте mysqldump или xtrabackup).
- Инсталирайте базата данни във всички възли на базата данни с реплика.
- Възстановете резервното копие във възлите на репликата.
- Свържете възела на репликата към главния.
- Настройте ProxySQL и поддържайте активен пред възлите на базата данни
- Конфигуриране на балансиращите натоварвания ProxySQL (напр. създаване на хостгрупи, сървъри, потребители).
- Насочете конфигурацията на Moodle към новия виртуален IP адрес.
Как ClusterControl може да помогне
ClusterControl е софтуер за управление на база данни, който ви помага да разгръщате, наблюдавате и управлявате вашата база данни с отворен код. Ще се опитаме да мигрираме от самостоятелна архитектура на Moodle, както е показано по-долу:
Към архитектура на клъстерирана база данни, базирана на репликация:
Ще имате нужда от поне два сървъра за базата данни и два за база данни прокси (ще използваме ProxySQL като балансьор на натоварването) и поддържаща услуга за обслужване на виртуален IP адрес.
Ако приемем, че имаме работеща самостоятелна база данни MySQL:
Добавянето на още възли на базата данни в ClusterControl е наистина лесно, можете да отидете на Cluster Menu от дясната страна на вашия клъстер и Add Replication Slave.
Ще покаже нов диалог за Добавяне на нов подчинен, просто трябва да попълните IP адреса и след това просто щракнете върху бутона Добавяне на нов подчинен, както е показано по-долу:
Както можете да видите от екранната снимка, е възможно да зададете подчинения с данни от съществуващ архив. Това е, за да се избегне поточно предаване на всички данни от работещата главна база данни. След като подчинената база данни бъде разгърната, тя ще бъде подготвена с главни данни и ClusterControl ще се увери, че подчинената база данни се синхронизира с главната.
Можете да повторите стъпката, за да добавите друг възел-реплика.
Новата архитектура ще бъде както е показано по-долу:
Следващата стъпка е да добавите балансьор на натоварването пред базата данни. Балансьор на натоварване като ProxySQL е полезен, тъй като може да пренасочва заявките за запис към главния и заявките за четене към подчинените. По този начин вие разпределяте трафика на Moodle. Имайте предвид, че също така е възможно да направите настройка главен-главен въз основа на Galera Cluster за MySQL или MariaDB.
Ще използваме два балансира на натоварването за висока наличност. Можете да отидете на Управление -> Балансиране на натоварване в клъстера.
Трябва да попълните информация като адрес на сървъра, административна парола и парола за монитор, добавете потребителя на moodle в ProxySQL и след това просто щракнете върху Разгръщане на ProxySQL. Това ще предизвика нова работа. Повторете внедряването на другия възел за балансиране на натоварването.
Последното нещо е да конфигурирате keepalived за балансьорите на натоварване. Отидете на Manage -> Load Balancers, има раздел за Keepalived
Трябва само да изберете типа балансиране на натоварването и да го добавите към keepalived . Попълнете виртуалния IP адрес и мрежовия интерфейс. Щракнете върху бутона Внедряване на Keepalived.
Окончателната архитектура на нашата клъстерирана високодостъпна база данни Moodle ще бъде както е показано по-долу:
Трябва само да промените конфигурацията на връзката в config.php, сочеща dbhost към виртуалния IP адрес, който бяхме конфигурирали.
След като мигрирате към клъстерирана база данни, може да искате да поставите малко наблюдение във вашата база данни Moodle, което можете да следвате тези указания.