12/09/2013

Load Blancing [Explaination]

ကြ်န္ေတာ္ ဒီ post မွာ Load Balancing အေၾကာင္း သိမိေခါက္မိရွိသေလာက္ နည္းနည္းေဖာ့ၾကည့္ပါရေစ။ :D Load Balancing ဆုိတာက computer, network link, CPU, Hard Disk စတာေတြကုိ စုေပါင္းျပီး parallel ပုံစံအသုံးခ်တဲ့ networking နည္းလမ္းတစ္ခုပါပဲ။ ဥပမာဗ်ာ။ Web Server တစ္ခုဆုိပါစုိ႔။ အဲဒီ web server ကုိကုိင္ေနရတဲ့ ကြန္ပ်ဴတာက သူတစ္ေယာက္တည္းဆုိ မႏုိင္မနင္းျဖစ္လာမယ္။ အဲ သူတစ္ေယာက္တည္းမဟုတ္ဘဲ အျခားအရံကြန္ပ်ဴတာေတြနဲ႔ အတူတူ load ကုိထိန္းမယ္ဆုိရင္ ေအးေဆးျဖစ္သြားတယ္ေပါ့။ Load Balancing ကုိ software အေနနဲ႔ေသာ္လည္းေကာင္း Hardware ပုံစံနဲ႔ေသာ္လည္းေကာင္း ေတြ႔ျမင္ႏုိင္ပါတယ္။ ဥပမာ DNS (Domain Name System), Multilayer Switch ေတြျဖစ္ပါတယ္။

Load Balancing ကုိအသုံးခ်တဲ့အမ်ားဆုံးေနရာေတြကေတာ့ နာမည္ၾကီး website ေတြ၊ Internet Relay Chat networks, high-bandwidth File Transfer Protocol sites, Network News Transfer Protocol (NNTP) servers ေတြဘာညာေပါ့ဗ်ာ။ ဟီး။ load balancing အေၾကာင္းမေျပာခင္မွာ ကြ်န္ေတာ္တုိ႔ TCP/IP အေၾကာင္းကုိ အက်ဥ္းခ်ဳပ္ၾကည့္မယ္။ ဒါကေတာ့ ကြ်န္ေတာ္တုိ႔ webpage ေတြကုိျမင္ေနတဲ့အခါ tcp/ip အလုပ္လုပ္ပုံေပါ့ဗ်ာ။ 3 way handshake လုိ႔လူသိမ်ားပါတယ္။
ပုံထဲမွာ client ဘက္ကအရင္ဆုံး syn လုပ္ေပးတာကုိ ဆာဗာဘက္က syn/act ျပန္ပုိ႔ေပးရတယ္။ အဲဒါကုိ client ဘက္ကသိျပီး ဆာဗာဘက္ကုိျပန္ပုိ႔ အဲလုိ process ျဖစ္မွ လုပ္ငန္းတစ္ခုျပီးေျမာက္သြားတယ္။ ကြ်န္ေတာ္တုိ႔ကေတာ့ Browser ကေန http://www.google.com လုိ႔ရုိက္ထည့္လုိက္ရင္ Google ေပၚလာတယ္။ အမွန္က အေပၚကလုိ process ေတြနဲ႔သြားပါတယ္။ ဒီေတာ့ ဆာဗာကြန္ပ်ဴတာဟာ ဘယ္ေလာက္ေတာင္အလုပ္ရွဳပ္မလဲဆုိတာ သိႏုိင္ပါတယ္။ အဲဒီ ဆာဗာေတြဆုိတာ အခ်ိန္ျပည့္စကၠန္႔နဲ႔အမွ်အလုပ္လုပ္ေနရတဲ့အျပင္ သူဆီကုိ request လာလုပ္တဲ့ Data ေတြကလည္းတစ္ခ်ိန္တည္းမွာ request ေပါင္းေထာင္ေသာင္းခ်ီပါတယ္။ ဟုတ္တယ္ေလ။ ကြ်န္ေတာ္တုိ႔ ရွာခ်င္တာရွာေနတဲ့ Google ဆုိတာကုိ ကြ်န္ေတာ္တစ္ေယာက္တည္းၾကည့္ေနတာမဟုတ္ပါဘူး။ ျမန္မာႏုိင္ငံတစ္ခုတည္းသုံးေနတာလည္းမဟုတ္ဘူး။ ဒီေတာ့ သူ႔ခမွ်ာ ဘယ္ေလာက္ေတာင္အလုပ္ရွဳပ္ေနမလဲဆုိတာ စာနာတတ္ရင္ ကုိယ္ခ်င္းစာလုိ႔ရေနပါျပီ။ :D ဒီၾကားထဲ အျမင္ကပ္ပုဒ္မနဲ႔ DDoS Attack လုပ္ခံရရင္ေသျပီ။ ယခုလက္ရွိ request က တစ္စကၠန္႔မွာ request ေပါင္း 1 ေသာင္းရွိတယ္ဆုိပါစုိ႔။ DDoS Attack ခံရရင္ ဒီထက္ဆယ္ဆမကဆုိလည္း ျဖစ္ႏုိင္တာပဲ။ ဒီေတာ့ အဲဒီဆုိဒ္ဟာ Offline ျဖစ္သြာဖုိ႔ပဲရွိေတာ့တယ္။ ကဲ ဒါဆုိ ဘယ္လုိလုပ္ၾကမလဲ။ အဟမ္း ကြ်န္ေတာ္ေဖာ့ခ်င္တဲ့ load balancing ကဒီေနရာမွာ ပါလာျပီေပါ့ဗ်ာ။ ဟီး :D ကြ်န္ေတာ္ cmd ကေန google ကုိ ping လုိက္တယ္ဗ်ာ။

