Co je to vysoká dostupnost?

Úvod

S rostoucí poptávkou po spolehlivých a výkonných infrastrukturách určených pro obsluhu kritických systémů nemohou být pojmy škálovatelnost a vysoká dostupnost populárnější. Zatímco zvládnutí zvýšené zátěže systému je běžným problémem, snížení výpadků a eliminace jednotlivých bodů selhání jsou stejně důležité. Vysoká dostupnost je kvalita návrhu infrastruktury v měřítku, která řeší tyto poslední zmíněné aspekty.

V této příručce se budeme zabývat tím, co přesně vysoká dostupnost znamená a jak může zvýšit spolehlivost vaší infrastruktury.

Co je to vysoká dostupnost?

V informatice se termín dostupnost používá k popisu doby, kdy je služba dostupná, a také doby, kterou systém potřebuje k tomu, aby odpověděl na požadavek uživatele. Vysoká dostupnost je vlastnost systému nebo komponenty, která zajišťuje vysokou úroveň provozního výkonu po danou dobu.

Měření dostupnosti

Dostupnost se často vyjadřuje v procentech, která udávají, jaká doba provozuschopnosti se od určitého systému nebo komponenty v daném časovém období očekává, přičemž hodnota 100 % by znamenala, že systém nikdy neselže. Například systém, který zaručuje 99 % dostupnost v období jednoho roku, může mít až 3,65 dne výpadku (1 %).

Tyto hodnoty se vypočítávají na základě několika faktorů, včetně plánovaných i neplánovaných období údržby a také doby obnovy po případném selhání systému.

Jak funguje vysoká dostupnost?

Vysoká dostupnost funguje jako mechanismus reakce na selhání infrastruktury. Způsob, jakým funguje, je koncepčně poměrně jednoduchý, ale obvykle vyžaduje určitý specializovaný software a konfiguraci.

Kdy je vysoká dostupnost důležitá ?

Při nastavování robustních produkčních systémů je minimalizace výpadků a přerušení služeb často vysokou prioritou. Bez ohledu na to, jak spolehlivé jsou vaše systémy a software, mohou nastat problémy, které mohou způsobit výpadek vašich aplikací nebo serverů.

Zavedení vysoké dostupnosti vaší infrastruktury je užitečnou strategií pro snížení dopadu těchto typů událostí. Vysoce dostupné systémy se mohou automaticky zotavit ze selhání serveru nebo komponenty.

Co dělá systém vysoce dostupným?

Jedním z cílů vysoké dostupnosti je eliminovat jednotlivé body selhání v infrastruktuře. Jediným bodem selhání je komponenta vašeho technologického zásobníku, která by v případě nedostupnosti způsobila přerušení služby. Za jediný bod selhání se proto považuje jakákoli komponenta, která je nezbytná pro správnou funkčnost vaší aplikace a která není redundantní.

Chcete-li eliminovat jednotlivé body selhání, musí být každá vrstva vašeho zásobníku připravena na redundanci. Představte si například, že máte infrastrukturu sestávající ze dvou identických, redundantních webových serverů za vyrovnávačem zátěže. Provoz přicházející od klientů bude rovnoměrně rozdělen mezi webové servery, ale pokud jeden ze serverů vypadne, vyrovnávač zátěže přesměruje veškerý provoz na zbývající online server.

Vrstva webových serverů v tomto scénáři nepředstavuje jediný bod selhání, protože:

  • existují redundantní komponenty pro stejnou úlohu
  • mechanismus na vrcholu této vrstvy (load balancer) je schopen detekovat selhání komponent a přizpůsobit své chování pro včasné obnovení

Ale co se stane, když load balancer vypadne?

Při popsaném scénáři, který není v reálném životě neobvyklý, zůstává samotná vrstva vyvažování zátěže jediným bodem selhání. Odstranění tohoto zbývajícího jediného bodu selhání však může být náročné; i když můžete snadno nakonfigurovat další vyrovnávač zátěže, abyste dosáhli redundance, nad vyrovnávači zátěže není zřejmý bod, kde by bylo možné implementovat detekci a obnovu po selhání.

Sama redundance nemůže zaručit vysokou dostupnost. Musí být zaveden mechanismus pro detekci selhání a přijetí opatření, když se jedna z komponent zásobníku stane nedostupnou.

Detekci a obnovu po selhání u redundantních systémů lze implementovat pomocí přístupu shora dolů: vrstva nahoře se stává odpovědnou za monitorování selhání vrstvy bezprostředně pod ní. V našem předchozím příkladovém scénáři je vrchní vrstvou vyrovnávač zátěže. Pokud se jeden z webových serverů (spodní vrstva) stane nedostupným, load balancer přestane přesměrovávat požadavky na tento konkrétní server.

