V této třídílné sérii blogů vysvětlíme podrobnosti a funkčnost rámce vysoké dostupnosti (HA) pro hostování MySQL pomocí semisynchronní replikace MySQL a zásobníku Corosync plus Pacemaker. V části I vás provedeme základy vysoké dostupnosti, komponentami rámce HA, a poté vás seznámíme s rámcem HA pro MySQL.
Co je vysoká dostupnost?
Dostupnost počítačového systému je procento doby, kdy jsou jeho služby během určitého časového období k dispozici. Obecně se vyjadřuje jako řada 9. Například tabulka níže ukazuje dostupnost a odpovídající prostoje měřené za jeden rok.
Dostupnost % | Prostoj za rok |
90 % („jedna 9 “) | 36,53 dne |
99 % („dvě 9s “) | 3,65 dne |
99,9 % („tři 9s “) | 8,77 hodin |
99,99 % („čtyři 9s “) | 52,60 minut |
99,999 % („pět 9s “) | 5,26 minut |
99,9999 % („šest 9s “) | 31,56 sekund |
Význam vysoké dostupnosti se liší v závislosti na požadavcích vaší aplikace a podnikání. Pokud si například nemůžete dovolit výpadek delší než několik minut ročně ve své službě, říkáme, že služba musí mít 99,999% vysokou dostupnost.
Součásti rámce HA
Podstatou vysoké dostupnosti je schopnost okamžitě se zotavit ze selhání, ke kterým může dojít v jakékoli části systému. V jakémkoli rámci HA jsou čtyři velmi důležité komponenty, které musí spolupracovat automatizovaným způsobem, aby umožnily tuto obnovitelnost. Podívejme se podrobně na tyto součásti:
1. Redundance v infrastruktuře a datech
Aby byla služba vysoce dostupná, musíme zajistit redundanci v hostingu infrastruktury a také aktuální redundanci kopie údajů, které služba používá nebo poskytuje. Funguje to jako pohotovostní služba připravená převzít řízení v případě, že primární bude zasaženo selháním.
2. Mechanismus detekce a nápravy poruch
Je nesmírně důležité okamžitě detekovat jakékoli selhání v jakékoli části primárního systému, které může ovlivnit jeho dostupnost. To frameworku umožní buď provést nápravná opatření na stejném primárním systému, nebo přepnout služby při selhání do pohotovostního systému.
3. Mechanismus převzetí služeb při selhání
Tato komponenta zodpovídá za převzetí služeb při selhání do vaší pohotovostní infrastruktury. Vezměte prosím na vědomí, že v případě, že je k dispozici více redundantních systémů, musí tato součást mechanismu převzetí služeb při selhání identifikovat mezi nimi nejvhodnější systém a propagovat jej jako primární službu.
4. Mechanismus přesměrování aplikace/uživatele
Jakmile záložní systémy převezmou funkci primární, tato komponenta zajistí, že všechna připojení aplikací a uživatelů se začnou dít k novému primárnímu.
P>Vysvětlení rámce MySQL High Availability Framework – část IClick To Tweet
Rozhraní HA pro MySQL
Na základě výše uvedeného modelu používáme pro náš hosting MySQL na ScaleGrid následující rámec HA:
- Nastavení se 3 uzly Master-Slave využívající semisynchronní replikaci MySQL k zajištění infrastruktury a redundance dat.
- Sada Corosync plus Pacemaker poskytuje detekci selhání, opravu a mechanismus převzetí služeb při selhání.
- Mapování DNS nebo součást virtuální adresy IP, která poskytuje mechanismus přesměrování aplikace a uživatele.
Podívejte se na níže uvedený diagram, abyste si vizualizovali softwarový balík této architektury:
Podívejme se na funkčnost některých klíčových komponent v tomto rámci.
-
Corosync
Corosync poskytuje komunikační rámec pro uzly se spolehlivým předáváním zpráv mezi nimi. Vytváří klastrový kruh uzlů a sleduje, jak se uzly připojují a opouštějí klastr prostřednictvím členství v klastru. Corosync úzce spolupracuje s Pacemakerem na komunikaci o dostupnosti uzlů, aby Pacemaker mohl přijímat příslušná rozhodnutí.
-
Pacemaker
Pacemaker, známý také jako Cluster Resource Manager (CRM), zajišťuje vysokou dostupnost pro MySQL běžící na clusteru a zjišťuje a řeší selhání na úrovni uzlů prostřednictvím propojení s Corosync. Také detekuje a řeší selhání MySQL prostřednictvím propojení s Resource Agent (RA). Pacemaker konfiguruje a spravuje prostředky MySQL prostřednictvím operací spouštění, zastavování, sledování, povýšení a snížení úrovně.
-
Agent zdrojů
Agent prostředků funguje jako rozhraní mezi MySQL a Pacemakerem. Implementuje spouštění, zastavování, povyšování, snižování úrovně a monitorování operací, které jsou vyvolány kardiostimulátorem. Existuje plně funkční Resource Agent s názvem Percona Replication Manager (PRM) pro MySQL implementovaný společností Percona. Toto bylo vylepšeno ScaleGrid a je k dispozici na naší stránce GitHub.
-
Komponenta mapování DNS
Agent prostředků po dokončení úspěšného převzetí služeb při selhání vyvolá tuto komponentu, která aktualizuje záznamy DNS hlavního serveru MySQL o IP adresu nového hlavního serveru. Upozorňujeme, že klienti vždy používají hlavní název DNS pro připojení k serveru MySQL a správou mapování tohoto názvu DNS na IP adresu aktuálního hlavního serveru můžeme zajistit, že klienti nebudou muset měnit své připojovací řetězce nebo vlastnosti, když došlo k převzetí služeb při selhání.
V části II této série blogů se dozvíte o kritické komponentě redundance dat, které je dosaženo pomocí semisynchronní replikace MySQL. Také se ponoříme hluboko do podrobností a konfigurací semisynchronní replikace, které používáme k dosažení naší podpory vysoké dostupnosti, a nakonec zkontrolujeme různé scénáře selhání v části III a způsob, jakým framework reaguje a zotavuje se z těchto podmínek.