Microsoft Windows [Version 6.1.7600]
Copyright © 2009 Microsoft Corporation. All rights reserved.
C:\Users\Lotus Black>ping http://www.google.com
Pinging http://www.google.com [74.125.135.103] with 32 bytes of data:
Reply from 74.125.135.103: bytes=32 time=1682ms TTL=44
Reply from 74.125.135.103: bytes=32 time=1557ms TTL=44
Reply from 74.125.135.103: bytes=32 time=1744ms TTL=44
Reply from 74.125.135.103: bytes=32 time=1496ms TTL=44
Ping statistics for 74.125.135.103:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 1496ms, Maximum = 1744ms, Average = 1619ms


ကြ်န္ေတာ္ဆီမွာ ကြန္က ရလုိက္မရလုိက္ျဖစ္ေနတာနဲ႔ ေနာက္တစ္ခါ ping လုိက္ပါတယ္။ ပုိေသခ်ာသြားေအာင္။ :D

Microsoft Windows [Version 6.1.7600]
Copyright © 2009 Microsoft Corporation. All rights reserved.
C:\Users\Lotus Black>ping http://www.google.com
Pinging http://www.google.com [172.194.126.84] with 32 bytes of data:
Reply from 172.194.126.84: bytes=32 time=1682ms TTL=44
Reply from 172.194.126.84: bytes=32 time=1557ms TTL=44
Reply from 172.194.126.84: bytes=32 time=1744ms TTL=44
Reply from 172.194.126.84: bytes=32 time=1496ms TTL=44
Ping statistics for 172.194.126.84:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 1496ms, Maximum = 1744ms, Average = 1619ms


အဲဒါကေတာ့ Google ရဲ႕ DNS server ကေန reply ျပန္တဲ့ IP Address ပါခင္ဗ်။ သတိထားမလားမသိဘူး။ IP Address ကတစ္ခုနဲ႔တစ္ခုမတူပါဘူး။ ပုံမွန္ဆုိဒ္ေတြဆုိရင္ IP Address ကမ်ားေသာအားျဖင့္ အေသပါ။ Google ကေတာ့ အဲလုိပဲေျပာင္းေနမွာျဖစ္ပါတယ္။ အဲဒီ IP Address ကုိ Browser မွာ http://172.194.126.84 ဆုိျပီးေခၚၾကည့္ပါ။ Google က်လာပါမယ္။ ဒီလုိပဲ http://74.125.135.103 ဆုိရင္လည္း ထုိနည္းလည္းေကာင္းပါပဲ။ အဲဒါကေတာ့ ကြ်န္ေတာ္အေနနဲ႔ ဥပမာတစ္ခုကုိေပးၾကည့္တာပါ။ ကြ်န္ေတာ္တုိ႔ ေခၚလုိက္တာကေတာ့ http://www.google.com ဆုိတဲ့ domain name တစ္ခုပါပဲ။ ေနာက္ကြယ္မွာက်ေတာ့ Domain Name ကုိ Resolve လုပ္ေပးတဲ့ IP ေတြကေျပာင္းသြားပါတယ္။ ေအာက္ကပုံကုိၾကည့္လုိက္ရင္ သူအလုပ္လုပ္ပုံကုိ နားလည္သြားမွာပါ။