Tento přístup bývá jednodušší, ale má svá omezení: v infrastruktuře bude existovat bod, kdy horní vrstva buď neexistuje, nebo je mimo dosah, což je případ vrstvy vyrovnávání zátěže. Vytvoření služby detekce selhání pro vyrovnávač zátěže v externím serveru by jednoduše vytvořilo nový jediný bod selhání.

Při takovém scénáři je nutný distribuovaný přístup. Více redundantních uzlů musí být spojeno dohromady jako cluster, kde by každý uzel měl být stejně schopný detekce a obnovy selhání.

Pro případ vyrovnávání zátěže však existuje další komplikace, a to kvůli způsobu fungování nameserverů. Obnova po selhání vyrovnávače zátěže obvykle znamená přechod na redundantní vyrovnávač zátěže, což znamená, že musí být provedena změna DNS, aby název domény směřoval na IP adresu redundantního vyrovnávače zátěže. Taková změna může trvat značnou dobu, než se rozšíří po internetu, což by způsobilo vážný výpadek tohoto systému.

Možným řešením je použití kruhového vyrovnávání zátěže DNS. Tento přístup však není spolehlivý, protože ponechává převzetí služeb při selhání na aplikaci na straně klienta.

Robustnějším a spolehlivějším řešením je použití systémů, které umožňují flexibilní přemapování adres IP, například plovoucí adresy IP. Přemapování IP adresy na vyžádání eliminuje problémy s šířením a ukládáním do mezipaměti, které jsou vlastní změnám DNS, tím, že poskytuje statickou IP adresu, kterou lze v případě potřeby snadno přemapovat. Název domény může zůstat spojen se stejnou adresou IP, zatímco samotná adresa IP se přesouvá mezi servery.

Takto vypadá vysoce dostupná infrastruktura využívající plovoucí adresy IP:

Jaké součásti systému jsou nutné pro vysokou dostupnost?

Pro zavedení vysoké dostupnosti v praxi je třeba pečlivě zvážit několik součástí. Mnohem více než na softwarové implementaci závisí vysoká dostupnost na takových faktorech, jako jsou:

  • Prostředí: Pokud jsou všechny servery umístěny ve stejné zeměpisné oblasti, může stav prostředí, jako je zemětřesení nebo záplavy, vyřadit celý systém. Pokud máte redundantní servery v různých datových centrech a geografických oblastech, zvýšíte tím spolehlivost.
  • Hardware: Vysoce dostupné servery by měly být odolné vůči výpadkům napájení a selhání hardwaru, včetně pevných disků a síťových rozhraní.
  • Software: Celý softwarový stack, včetně operačního systému a samotné aplikace, musí být připraven na zvládnutí neočekávaného selhání, které by potenciálně mohlo vyžadovat například restart systému.
  • Data: Ztráta a nekonzistence dat může být způsobena několika faktory a neomezuje se pouze na selhání pevného disku. Vysoce dostupné systémy musí počítat s bezpečností dat v případě selhání.
  • Síť: Neplánované výpadky sítě představují další možný bod selhání vysoce dostupných systémů. Je důležité, aby byla zavedena strategie redundantní sítě pro případná selhání.

Jaký software lze použít ke konfiguraci vysoké dostupnosti?“

Každá vrstva vysoce dostupného systému bude mít jiné potřeby, pokud jde o software a konfiguraci. Na aplikační úrovni však vyrovnávače zátěže představují základní část softwaru pro vytvoření jakéhokoli nastavení vysoké dostupnosti.

HAProxy (High Availability Proxy) je běžnou volbou pro vyrovnávání zátěže, protože zvládá vyrovnávání zátěže na více vrstvách a pro různé druhy serverů, včetně databázových serverů.

Pokračujete-li v systému výše, je důležité implementovat spolehlivé redundantní řešení pro vstupní bod aplikace, obvykle vyrovnávač zátěže. Abychom odstranili tento jediný bod selhání, musíme, jak již bylo zmíněno, implementovat cluster vyrovnávačů zátěže za plovoucí IP. Oblíbenou volbou pro vytvoření takové konfigurace jsou systémy Corosync a Pacemaker, a to jak na serverech Ubuntu, tak CentOS.

Závěr

Vysoká dostupnost je důležitou podmnožinou inženýrství spolehlivosti, která se zaměřuje na zajištění vysoké úrovně provozního výkonu systému nebo komponenty v daném časovém období. Na první pohled se její implementace může zdát poměrně složitá, nicméně může přinést obrovské výhody pro systémy, které vyžadují zvýšenou spolehlivost

.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.