Load balancer

**Load balancing** (koji izvršava **load balancer**) je tip servisa koji izvršava računar koji dodjeljuje radno opterećenje grupi (umreženih) serverskih stanica tako da se kompjuterski resursi koriste optimalno.

## Uvod 
Load balancer se koristi da poveća kapacitet farme servera u odnosu na kapacitet samo jednog servera. Također omogućava pružanje usluga čak i uslijed pada servera (oborenosti) koje može biti uslijed kvara (nefunkcionisanja servera) ili održavanja.

Load balancer se sastoji od virtuelnog servera (poznatog i kao vserver ili VIP) koji se zauzvrat sastoji od IP adrese i porta. Ovaj virtuelni server je ograničen brojem fizičkih (stvarnih) servisa pokrenutih na fizičkim serverima u farmi servera. Ovi fizički servisi sadrže serverovu fizičku IP adresu i port. Klijent šalje zahtjev virtuelnom serveru koji zauzvrat bira fizički server u farmi servera i upućuje ovaj zahtjev izabranom fizičkom serveru.

Različiti virtuelni serveri mogu biti definisani za različite grupe fizičkih servisa, kao što su TCP i UDP servisi uopšteno. Protokolski virtuelni serveri ili virtuelni serveri vezani za određenu aplikaciju koji mogu biti podržani uključuju HTTP, FTP, SSL, SSL BRIDGE, SSL TCP, NNTP i DNS.

Metodi load balancing-a su zaduženi za izbor odgovarajućeg fizičkog servera u farmi servera.

Dosljednost se može podesiti na virtuelnom serveru. Jednom kad je server izabran, slijedeći zahtjevi klijenta su upućeni istom serveru. Dosljednost je neophodna u aplikacijama gdje se stanje održava na serveru, kao što su aplikacije potrošačkih korpi (shopping cart).

Load balancer također izvršava nadgledanje servisa u farmi web servera. U slučaju ispada servisa, load balancer nastavlja izvršavanje load balancing-a preko preostalih servisa. U slučaju ispada svih servera povezanih sa virtuelnim serverom, zahtjev može biti poslat rezervnom virtuelnom serveru (ako je definisan) ili opciono preusmjeren na definisani URL. Naprimjer, na stranicu na lokalnom ili udaljenom serveru koja daje informacije o održavanju ili ispadu.

Tipovi servera koji mogu biti raditi sa load balancer-om su:
* Farme servera
* Cache-evi
* Firewall-ovi
* Sistemi za detekciju upada
* SSL offload ili kod upotrebe kompresije

Kod Global Server Load Balancing-a (GSLB) load balancer raspoređuje opterećenje geografski distribuiranim grupama farmi servera baziranih na "zdravlju", opterećenju servera/opterećenju ili blizini.

## Metodi load balancing-a 
* Najmanje veza
* Round robin
* Najmanje vrijeme odziva
* Najmanja propusnost
* Najmanje paketa
* Token
* URL hashing
* Domain name hashing
* Izvorišna IP adresa
* Destinaciona IP adresa
* Izvorišni IP - destinacija
* RTT, koristi se za GSLB
* Statični blizinski, koristi se za GSLB

## Dosljednost (persistence) 
Kada load balancer inicijalno odabere određeni fizički (stvarni) server i proslijedi zahtjev klijenta tom fizičkom serveru, onda je za neke aplikacije potrebno da svi naredni zahtjevi tog klijenta budu poslati istom fizičkom serveru, radi pristupa informacijama o stanju tog klijenta.

### Najčešći vidovi dosljednosti 
* Izvorišna IP
* Umetanje cookie-a
* ID SSL sesije
* pasivnost u odnosu na URL
* Posebni ID servera
* Pravilo
* Destinaciona IP
* Izvorišna i destinaciona IP
i jos neke nemam pojma

## Monitoring 
Server monitoring (nadzornik) provjerava stanje nekog od servera tako što povremeno isprobava navedenu destinaciju. S obzirom na odgovor, sprovodi odgovarajuću aciju. Monitor specificira vrstu zahtjeva koja je poslata serveru i očekivani odgovor servera. Sistem za load balancing šalje povremene zahtjeva serveru. Odgovor servera mora stići prije definisanog vremena isteka zahtjeva. Ako zadati broj testova bude neuspješan, server se označava kao "OBOREN" ("DOWN") i naredni test se šalje nakon definisanog vremena oborenosti (down time). Destinacija testa može biti različita od IP adrese i porta servera. Load balancer može podržavati više nadzornika. Kada je servis povezan sa više nadzornika, status servisa određuju rezultati koje su poslali svi monitori.

### Najčešći tipovi nadzornika 
* Ping
* TCP veza
* Aplikacija, *npr.*, upit i provjera očekivanog odgovora

Kategorija:Računarske mreže