Software ပုိင္းနဲ႔ပတ္သက္ျပီး အထဲမွာ ဘယ္လုိလုပ္တာလဲ နည္းနည္းထပ္သြားၾကည့္မယ္ဗ်ာ။ ဒီအပုိင္းကုိေတာ့ Windows Server ကုိကုိင္ဖူးတယ္ဆုိရင္ နားလည္လြယ္မွာပါ။ အဲဒီ Load Balancing အတြက္ Windows Server မွာ အဲဒီ Function ပါပါတယ္။ ဥပမာ ဒီလုိေလးေပါ့။

one.google.com A 74.125.135.103.1
two.google.com A 172.194.126.84.2
http://www.google.com NS one.google.com
http://www.google.com NS two.google.com


ဒါကေတာ့ Windows Server ရဲ႕ A Record မွာ Configure လုပ္ထားတဲ့ Setting တစ္ခုလု႔ိေျပာႏုိင္ပါတယ္။ A Record ထဲက server 1 အတြက္ IP 74.125.135.103 ျဖစ္ေနခ်ိန္မွာ Zone file မွာရွိတဲ့ အရံ server 2 မွာလည္း IP 172.194.126.84 နဲ႔ Standby ျပင္ထားတယ္။ တစ္ခုမအားခ်ိန္မွာ ဒါမွမဟုတ္ ေဒါင္းေနခ်ိန္မွာ server 2 ကအလုပ္လုပ္ပါတယ္။ ဒါကေတာ့ Windows Server 2008 မွာရွိတဲ့ Configuration နမူနာပါ။
ဒီလုိနည္းနဲ႔ Google ဟာအသက္ရွင္ေနတာျဖစ္ပါတယ္။ သူ႔ဆီက ဆာဗာေတြအတြက္ Power Consumption က ျမဳိ႕ငယ္တစ္ခုကုိ မီးေပးလုိ႔ရတယ္လုိ႔ ဖတ္ခဲ့ဖူးပါတယ္။ ဒါေၾကာင့္ Google အေနနဲ႔ Software ပုိင္းသာမက Hardware ပုိင္းနဲ႔ပတ္သက္တဲ့ Load Balancer ေတြလည္းသုံးမွာမလြဲပါဘူး။ Cisco Linksys Load Balancer ကုိခုလုိေတြ႕ႏုိင္ပါတယ္။

Load Balancer ကဘာေတြလုပ္ေပးႏုိင္မွာလဲ??
Hardware နဲ႔ Software load balancer ဆုိျပီးကြဲတဲ့အေလ်ာက္ Function ေတြကေတာ့ အကုန္တူမွာမဟုတ္ပါဘူး။ ဒါေပမယ့္ အမ်ားဆုံး Common ျဖစ္တာေတြကေတာ့ ေအာက္ပါအတုိင္းျဖစ္ပါတယ္။ သူရဲ႕ Function အျပည့္စုံကုိေတာ့ မေဖာ္ျပေတာ့ပါဘူး။ ပုိ႔စ္ရွည္ေနမွာစုိးလုိ႔။ အေသးစိတ္ကေတာ့ ကုိယ့္ဘာသာ ရွာဖတ္လုိက္ပါေတာ့။ ဟီး။

-Asymmetric load
-Priority activation
-Distributed Denial of Service (DDoS) attack protection
-HTTP compression
-TCP offload
-TCP buffering
-HTTP security
-Intrusion prevention system

ေနာက္ထပ္ရွိေသးတယ္ဗ်။ biggrin ဒီေလာက္ဆုိရင္ ဘာေျပာေျပာ Load Balancing အေၾကာင္း တီးမိေခါက္မိရွိသြားမယ္လုိ႔ ေမ်ာ္လင့္ပါတယ္။ လုိအပ္တာရွိသြားရင္ ကြ်န္ေတာ္ရဲ႕ညံ့ဖ်င္းမွဳသာျဖစ္ပါလိမ့္မယ္။

Ref: http://en.wikipedia.org/wiki/Load_balanc...mputing%29

http://www.4sectors.com/forum/showthread.php?tid=1302

1 comment:

  1. ကြ်န္ေတာ္ အခုမဖတ္ရေသးပါဘူး .... ဒါေပမယ့္ ပညာကို ျပန္လည္ မွ်ေ၀သူေတြကို
    ေလးစားပါတယ္ ... ေက်းဇူးတင္ပါတယ္ အကို

    ReplyDelete

If you good, i don't bad. if you think you can bark me, I think i can also fuck you. I'm just ordinary person. Is that OK? :)