sql >> Databáze >  >> RDS >> Mysql

Jak migrovat samostatný Moodle do klastrovaného škálovatelného nastavení databáze

Online vzdělávání v dnešní době rychle nabírá na síle od vypuknutí pandemie COVID-19. Většina vzdělávacích institucí musí nastavit platformy pro online vzdělávání a téměř všichni studenti musí mít přístup k platformě pro učení a interakci s učiteli. Moodle je jedním z open source systémů pro řízení výuky online, 

Vysoká dostupnost platformy Moodle je pro instituce nutností, jinak to přeruší a zastaví proces online výuky. Vzhledem k tomu, že k platformě přistupuje mnoho studentů současně, je důležitá dostupnost a škálovatelnost. V tuto chvíli potřebují vzdělávací instituce mít znalosti a architekturu platformy, vysokou dostupnost a škálovatelnost Moodle. Pokud byste se chtěli dozvědět více o tom, jak migrovat samostatný Moodle do klastrované databáze Scalable, můžete postupovat podle tohoto návodu.

Moodle v režimu „Jeden bod selhání“

Samostatná platforma Moodle se skládá z jednoho serveru a všeho nainstalovaného na serveru (databázový a aplikační server na jednom místě). Nebo máte 2 servery, což je pro aplikační server a databázový server, jak je popsáno na obrázku níže:

Obě architektury postrádají dostupnost a škálovatelnost služby. Z hlediska dostupnosti si dokážete představit, že pokud server spadne, na serveru neběží žádné služby. Pokud dojde k selhání aplikačního serveru nebo selhání databáze, služba přestane fungovat.

Na druhou stranu je důležitá i škálovatelnost, více uživatelů znamená větší provoz a více připojení k databázi. Škálovatelnosti lze dosáhnout přidáním více zdrojů na servery nebo přidáním více serverů, aby bylo možné provoz rozdělit mezi uzly, jinak utrpí výkon.

Převod ze samostatné na klastrovanou databázi

Migrace vašeho samostatného uzlu do klastrované databáze může nějakou dobu trvat a není to operace bez rizika. Níže jsou uvedeny kroky, které musíme provést:

  1. Musíte si udělat zálohu (použijte mysqldump nebo xtrabackup).
  2. Nainstalujte databázi do všech uzlů replikované databáze.
  3. Obnovte zálohu do uzlů repliky.
  4. Připojte uzel repliky k hlavnímu serveru.
  5. Nastavení ProxySQL a udržování stavu před uzly databáze
  6. Nakonfigurujte nástroje pro vyrovnávání zatížení ProxySQL (např. vytvořte skupiny hostitelů, servery, uživatele).
  7. Nasměrujte konfiguraci Moodle na novou virtuální IP adresu.

Jak může ClusterControl pomoci 

ClusterControl je software pro správu databází, který vám pomůže nasadit, monitorovat a spravovat vaši open source databázi. Pokusíme se provést migraci ze samostatné architektury Moodle, jak je uvedeno níže:

K architektuře klastrované databáze založené na replikaci:

Budete potřebovat alespoň dva servery pro databázi a dva pro databázi proxy (jako nástroj pro vyrovnávání zatížení budeme používat ProxySQL) a službu keepalived pro obsluhu  virtuální IP adresy.

Za předpokladu, že máme spuštěnou samostatnou databázi MySQL:

Přidání dalších databázových uzlů v ClusterControl je opravdu jednoduché, můžete přejít na Nabídka Cluster na pravé straně vašeho clusteru a Add Replication Slave.

Ukáže se nový dialog pro přidání nového otroka, stačí vyplnit IP adresu a poté klikněte na tlačítko Add New Slave, jak je znázorněno níže:

Jak můžete vidět na snímku obrazovky, je možné nasadit slave s daty ze stávající zálohy. Tím se zabrání streamování všech dat ze spuštěné hlavní databáze. Jakmile je podřízená databáze nasazena, bude připravena hlavními daty a ClusterControl zajistí, aby se podřízená databáze synchronizovala s hlavní.

Tento krok můžete zopakovat a přidat další uzel repliky.

Nová architektura bude vypadat následovně:

Dalším krokem je přidání nástroje pro vyrovnávání zatížení před databázi. Nástroj pro vyrovnávání zatížení, jako je ProxySQL, je užitečný, protože může přesměrovat požadavky na zápis na master a požadavky na čtení na podřízené. Tímto způsobem distribuujete provoz Moodle. Všimněte si, že je také možné provést master-master nastavení založené na Galera Cluster pro MySQL nebo MariaDB.

Pro vysokou dostupnost použijeme dva nástroje pro vyrovnávání zatížení. Můžete přejít na Spravovat -> Load Balancers v clusteru.

Musíte vyplnit některé informace, jako je adresa serveru, administrátorské a monitorovací heslo, přidejte uživatele moodle do ProxySQL a poté klikněte na Nasadit ProxySQL. Spustí novou práci. Opakujte nasazení na jiném uzlu nástroje pro vyrovnávání zatížení.

Poslední věcí je nakonfigurovat keepalived pro load balancery. Přejděte na Manage -> Load Balancers, tam je záložka pro Keepalived

Stačí si vybrat typ nástroje pro vyrovnávání zatížení a přidat ho do keepalved . Vyplňte virtuální IP adresu a síťové rozhraní. Klikněte na tlačítko Deploy Keepalived.

Konečná architektura naší seskupené vysoce dostupné databáze Moodle bude vypadat následovně:

Stačí změnit konfiguraci připojení v config.php s odkazem na dbhost na virtuální IP adresu, kterou jsme nakonfigurovali.

Po migraci na klastrovanou databázi možná budete chtít do své databáze Moodle vložit monitorování, podle kterého se můžete řídit těmito pokyny.


  1. Jak replikovat pouze INSERTy, nikoli DELETE/UPDATE na Slony Slave Node?

  2. Vraťte typ spouštěče DML na tabulku na serveru SQL

  3. PostgreSQL vs. MySQL:Co je nejlepší?

  4. Rozdělení dat pro rozsáhlé aplikace