load balancing uz pomoć nlb alata na windows serveru
DESCRIPTION
Load balancing uz pomoć NLB alata naWindows ServeruTRANSCRIPT
-
1
UNIVERZITET U SARAJEVU
ELEKTROTEHNIKI FAKULTET U SARAJEVU
Seminarski rad
Load balancing uz pomo NLB alata na
Windows Serveru
Grupa 3
Sarajevo, juni 2015.
-
2
Sadraj
Apstrakt ................................................................................................................................. 3
1. Uvod .............................................................................................................................. 4
1.1. Load Balancing (LB) ............................................................................................. 5
1.1.1. LB algoritam .................................................................................................. 7
1.1.2. Postojea rjeenja .......................................................................................... 7
1.2. Cluster-ing ............................................................................................................. 8
2. Praktina realizacija LB uz pomo NLB alata .............................................................. 9
Zakljuak ............................................................................................................................. 19
Literatura ............................................................................................................................. 20
-
3
Apstrakt
LB (Load Balancing) je optimizacioni metod za dobijanje maksimalnih karakteristika
sistema, kao to su bolja iskoritenost procesora, vea propusnost, bri odziv sistema i sl.
Load Balancing sistemi koriste optimizacione metode, koje omoguavaju balansiranje
optereanja servera, koji pruaju web usluge. NLB je cluster-ing tehnologija, koja koristi
distributivni algoritam za uitavanje izbalansiraniog mrenog saobraaja kroz nekoliko
hostova, nudei na taj nain visoku dostupnost, detektovanje greaka, te automatsko
redistribuiranje saobraaja ka operativnim hostovima.
Kljune rijei: Load Balancing, NLB (Network Load Balancing), cluster-ing
-
4
1. Uvod
U doba napretka informacijskih sistema, te nezaustavljivog poveanja vrijednosti
pohranjenih podataka i vanosti dostupnosti tih podataka, dovelo je do drastinog porasta
broja raunarskih sistema. Upravo zbog toga, koliina saobraaja na Internet-u je sve vee,
saobraaj je sve gui, to za posljedicu ima veu optereenost web servera. Vee i
posjeenije web lokacije se ve due vrijeme susreu s ovim probelmom. Vie je naina za
rijeavanje ovog problema, meutim sva rjeenja se baziraju na zamjeni jednog monog i
skupog servera sa nekoliko servera, neto skromnijeg kvaliteta, koji zajedno djelujui
pruaju izuzetno dobre performanse, znatno bolje od onih koje prua jedan server.
Jedan od naina za rijeavanje pomenutog problema jeste CGI (Common Gateway
Interface). CGI je specifikacija interface-a, koja omoguava komunikaciju izmeu
klijentskih programa i informacijsikih servera, koji razumiju HTTP (Hyper-Text Transfer
Protocol). CGI skripte uglavnom izvode jednostavna procesiranja za klijentsku stranu. U
ovom sluaju CGI na osnovu IP adrese dolazeeg zahtjeva vri preusmjeravanje na
odgovarajui server. Sljedee rjeenje je hardversko rjeenje, koje je razvila kompanija
CISCO. Ovo rjeenje se sastoji od dva ureaja. Local Director i Distributed Director. Prvi
ureaj se koristi unutar jedne LAN mree, a drugi ureaj prevazilazi sva ogranienja.
Jedno od rjeenja se bazira na NAT (Network Address Translation) sofrware-u.
Kao najvei proizvoa software-a u svijetu Microsoft nudi svoje rjeenje ovog problema.
Ona dolaze sa instalacijama: W2K Advanced i Datacenter Server, Windows Server 2003 i
ISA Server 2004.
U prvom dijelu ovog rada bie predstavljen sam pojam load balancing (LB), te prednosti i
mane istog. Obzirom da je za LB neophodno kreiranje cluster-a, u ovom dijelu e biti rijei
o nainu kreiranja cluster-a, te o vanosti istih.
U drugom dijelu je prezentiran kraki primjer LB-a koritenjem Microsoft-ovog alata NLB
(Network Load Balancing). Dat je detaljan opis konfiguracije i nain koritenja ovog alata.
Na samom kraju dat je zakljuak, koji proizilazi iz provedenog istraivanja.
-
5
1.1. Load Balancing (LB)
LB (Load Balancing) je optimizacioni metod za dobijanje maksimalnih karakteristika
sistema, kao to su bolja iskoritenost procesora, vea propusnost, bri odziv sistema i sl.
Load Balancing sistemi koriste optimizacione metode, koje omoguavaju balansiranje
optereanja servera, koji pruaju web usluge. Kao osnovni parametar prilikom prorauna
potrebnog kapaciteta linkova ka serveru, najee se uzima planirani broj korisnika po
lokaciji. Zanimljiv sadraj privlai desetine, stotine hiljada korisnika dnevno. Ovo
optereenje dovodi do smanjenja brzine odziva, to korisnici najvie i osjeaju.
Rjeenje lei u zamjeni jednog monog i skupog servera sa nekoliko servera, neto
skromnijeg kvaliteta, koji zajedno djelujui pruaju izuzetno dobre performanse, znatno
bolje od onih koje prua jedan server.
Klasian Load Balancing se koristi za ravnomjerno distribuiranje raunarskog
izraunavanja na multiprocesore u cilju njihovog maksimalnog iskoritenja, uz miniziranje
ukupnog vremena izvrenja zadataka [1]. Problem se dijeli na fiksan broj procesa koji
treba da se izvre paralelno. Svaki proces izvrava poznatu koliinu rada.
Klasini LB se sastoji od etiri dijela:
Podjele programa na particije skupa zadataka (partitioning)
Dodjeljivanje ovih zadataka pojedinim procesorima (assignment)
Odreivanje najbolje komunikacione putanje (routing)
Rasporeivanje-planiranje zadataka (scheduling) rasporeivanje podrazumijeva
odreivanje redoslijeda izvravanja zadataka, koji su dodjeljeni svakom procesoru
(tako da se relacije zavisnosti ne narue i da odgovarajue funkcije optimizuju) i
odreivanje trenutka poetka izvrenja pojedinih zadataka.
Razlikuje se dva naina rada load balancing-a: statiki i dinamiki. Statiki LB se obino
posmatra kao problem mapiranja ili scheduling-a (rasporeivanja).
-
6
Slika 1.1 Statiki Load Balancing
Za procesore/raunare povezane mreama sa statinim-linkovima, komunikacioni procesi
treba da budu izvreni na procesorima sa direktnim komunikacionim putanjama da bi se
smanjila komunikaciona kanjenja. Ovo je sutinski dio problema mapiranja za takve
sisteme. Rjeenje moe da zahtjeva razliita mapiranja za razliite mree. Algoritam je NP
- hard (nondeterministically polynomial hard). Zato se koristi heuristika.
Statiki LB ima nekoliko mana, ak i kad postoje matematika rjeenja:
Veoma je teko precizno procijeniti vremena izvravanja razliitih dijelova
programa, bez stvarnog izvrenja tih dijelova.
Komunikaciona kanjenja, koja variraju na nekontrolisan nain.
Neki problem imaju neogranien broj koraka, pri dobijanju rjeenja
Kod dinamikog LB-a, svi ovi ovi faktori se uzimaju u obzir dijelei optereenje zavisno
od zavisno od izvrenja dijelova. Kao rezultat toga, javlja se dodatni overhead za vrijeme
izvravanja programa, ali je dinamiki LB-a efikasniji od prethodno opisang statinog LB-
a.
Razlikuje se centralizovani i decentralizovani dinamiki LB. Centralizovani LB ima
klasinu master-slave strukturu. Kod decentralizovanog LB, procesi meusobno integriraju
da bi rijeili odreeni problem.
-
7
1.1.1. LB algoritam
U osnovi LB-a (Load Balancing) lei odreeni algoritam. Raspodjela zahtjeva izmeu
grupe server, obuhvaenih LB sistemom, vri se po odgovarajuem algoritmu. LB
algoritmi su u osnovi projektovani da ravnomjerno rasporede optereenje na procesore i
maksimizuju njihovo iskoritenje uz minimiziranje ukupnog vremena izvrenja zadataka.
Prema tome, LB mehanizam treba da bude pravedan, prilikom raspodjele optereenja na
procesore. Razlika izmeu servera, koji su slabo optereeni i onih koji su vie optereeni,
bi trebala biti minimalna. Informacije o trenutnom optereenju servera bi trebale biti
redovno aurirane, kako bi LB mehanizam bio efikasan. LB algoritme mogu je klasificirati
na vie naina. Pa tako, razlikuju se statiki i dinamiki LB algoritmi, zatim centralizovani
i decentralizovani algoritmi, periodini i neperiodini, te algoritmi sa pragovima i algoritmi
bez pragova.
Ukoliko se koristi centralizovani algoritam LB, sve informacije skuplja centralni procesor,
koji e na osnovu tih informacija i donijeti sve LB odluke. Ovaj centralni procesor se jo
naziva centralni rasporeiva (scheduler). Kod decentralizovanog LB algoritma, LB
odluke se mogu donijeti na bilo kojem procesoru, obzirom da svaki sadri tabelu sa
auriranim informacijama. Centralizovani algoritmi su manje pouzdani, jer greka
centralnog rasporeivaa e rezultovati neispravnim funkcionisanjem LB sistema.
1.1.2. Postojea rjeenja
Najjednostavniji, pa samim tim i najzastupljeniji algoritam u LB sistemima je Round Robin
algoritam. Round Robin proziva redom servere iz dodjeljenog skupa servera. Prozvani
server potom postaje posljednji u nizu, drugi u nizu postaje prvi i tako redom. Ovaj
algoritam je lako implementirati.
Round Trip Time (RTT) algoritam mjeri kruno kanjenje unutar grupe servera koji
balansiraju optereenje. Server sa najmanjim krunim kanjenjem, dobija zahtev na
obradu.[2]
Leastconn algoritam bira najpodesniji server na osnovu broja konekcija po serveru.
Serveru sa najmanjim brojem konekcija se proslijeuje pristigli zahtjev. Na slian nain
radi i algoritam Weighted. On donosi odluku na osnovu broja zahtjeva po serveru. Server
sa najmanjim brojem zahtjeva dobija novopristigli zahtev na obradu. [2]
-
8
1.2. Cluster-ing
Cluster je skup raunara, koji tijesno sarauju, pri rijeavanju odreenih zadataka, tako da
funkcioniu kao jedan raunar. vorovi cluster-a esto su povezani brzom LAN mreom, a
namjena im je poveati performanse i dostupnost u usporedbi s jednim raunarom,koji
izvrava iste zadatke. Pri tome su ovi sistemi daleko jeftiniji od pojedinanih raunara
usporedivih performansi.
Cluster sistemi mogu sadravati samo dva servera, od kojih jedan aktivno posluuje
klijentske zahtjeve, dok drugi pasivno eka kvar prvog servera.
Ako bi dva spomenuta servera preuzimala klijentske zahtjeve u ovisnosti o vlastitim i
raspoloivim resursima drugog vora, osim poveanja raspoloivosti takav sstem
implementirao bi upravljanje optereenjem. U sluaju da se cluster koristi za provoenje
matematikih prorauna koje je mogue paralelizirati, dva servera bi proraun izvrila
dvostruko bre od jednog raunara i tada bi oni inili cluster visokih performansi. Ovo su
jednostavni primjeri, a stvarne implementacije cluster-a mogu ukljuivati do nekoliko
hiljada raunara, servere smjetene na suprotnim stranama svijeta ili sloene algoritme za
raspodjeljivanje i migraciju zadataka meu vorovima.[3]
-
9
2. Praktina realizacija LB uz pomo NLB alata
U ovom dijelu bie predstavljen jednostavan primjer Load Balancing-a, koritenjem
Microsoft-ovog alata NLB (Network Load Balancing). NLB je Microsoft-ovo rjeenje za
balansiranje mrenog sabraaja, a odnosi se na aplikacije koje koriste servise kao to su:
Web, FTP (File Transfer Protocol), e-mail [2]. Ovaj softver omoguava upravljanje
grupom servisa kako da je rije o jednom servisu. U praksi se najese koristi za
distriburanje zahtjeva Web klijenata grupi servera. Prva prednost ovog rjeenja je
mogunost statistike obrade saobraaja od strane IIS tako da je u sluaju poveanja
saobraaja na mrei mogue dodati nove servere i to bez prekidanja izvrenja servisa. NLB
se odlikuje i visokom pouzdanou i fleksibilnou. Ukoliko neki od servera otkae, sistem
detektuje pad u roku od 5 sekundi, a u roku od 10 sekundi izvri preraspodjelu saobraaja
koristei preostale servere.[1]
Za potrebe ovog seminarskog rada, koritena je vrlo jednostavna ema, prikazana na slici
2.1.
Slika 2.1 ema prema kojoj je realizovan LB (Load Balancing)
Za realizaciju gore prikazane eme, potrebna su tri windows servera, u ovom primjeru
koriteni su serveri Windows Server 2012. Na svim koritenim serverima je potrebno
instalirati NLB (Network Load Balancing).
-
10
Svim komponentama potrebno je dodjeliti odgovarajuu IP adresu, te omoguiti
povezanost ovih komponenti. Kao to se vidi na slici 2.1 WEB1 i WEB2 serveri imaju po
dva interfejsa, dok LB ima jedan interfejs. Na narednim slikama prikazan je nain
podeavanja IP adresa na svim interfejsima.
Slika 2.2 Podeavanje IP adrese na WEB1 Management interfejsu
-
11
Slika 2.3 Podeavanje IP adrese na WEB1 NLB interfejsu
Slika 2.4 Podeavanje IP adrese na WEB2 Management interfejsu
-
12
Slika 2.5 Podeavanje IP adrese na WEB2 NLB interfejsu
Sad je kad su svima dodjeljene IP adrese, potrebno je provjeriti povezanost komponenti,to
je prikazano na narednim slikama, Dakle sa LB, koji ima IP adresu 192.168.1.100,
pokrenuta je PING naredba prema web serverima.
-
13
Slika 2.5 Provjera povezanosti LB-a sa WEB1
Slika 2.6 Provjera povezanosti LB-a sa WEB2
-
14
Sad kad su sve komponente povezane, potrebno je napraviti cluster. Na sljedeoj slici je
prikazano dodavanje WEB1 servera u cluster.
Slika 2.7 Dodjeljivanje servera1 u cluster
-
15
Slika 2.8 Podeavanje IP adrese cluster-a
Slika 2.8 Pregled parametara cluster-a
-
16
Slika 2.9 Dodaju su portovi na WEB1 serveru
Kartica Port Rules, prikazana na slici 2.9 slui za kontrolu razliitih portova kao i za
kontolu protokola koji se mogu koristiti na pojedinim portovima. U odreenom opsegu
portova mogue je zabraniti pojedine portove. Ovom karticom zavrava se konfigurisanje
NLB-a i on je spreman za upotrebu.[4]
Na isti nain je dodat i server 2 u cluster. Na slici 2.10 se vidi da su oba servera dodata u
cluster.
Slika 3.
-
17
Slika 2.10 Serveri dodati u cluster
Svaki od ova dva servera imaju istu default-nu html stranicu. Kako bi se lake uoilo, ta
zapravo radi Load Balancing, izmjenit e se ove dvije stranice, tako da ispisuju Server1,
Server2, respektivno.
Nakon to je sve ovo uraeno, pristupa se IP adresi cluster-a, kao to je prikazano na
narednim slikama.
Slika 2.11 LB prebacuje na WEB1 server
-
18
Slika 2.12 LB prebacuje na WEB2 server
Dakle, LB prema odreenom algoritmu, bira izmeu WEB1 servera i WEB2 servera.
-
19
Zakljuak
U ovom radu je predstavljen nain rjeavanja LB problema, koritenjem Windows 2012
servera, te cluster-inga, gdje se se grupa nezavisnih servera tretira kao jedan sistem. Za
krajnjem korisnika, struktura cluster-a je nevidljiva.
Ispravno postavljenim cluster-om, mogue je poveati raspoloivost, te upravljanjem
optereenjem utedjeti znaajna sredstva, organizaciji koja svoja sredstva temelji na
raunarskim tehnologijama.
-
20
Literatura
[1] "Network Load Balancing Technical Overview, https://msdn.microsoft.com/en-
us/library/bb742455.aspx
[2] Albert Y. Zomaya, "Observations on Using Genetic Algorithms for Dynamic Load-
Balancing", IEEE, Vol, 12, No 9, pp 1, 2001.
[3] CARNet CERT, Cluster sustavi, Fakultet za elektrotehniku i raunarstvo Zagreb
[4] Network Load Balancing Deployment Guide, https://technet.microsoft.com/en-
us/library/cc754833%28v=ws.10%29.aspx
-
21
Popis slika
Slika 1.1 Statiki Load Balancing
Slika 2.1 ema prema kojoj je realizovan LB (Load Balancing)
Slika 2.2 Podeavanje IP adrese na WEB1 Management interfejsu
Slika 2.3 Podeavanje IP adrese na WEB1 NLB interfejsu
Slika 2.4 Podeavanje IP adrese na WEB2 Management interfejsu
Slika 2.5 Podeavanje IP adrese na WEB2 NLB interfejsu
Slika 2.5 Provjera povezanosti LB-a sa WEB1
Slika 2.6 Provjera povezanosti LB-a sa WEB2
Slika 2.7 Dodjeljivanje servera1 u cluster
Slika 2.8 Podeavanje IP adrese cluster-a
Slika 2.8 Pregled parametara cluster-a
Slika 2.9 Dodaju su portovi na WEB1 serveru
Slika 2.10 Serveri dodati u cluster
Slika 2.11 LB prebacuje na WEB1 server
Slika 2.12 LB prebacuje na WEB2 server
-
22
Popis skraenica
NLB Network Load Balancing
CGI Common Gateway Interface
HTTP Hyper-Text Transfer Protocol
IP Internet protocol
LAN Local Area Network
NAT Network Address Translation
NP hard Nondeterministically polynomial hard
RTT Round Trip Time
FTP File Transfer Protocol