idoc.vn ky thuat can bang tai mang nlb network load balancing

15
K thut cân bng ti mng (NLB - Network Load Balancing) NLB mrng hiu năng ca các server ng dng, chng hn như Web server, nhphân phi các y êu c  ầu ca clie nt cho các server trong nhóm (cluster). Các server (hay còn gi là host) đều nhn gói IP đến, nhưng gói chđược xbi mt server nht định. Các host trong nhóm sđồng thi đáp ng các yêu c  ầu khác nhau ca các client, cho dù mt client có thđưa ra nhi  ều yêu c  ầu. Ví d, mt tr  ình duy t Web cn rt nhiu hình nh trên mt trang Web được lưu trti nhiu host khác nhau trong mt nhóm server. Vi kthut cân bng ti, quá tr  ình xlý và thi gian đáp ng client snhanh hơn nhiu. Mi host trong nhóm có thđịnh ra mc ti mà nó sxlý hoc ti có thphân phi mt cách đồng đều gia các host. Nhsdng vic phân phi ti n ày, mi server sla chn và xlý mt phn ti ca host. Ti do các client gi đến được phân phi sao cho mi server nhn được slượng các yêu c  ầu theo đúng phn ti đã định ca nó.

Upload: nguyenthuy

Post on 14-Oct-2015

13 views

Category:

Documents


0 download

