====== High Availability (HA) ====== **High Availability (Vysoká dostupnost)** je vlastnost systému, která zajišťuje jeho provozuschopnost po dohodnutou dobu, která je vyšší než u běžných systémů. Cílem HA je eliminovat **Single Points of Failure (SPOF)** – tedy místa, jejichž selhání by vedlo k zastavení celé služby. V praxi HA znamená, že pokud selže jedna komponenta (např. zdroj v serveru, switch nebo celý fyzický hostitel), její roli okamžitě a automaticky přebírá jiná. ===== Měření dostupnosti (Devítky) ===== Dostupnost se vyjadřuje v procentech času, po který je služba v provozu za rok. Rozdíl mezi "třemi devítkami" a "pěti devítkami" může znamenat rozdíl mezi hodinami a sekundami výpadku. ^ Procento ^ Maximální výpadek za rok ^ Kategorie ^ | **99 %** | 3 dny, 15 hodin | Běžný standard | | **99.9 %** | 8 hodin, 45 minut | "Tři devítky" (Standardní HA) | | **99.99 %** | 52 minut, 35 sekund | "Čtyři devítky" (Enterprise HA) | | **99.999 %** | 5 minut, 15 sekund | "Pět devítek" (Kritické systémy) | ===== Základní principy HA ===== Aby systém mohl být považován za vysoce dostupný, musí splňovat tři podmínky: ==== 1. Redundance ==== Každá kritická komponenta musí být v systému alespoň dvakrát (nebo vícekrát). To platí pro: * **Hardware:** Dva zdroje v serveru, dvě [[hba|HBA]] karty, dva switche. * **Software:** Více běžících instancí aplikace za [[load_balancing|Load Balancerem]]. * **Data:** Data uložená na [[raid|RAID]] polích nebo replikovaná do jiného úložného systému. ==== 2. Detekce selhání ==== Systém musí být schopen okamžitě rozpoznat, že některá část přestala fungovat. K tomu se používají mechanismy jako **Heartbeat** (pravidelné "pípnutí" mezi servery). ==== 3. Automatické převzetí (Failover) ==== Jakmile je detekováno selhání, musí dojít k automatickému přesunu provozu na funkční komponentu bez zásahu člověka. ===== HA na různých vrstvách ===== * **Úroveň serveru:** Použití technologií jako **Clustering** (např. Windows Failover Cluster nebo Pacemaker v Linuxu). Pokud jeden server spadne, druhý převezme jeho úkoly. * **Úroveň virtualizace:** [[hypervisor|Hypervisory]] (VMware ESXi, Proxmox) detekují pád fyzického uzlu a automaticky restartují všechny jeho virtuální stroje na ostatních funkčních uzlech v clusteru. * **Úroveň sítě:** Použití protokolů jako **LACP** (spojení linek) nebo **VRRP** (virtuální IP adresa pro routery). * **Úroveň úložiště:** [[multipathing|Multipathing]] pro cesty k datům a synchronní replikace mezi diskovými poli. ===== Rozdíl mezi HA a Fault Tolerance (FT) ===== Tyto pojmy se často pletou, ale je mezi nimi zásadní rozdíl v nákladech a dopadu na uživatele: * **HA (High Availability):** Při selhání může dojít ke krátkému přerušení (např. restartování VM trvá 1-2 minuty). Je cenově dostupnější. * **FT (Fault Tolerance):** Zajišťuje nulový výpadek. Dva systémy běží v naprostém souladu, instrukci po instrukci. Při pádu jednoho druhý pokračuje bez jediné sekundy prodlevy. Je extrémně drahé na hardware i síťovou kapacitu. --- **Související termíny:** [[failover|Failover]], [[disaster_recovery|Disaster Recovery]], [[load_balancing|Load Balancing]], [[cluster|Cluster]], [[multipathing|Multipathing]].