load balancing uz pomoć nlb alata na windows serveru

22
1 UNIVERZITET U SARAJEVU ELEKTROTEHNIČKI FAKULTET U SARAJEVU Seminarski rad Load balancing uz pomoć NLB alata na Windows Serveru Grupa 3 Sarajevo, juni 2015.

Upload: faruk1991

Post on 17-Dec-2015

35 views

Category:

Documents


6 download

DESCRIPTION

Load balancing uz pomoć NLB alata naWindows Serveru

TRANSCRIPT

  • 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