Load Balancer, doporučené řešení pro Load Balancing, rozdělení zátěže, rozložení zátěže
V mnoha případech není vhodné či technicky realizovatelné, aby provoz náročných aplikací zajišťoval
jediný server. Z tohoto důvodu je nutné servery
sdružovat do skupin, tzv.
clusterů, a tímto způsobem dosáhnout požadované
kapacity a
výkonu. Celý tento proces je ale nutné nějakým sofistikovaným způsobem řídit, tak aby se všechny servery chovaly jako
jediný efektivně pracující systém, kde je pokud možno
rovnoměrné rozdělení zátěže mezi jednotlivé servery. Pro zajištění těchto funkcí se využívá metoda nazývaná
Load Balancing.
Obecným úkolem pro Load Balancing je právě rozložení zátěže mezi více serverů. K tomuto účelu slouží specializované zařízení Load Balancer, které vyhodnocuje aktuální zátěž jednotlivých serverů a rozděluje požadavky tomu serveru, který je v daném okamžiku méně vytížen. Většina Load Balancing systémů umožňuje spojit do clusteru velké množství členů, které ani nemusejí být stejně výkonné nebo mohou být specializované pro určitý typ rozdělení zátěže. S ohledem na způsob, jakým probíhá kontrola spojení na stavových a aplikačních firewallech, není sice možné zajistit naprosto stejné rozložení zátěže všech systémů, avšak v závislosti na kvalitě Load Balanceru se lze ideálnímu stavu poměrně hodně přiblížit.
Tradiční Load Balancing je z hlediska ISO/OSI modelu implementován na vrstvě 4, tedy na úrovni IP adresace. Toto Load Balancing řešení je však často nedostačující, což lze nejlépe dokumentovat na webových aplikacích.
Hlavním důvodem je virtualizace serverů , kdy požadavek směrovaný serveru na určité adrese a čísle portu může být fakticky vyřizován jedním z celé skupiny vzájemně zastupitelných serverů, které sdílí jednu společnou virtuální adresu a dělí se o zátěž zejména s cílem rovnoměrného rozdělení zátěže mezi sebe. Z tohoto důvodů nepostačuje rozhodovat se pouze podle síťové adresy a druhu provozu (podle čísla portu příjemce), ale je třeba brát v úvahu i další faktory. Na druhé straně pak dochází i k virtualizaci klientů, kde již nemusí platit původní jednoznačný vztah k adresám a číslům portů, zejména to, aby každý klient měl svou unikátní síťovou adresu. Je naprosto běžné, že uživatelé jsou i se svými klientskými programy schováni za nějaký firewall, a díky tomu jsou požadavky od různých klientů zasílány ze stejné síťové adresy odpovídající proxy bráně v rámci firewallu. K rozlišení těchto uživatelů lze využít existenci tzv. cookies, se kterými však lze pracovat až na úrovni aplikační vrstvy 7 ISO/OSI modelu.
Navíc často dochází ke specializaci serverů, takže některé mohou být optimalizovány třeba pro poskytování statických objektů jako jsou obrázky, zatímco jiné servery mohou být optimalizovány na provádění výkonných sekvencí, například různých druhů serverových skriptů či jiných forem programů, prováděných na straně serveru.
Dalším důležitým aspektem je persistentní charakter některých komunikací, kdy například v rámci jedné relace zabezpečené protokolem SSL by konkrétní uživatel měl komunikovat vždy se stejným serverem, který si tak může pamatovat historii celé relace podle tzv. Session ID SSL relace, které je opět rozpoznatelné až na úrovni aplikační vrstvy 7.
Kvalitní Load Balancer by tedy měl mít implementován Load Balancing nejen na 4. vrstvě, ale pro web servery také na 7. vrstvě. Stejně tak je velkou výhodou, má-li v sobě Load Balancer zabudován nějaký systém ochrany před vetřelci (Intrusion Detection System - IDS), který dokáže varovat před pokusy o zneužití výkonu.
Všechny tyto požadavky splňuje zařízení Barracuda Networks Load Balancer, které poskytuje komplexní řešení pro rozdělení výkonu pro internetové sítě s vysokými nároky na datový přenos: web, FTP, streaming audio a streaming video a sítě pro přenos souborů. Je určen rovněž pro hostované aplikace, které používají architekturu tenkých klientů, jako je Citrix nebo Windows Terminal Services. Uplatní se i u dalších IP služeb vyžadujících optimální výkon (SMTP, DNS, RADIUS a TFTP).
Barracuda Networks Load Balancer