Nazev projektu: Load Balancer Vedouci: Vaclav Petricek petricek@ksi.mff.cuni.cz Pocet ucastniku: 4 Beznou technikou skalovani systemu pri jejich vetsim zatizeni je vystavba serverovych farem. Distribuce pozadavku mezi nimi muze byt provadena pomoci DNS round-robin. Rozlozeni pozadavku mezi servery ale pak neni rovnomerne a neni mozne ho jemne ladit, natoz pak specificky smerovat dotazy urciteho typu na specializovane servery. Prave z vyse uvedenych duvodu se nasazuji tak zvane load balancery, ktere na zaklade zadanych pravidel rozkladaji zatez mezi servery, ktere mohou byt nestejne vykonne a ruzne optimalizovane (staticke stranky x cgi skripty x streaming servery). Load balancer se rozhoduje na zaklade administratorem urcene konfigurace, dostupnosti serveru, jejich aktualniho vytizeni, vykonu za posledni dobu, typu pozadavku, zdrojove a cilove adresy ci portu. Nasazeni load balanceru tak prinasi zrychleni vyrizeni pozadavku, snizeni naroku a nakladu na HW serveru a ochranu pred vypadky jednotlivych serveru. nerovnomerne rozlozeni Cil projektu: Implementovat free softwarovy modularni load balancer, ktery bude mit alespon nasledujici vlastnosti. - Bude detekovat dostupnost serveru a distribuovat pozadavky jen mezi zivymi. - Bude pouzitelny pro vyvazovani zateze web, mail, news a dalsich serveru. - Bude podporovat tak zvany Layer4-7 switching - Bude umet smerovat pozadavky podle jejich typu (content-type, .cgi, .php, .jpg, cookies ...). - Bude umet smerovat pozadavky podle zdrojove/cilove IP adresy ci portu. - Bude podporovat "session persistence" = uzivatelova session probehne na jednom serveru a nebude dochazet k preskakovani mezi servery. - Bude monitorovat vykon serveru a udrzovat vsechny servery rovnomerne vytizene. (umozni stavet farmy z nestejne vykonych serveru) - Bude modularni a bude umoznovat instalaci/prelozeni jen nezbytne nutnych casti kodu tak aby experimentalni vlastnosti nezpomalovaly a nesnizovaly stabilitu balanceru. - Bude konfigurovatelny za behu bez vypadku sluzby. - Bude umoznovat pridavani a ubirani serveru farmy za behu. - Soucasti projektu bude i modul pro online monitoring a prezentaci nejruznejsich statistik (toky dat, sessions, rychlosti odezvy, pocty dotazu, prubehy v ruznych obdobich ...). - implementaci bude kladen duraz na stabilitu, vykon a modularitu. Platforma: FreeBSD + Linux Implementace: C nebo C++ Nektere existujici projekty a produkty: http://balance.sourceforge.net (jednoducha TCP proxy) http://www.nortelnetworks.com/products/01/alteon/webswitch/ (HW balancer) http://www.coyotepoint.com/ (HW balancer) http://www.zeus.com/products/zlb/ (komercni)