TRANSCRIPT

  • K thut cn bng ti mng (NLB - Network Load Balancing) NLB m rng hiu nng ca cc server ng dng, chng hn nh Web server, nh phn phi cc yu cu ca client cho cc server trong nhm (cluster). Cc server (hay cn gi l host) u nhn gi IP n, nhng gi ch c x l bi mt server nht nh. Cc host trong nhm s ng thi p ng cc yu cu khc nhau ca cc client, cho d mt client c th a ra nhiu yu cu. V d, mt trnh duyt Web cn rt nhiu hnh nh trn mt trang Web c lu tr ti nhiu host khc nhau trong mt nhm server. Vi k thut cn bng ti, qu trnh x l v thi gian p ng client s nhanh hn nhiu.

    Mi host trong nhm c th nh ra mc ti m n s x l hoc ti c th phn phi mt cch ng u gia cc host. Nh s dng vic phn phi ti ny, mi server s la chn v x l mt phn ti ca host. Ti do cc client gi n c phn phi sao cho mi server nhn c s lng cc yu cu theo ng phn ti nh ca n.

  • S cn bng ti ny c th iu chnh ng khi cc host tham gia vo hoc ri khi nhm. i vi cc ng dng nh Web server, c rt nhiu client v thi gian m cc yu cu ca client tn ti tng i ngn, kh nng ca k thut ny nhm phn phi ti thng qua nh x thng k s gip cn bng mt cch hiu qu cc ti v cung cp kh nng p ng nhanh khi nhm server c thay i. Cc server trong nhm cn bng ti pht i mt bn tin c bit thng bo trng thi hot ng ca n (gi l heartbeat message) ti cc host khc trong nhm ng thi nghe bn tin ny t cc khc host khc. Nu mt server trong nhm gp trc trc, cc host khc s iu chnh v ti phn phi li ti duy tr lin tc cc dch v cho cc client. Trong phn ln cc trng hp, phn mm client thng t ng kt ni li v ngi s dng ch cm thy tr mt vi giy khi nhn c p ng tr li. Kin trc h thng cn bng ti ti a ho thng lng v kh dng, cng ngh cn bng ti s dng kin trc phn mm phn tn hon ton, trnh iu khin cn bng ti c ci t v chy song song trn tt c cc host trong nhm. Trnh iu khin ny sp xp tt c cc host trong nhm vo mt mng con pht hin ng thi lu lng mng n a ch IP chnh ca nhm (v cc a ch b sung ca cc host nhiu v tr khc nhau). Trn mi host, trnh iu khin hot ng nh mt b lc gia trnh iu khin card mng v chng giao thc TCP/IP, cho php mt phn lu lng mng n c nhn bi host . Nh , cc yu cu ca client s c phn vng v cn bng ti gia cc host trong nhm. H thng cn bng ti chy nh mt trnh iu khin mng (v mt logic) nm di cc giao thc lp ng dng nh HTTP hay FTP. Hnh sau cho thy vic trin khai h

  • thng cn bng ti nh mt trnh iu khin trung gian trong chng giao thc mng ca Windows2000 ti mi host trong nhm. Kin trc ny ti a ho dung lng nh vic s dng mng qung b phn phi lu lng mng n tt c cc host trong nhm v loi b s cn thit phi nh tuyn cc gi n tng host ring l. Do thi gian lc cc gi khng mong mun din ra nhanh hn thi gian nh tuyn cc gi (nh tuyn bao gm cc qu trnh nhn gi, kim tra, ng gi li v gi i), kin trc ny cung cp thng lng cao hn cc gii php da trn b iu phi. Khi tc ca mng v server tng ln, thng lng cng tng theo t l thun, do loi b c bt c s l thuc no vo vic nh tuyn da trn cc phn cng c bit. Trn thc t, b cn bng ti c th t thng lng 250Mbit/s trong cc mng Gigabit. Mt u im c bn khc ca kin trc phn tn hon ton l kh dng c tng cng vi (N-1) cch khc phc li trong mt nhm c N host. Cc gii php da trn b iu phi to ra mt im li k tha m ch c th c khc phc bng cch s dng mt b iu phi d phng v do ch cung cp mt cch khc phc li duy nht. Kin trc cn bng ti cng tn dng c nhng u im v kin trc cc thit b chuyn mch (switch) v/hoc cc b tp trung (hub) ca mng con trong vic ng thi phn phi lu lng mng n tt c cac host trong nhm. Tuy nhin, phng php ny lm tng "ti trng" trn cc chuyn mch do chim thm bng thng cng. y khng phi l vn trong phn ln cc ng dng nh dch v Web hay streaming media, do t l lu lng n ch chim mt phn rt nh trong tng lu lng mng. Tuy nhin, nu cc kt ni mng pha client n thit b chuyn mch c tc nhanh hn nhiu cc kt ni pha

  • server, lu lng c th chim mt t l ln qu mc cho php ca bng thng cng pha server. Vn tng t s gia tng nu nhiu nhm kt ni trn cng mt thit b chuyn mch v cc bin php thit lp cc mng LAN o cho tng nhm khng c thc hin. Trong qu trnh nhn gi, vic trin khai ca NLB l s kt hp gia vic phn phi cc gi ti tng TCP/IP v nhn cc gi khc qua trnh iu khin card mng. Vic ny gip tng tc x l chung v gim tr do TCP/IP c th x l gi trong khi trnh iu khin NDIS (Network Driver Interface Specification) nhn gi tip theo. Trong qu trnh gi gi, NLB cng tng cng thng lng, gim tr v ph ph (overhead) nh tng s lng gi m TCP/IP c th gi trong mt kt ni. c c nhng ci thin v hiu nng ny, NLB thit lp v qun l mt tp hp cc b m gi v cc k hiu (descriptor) c s dng phi hp cc hot ng ca TCP/IP v trnh iu khin NDIS. Phn phi lu lng trong nhm NLB s dng hai lp broadcast hoc multicast phn phi ng thi lu lng mng n tt c cc host trong nhm. Trong ch hot ng mc nh l unicast, NLB s gn a ch trm lm vic (a ch MAC) cho card mng card mng c th hot ng (card ny gi l card nhm ? cluster adapter), v tt c cc host trong nhm c gn cng mt a ch MAC. Cc gi n do c nhn bi tt c cc host trong nhm v chuyn gi ti trnh iu khin cn bng ti lc. m bo tnh duy nht, a ch MAC c dn xut t a ch IP chnh ca nhm. V d, vi a ch IP chnh ca nhm l 1.2.3.4, a ch MAC unicast c t l 02-BF-1-2-3-4. Trnh iu khin cn bng ti s t ng sa a ch MAC ca card nhm bng cch thit lp mt thc th ng k v ti np trnh iu khin card nhm. H iu hnh

  • khng cn phi khi ng li. Nu cc host trong cluster c gn vo mt thit b chuyn mch (swicth) ch khng phi mt b tp trung (hub), vic s dng chung mt a ch MAC s gy ra xung t do cc chuyn mch lp 2 ch c th hot ng khi cc a ch MAC ngun trn tt c cc cng ca thit b chuyn mch l duy nht. trnh iu ny, NLB sa a ch MAC ngun cho cc gi u ra l duy nht, a ch MAC ca nhm l 02-BF-1-2-3-4 c chuyn thnh 02-h-1-2-3-4, trong h l mc u tin ca host trong nhm. K thut ny ngn khng cho thit b chuyn mch tm ra a ch MAC thc s ca nhm v kt qu l cc gi n nhm c phn phi ti tt c cc cng ca thit b chuyn mch. Nu cc host trong nhm c kt ni trc tip vo mt hub, mt n a ch MAC ngun ca NLB trong ch unicast c th c v hiu ho trnh gy ra hin tng trn cho cc thit b chuyn mch ng ln (upstream). iu ny c th thc hin bng cch thit lp tham s ng k NLB l MaskSourceMAC=0. Vic s dng h thng chuyn mch ng ln ba mc cng c th hn ch trn cho cc thit b chuyn mch.

  • Ch unicast ca NLB c th lm v hiu ho qu trnh trao i thng tin gia cc host trong nhm c s dng card nhm. Khi cc gi ca mt host c gi i vi a ch MAC ch ging a ch MAC ngun, cc gi ny s b quay vng (loop-back) gia cc tng giao thc mng bn trong h thng pha gi v khng bao gi ra n ng truyn. Hn ch ny c th trnh c bng cch thm mt card mng th hai cho mi host. Trong cu hnh ny, NLB s dng mt card mng trn mng con nhn cc yu cu ca client v mt card mng khc thng c t tch bit trn mng con cc b trao i thng tin gia cc host trong nhm v vi cc server c s d liu cng nh cc file server gc. NLB ch s dng card nhm truyn cc bn tin "heartbeat" v lu lng iu khin t xa. Ch rng, trao i thng tin gia cc host trong nhm v cc host ngoi nhm khng bao gi b nh hng bi

  • ch unicast ca NLB. Lu lng mng n mt a ch IP dnh ring cho host (trong card nhm) c nhn bi tt c cc host trong nhm do chng s dng chung mt a ch MAC. Do NLB khng bao gi cn bng ti lu lng i vi cc a ch IP dnh ring, NLB s lp tc phn phi lu lng ny n TCP/IP trn host nh. Cc host khc trong nhm coi lu lng ny l lu lng c cn bng ti v s loi b lu lng ny. Ch , nu lu lng mng n qu ln i vi cc a ch IP dnh ring c th nh hng n hiu nng khi h thng NLB hot ng trong ch unicast (tu theo s cn thit i vi TCP/IP trong vic loi b cc gi khng mong mun). NLB cung cp ch th hai phn phi lu lng mng n cc host trong nhm, ch multicast. Ch ny gn a ch multicast 2 lp cho card nhm thay v thay i a ch trm lm vic ca card. V d, a ch MAC multicast s c gn l 03-BF-1-2-3-4 tng ng vi a ch IP chnh l 1.2.3.4. Do mi host trong nhm c mt a ch trm lm vic duy nht, ch ny khng cn mt b card mng th hai trao i thng tin gia cc host trong nhm v n cng khng c bt c nh hng no n hiu nng ca ton h thng do vic s dng cc a ch IP dnh ring. Ch unicast ca NLB gy ra trn trn switch do s phn phi ng thi lu lng mng trn tt c cc cng. Tuy nhin, ch multicast ca NLB a ra c hi hn ch trn switch ngi qun tr h thng c th cu hnh mt mng LAN o trn switch cho cc cng tng ng vi cc host. C th lm c iu ny bng cch lp trnh cho switch hoc s dng giao thc IGMP hoc giao thc GARP, GMRP. NLB cn trin khai chc nng ARP m bo rng a ch IP chnh ca nhm v cc a ch IP o khc c th phn gii sang a ch MAC multicast ca nhm. (a ch IP dnh ring s tip tc phn gii sang a ch trm lm vic ca card nhm). Thut ton cn bng ti

  • NLB s dng thut ton lc phn tn hon ton nh x cc client n cc host trong nhm. Thut ton ny cho php cc host trong nhm a ra cc quyt nh cn bng ti mt cch c lp v nhanh chng cho tng gi n. N c ti u ho cung cp kh nng cn bng ti mt cch thng k i vi mt s lng ln cc yu cu nh do v s client to ra, in hnh l i vi cc Web server. Nu s client v/hoc cc kt ni client to ra cc ti qu chnh lch nhau trn server, thut ton cn bng ti s t hiu qu. Tuy nhin, tnh n gin v tc ca thut ton cho php cung cp hiu nng rt cao bao gm c thng lng cao v thi gian p ng ngn trong mt di rng cc ng dng client/server thng dng.

    NLB x l cc yu cu ca client bng cch dn ng cho mt t l phn trm chn nhng yu cu mi cho tng host trong nhm. Thut ton khng p ng nhng thay i v ti trn mi host (chng hn nh ti CPU hay vn s dng b nh). Tuy nhin, qu trnh nh x s c thay i khi quan h thnh vin trong nhm thay i v t l phn trm ti phn b s c ti cn bng.

  • Khi xem xt mt gi n, tt c cc host thc hin ng thi vic nh x thng k xc nh nhanh chng host no s x l gi . Qu trnh nh x s dng mt hm ngu nhin tnh mc u tin ca host da trn a ch IP v cng n ca client cng cc thng tin trng thi khc ti u ho vic cn bng ti. Host tng ng s chuyn gi t cc tng di ln tng TCP/IP cn cc host khc s loi b gi ny. Qu trnh nh x khng thay i tr phi quan h gia cc host trong nhm thay i, m bo rng a ch IP v cng n ca client cho trc s lun c nh x n cng mt host trong nhm. Tuy nhin, host c th trong nhm m a ch IP v cng n ca client nh x ti khng th c xc nh trc do hm ngu nhin c tnh n quan h thnh vin trong nhm hin ti v qu kh ti thiu ho kh nng nh x li. Nhn chung, cht lng cn bng ti c xc nh mt cch thng k bi s lng client to ra yu cu. Nh kt cu tng gim v s lng client theo thng k, s u n v cht lng ca thut ton cn bng ti s thay i nh. hot ng cn bng ti c chnh xc cao trn mi host trong nhm, mt phn ti nguyn h thng s c s dng o v phn ng trc nhng thay i ca ti. S tr gi v hiu nng ny phi c cn nhc so vi li ch ca vic ti a ho kh nng s dng cc ti nguyn trong nhm (v c bn l CPU v b nh). Trong bt c trng hp no, vic s dng hp l cc ngun ti nguyn server phi c duy tr c th phc v cho cc ti client khc trong trng hp xy ra li. Khi mt host mi tham gia vo nhm, n s kch hot qu trnh hi t v mt quan h thnh vin mi trong nhm s c tnh ton. Khi qu trnh hi t hon thnh, mt phn ti thiu client s c nh x ti host mi. NLB d cc kt ni TCP trn mi host v sau khi kt ni TCP hin ti ca chng hon thnh, kt ni tip theo t cc client b

  • nh hng s c x l bi host mi. Do , cc host nn c b sung vo nhm ti nhng thi im ti tng qu mnh nhm ti thiu ho hin tng ngt qung cc phin. trnh vn ny, trng thi phin phi c qun l bi ng dng server sao cho n c th c ti cu trc hay c tr li t bt k mt host no trong nhm. V d, trng thi phin c th c y n server c s d liu v lu trong cc cookies ca client. Qu trnh hi t Cc host trong nhm trao i nh k cc bn tin "heartbeat" multicast hoc broadcast vi nhau. iu ny cho php cc host c th gim st trng thi ca nhm. Khi trng thi ca nhm thay i (chng hn nh khi c host gp trc trc, ri khi hoc tham gia vo nhm), NLB kch hot mt chu trnh gi l hi t trong cc host trao i bn tin "heartbeat" nh ra mt trng thi mi, bn vng cho nhm. Khi tt c cc t c s "nht tr" trng thi mi ca chng s c thit lp v nhng thay i ny s c lu vo nht k s kin. Trong qu trnh hi t, cc host tip tc x l lu lng mng n nh mi khi ngoi tr lu lng n host b li khng nhn c dch v. Qu trnh hi t kt thc khi tt c cc host trong nhm c c mt quan h thnh vin n nh trong vng mt vi chu k heartbeat. Khi hon thnh qu trnh hi t, lu lng n host b li s c ti phn phi cho cc host cn li. Nu mt host c thm vo nhm, qu trnh hi t cho php host ny nhn c phn ti ca n trong lu lng c cn bng. Vic m rng nhm khng nh hng n cc hot ng ca nhm v theo mt cch hon ton trong sut i vi tt c cc Internet client cng nh trc cc chng trnh phn mm server. Tuy nhin, n c th nh hng n cc phin client v cc client c th phi ti nh x ti cc

  • host khc trong nhm.

    Trong ch unicast, mi host s pht qung b (broadcast) bn tin "heartbeat" theo chu k. Cn trong ch multicast, n s pht cc bn tin ny ch multicast. Mi bn tin "heartbeat" chim mt khung Ethernet v c gn thm a ch IP chnh ca nhm nhm cho php nhiu nhm c th cng tn ti trn cng mt mng con. Bn tin "heartbeat" ca NLB ca Microsoft c gn mt gi tr 0x886F. Chu k gi cc bn tin ny mc nh l 01 giy. Gi tr ny c th thay i. Trong qu trnh hi t, chu k ny c gim xung ch cn mt na y nhanh vic hon tt qu trnh ny. Thm ch, i vi cc cluster ln, bng thng cn thit

  • truyn cc bn tin "heartbeat" rt thp (24kBytes/s cho mt cluster 16 ng). c th khi to qu trnh hi t, theo mc nh cn 05 bn tin heartbeat khng c nhn. Gi tr ny c th thay i. iu khin t xa C ch iu khin t xa ca NLB s dng giao thc UDP v c gn cng dch v #2504. Cc gi d liu iu khin t xa c gi ti a ch IP chnh ca nhm. Do trnh iu khin trn mi host trong nhm x l cc gi ny, chng cn c nh tuyn ti mng con ca nhm (thay v ti mt mng con gc m nhm gn vo). Khi cc lnh iu khin t xa c a ra trong nhm, chng s c pht qung b trn mng con cc b. iu ny m bo tt c cc host trong nhm u c th nhn c chng ngay c khi nhm chy trong ch unicast. Hiu nng cn bng ti Vai tr ca NLB tc ng n hiu nng ca h thng c th c nh gi da trn bn tiu ch chnh sau: - CPU overhead trn cc host ca nhm - Phn trm CPU cn thit phn tch v lc cc gi ca mng (cng thp cng tt). Tt c cc gii php cn bng ti u cn s dng mt phn ti nguyn ca h thng xem xt gi n v a ra quyt nh cn bng ti v do t nhiu nh hng n hiu nng ca mng. Gii php cn bng ti da trn b iu phi cn kim tra, hiu chnh v truyn li gi ti cc host trong nhm (thng phi sa i li a ch IP ti nh tuyn gi t a ch IP o ti a ch IP ca tng host c th). i vi NLB, n phn phi ng thi cc gi n ti tt c cc host trong nhm v p dng mt thut ton lc loi b cc gi khng mong mun...

  • Qu trnh lc gy nh hng t hn so vi qu trnh ti nh tuyn v kt qu l thi gian p ng nhanh hn vi thng lng ton h thng cao hn. - Thng lng v thi gian p ng yu cu NLB nng cao hiu nng h thng bng cch tng thng lng v ti thiu ho thi gian p ng ti cc yu cu ca client. Khi nng lc ca cc host trong nhm c khai thc ti a, n s khng th cung cp thm thng lng v thi gian p ng tng t bin tu theo tr hng i cc yu cu ca client. B sung thm host s cho php tng thng lng v gim thi gian p ng. Nu nhu cu ca khch hng tip tc tng, cc host s c thm vo cho n khi mng con bo ho. V nu ti tip tc tng, cn s dng nhiu nhm NLB v vic phn phi lu lng gia cc host c thc hin bng k thut Round Robin DNS. Trn thc t, phng php ny c s dng cho Web site ca Microsoft www.microsoft.com, hin thng xuyn c 5 nhm NLB, mi nhm c 6 host v cc host chy mc 60% nng lc ti a.

    - Bng thng s dng ca Switch (Switch occupancy): T

  • l bng thng ca switch c s dng bi qu trnh lm trn cc yu cu ca client. Kin trc lc gi ca NLB da trn mng con broadcast phn phi cc yu cu ca client ti tt c cc host cng lc. Trong cc nhm nh, c th s dng hub kt ni cc host. Vi cc nhm ln hn, switch s l s la chn. V nh mc nh, NLB s to ra hin tng "trn" switch c th phn phi cc yu cu ca client ti tt c cc host cng lc. Cn chc chn rng hin tng "trn" switch khng c vt qu nng lc ca switch, c bit khi switch c chia s gia nhm v cc my tnh ngoi nhm. Bnh thng, bng thng s dng cho lu lng yu cu ca client ch chim mt t l nh trong tng lng bng thng cn thit cho qu trnh truyn thng gia server v client. Tuy nhin qu trnh "trn" switch s tr thnh vn trong nhng ng dng c t l phn trm ng k lu lng mng c dn ti nhm (chng hn nh qu trnh upload file trong cc ng dng FTP) hay khi nhiu nhm s dng chung mt switch. Trong nhng trng hp ny, chy NLB trong ch multicast v thit lp mng LAN o hn ch trn switch l bin php khc phc rt hiu qu khim khuyt ny. Ngoi ra, tnh kh m ca NLB quyt nh kh nng ci thin hiu nng ca h thng khi cc host c thm vo nhm. Kt lun Server ang l nn tng phn phi cc ng dng quan trng, thng xuyn v rng khp nh Web, Streaming media, VPN. Nh mt phn tch hp ca Windows2000 Advanced Server v Datacenter Server, NLB cung cp mt gii php l tng, kinh t tng cng tnh kh m v kh dng cho cc ng dng trn c mi trng Internet v intranet.

  • Tuy nhin, ngoi nhng ng dng tch hp trong Windows2000, NLB cn c th tch hp trong cc h iu hnh mng v cc ng dng chy trn server khc mt cch hiu qu.