Subscribe Twitter

Wednesday, August 18, 2010

මොනවද මේ Web Servers

වෙබ් ‍සර්වර් එකක් කියන්නේ සරලවම කිව්වොත්, සේවාදායකයන්(Clients) හට වෙබ් පිටු ලබා දෙන වැඩසටහනක්. මේ වෙබ් ‍සර්වර් පරිගණකයක් ඇතුළේ වෙබ් අඩවියක් හෝ කීපයක් තියෙන්න පුළුවන්. අන්තර්ජාලය ඔස්සේ මෙවැනි ‍වෙබ් පිටු සේවාදායකයන් හට ලබාදීම සඳහා HTTP නැතහොත් Hyper Text Transfer Protocol නැමති ‍ප්‍රොටෝකෝලය භාවිතා වෙනවා.

සාමාන්‍ය කුඩා ප්‍රමාණයේ වෙබ් අඩවි ස්ථාපනය(Host) කිරීම සඳහා  හවුල්(Shared) වෙබ් සර්වරස් භාවිතා වෙනවා. ඒ කියන්නේ එක වෙබ් සර්වර් එකක් තුළ වෙබ් අඩවි කිහිපයක් තැන්පත් කිරීමයි. මේ සඳහා Virtual Hosting නැමති ක්‍රමය භාවිතා වෙනවා. මෙහි ද ප්‍රචලිත උපක්‍රම දෙකක් තිබෙනවා.
  • Name Based Virtual Hosting
    මෙම ක්‍රමයේදී සිදුවන්නේ එක් Server පරිගණකයක විවිධ ‍ඩොමෙයින් නාම(Domain Name) සහිත වෙබ් අඩවි තැන්පත් කිරීමයි.
  • IP Based Virtual Hosting
    මෙම ක්‍රමයේදී  එක් Server පරිගණකයකට විවිධ IP Address සහිත වෙබ් අඩවි තැන්පත් කිරීමයි. මෙහිදී එකම පරිගණකය විවිධ IP Address සඳහා වෙබ් සේවාව සපයයි.
එනමුත් විශාල පරිමාණයේ වෙබ් අඩවි ස්ථාපනය කිරීම සඳහා වෙන්කරන ලද(Dedicated) Server පරිගණක භාවිතා කරනවා. ඒවාගේම ඒවායේ සර්වර් ධාරිතාව ඉතා අධික වන අතර අන්තරජාල සබඳතා වේගය(Bandwidth) ද අධික වෙනවා. මෙවැනි ‍අධික Traffic එකක් සහිත වෙබ් අඩවි සඳහා එක් ‍Server පරිගණකයක් පමණක් භාවිතා කිරීමෙන් එහි  ප්‍රොසෙසින් ධාරිතාව(Processing Power), මතක ධාරිතාව(Ram Capacity), දත්ත ගබඩා පරිශ්‍රීලන(Database Access) හැකියාව වැනි දෑ ඉක්මවා යාමෙන් සේවාදායකයන් සඳහා නිසි පරිදි සේවාව සැපයීම කළ නොහැකි විය හැකි අතරම එම වෙබ් අඩවිය අකර්මණ්‍ය(Down) විමේ අවදානම වැඩි වෙනවා.

එබැවින් එවැනි වෙබ් අඩවි පවත්වාගෙන යාමේදී තවත් කරුණු කිහිපයක් ගැන සලකා බලනවා.
  • උපරිම උපයෝජ්‍යතාව(High Availability)
    මෙහිදී වෙබ් සර්වරයේ  ක්‍රියාකාරීත්වය  ගැන විශේෂව සලකා බලනවා. සේවාදායකයන්ට එක දිගටම වෙබ් අඩවිය අකර්මණ්‍ය(Down) නොවී සේවාව ලබාදීම මෙහි අරමුණයි. මෙහිදී වෙබ් සර්වරස් කිහිපයක්, අන්තර්ජාල සබඳතා කිහිපයක් යොදා ගනිමින් එකක් අඩාල වුවහෙත් අනෙක ස්වයංක්‍රීයව හාවිතා වන පරිදි සකස් කර තියෙන්වා.
  • භාරය තුලනය(Load Balancing)
    මෙහිදී  මුළු කාර්යභාරය Server පරිගණක කිහිපයකට භාර දෙනවා. ‍මේ Server පරිගණක කිහිපයම එකවර ක්‍රියාත්මක වන අතර ලැ‍බෙන සේවාදායක ඉල්ලීම් (Requests) කිසියම් ඇල්ගොරිතමයකට අනුව මාරුවෙන් මාරුවට Server පරිගණක කිහිපයටම ලබාදෙනවා. ඒ නිසා එක් පරිගණකයකට ලැබෙන භාරය(Load) අඩු වීමෙන් ඒවා අකර්මණ්‍ය වීමේ අවදානම අඩු වෙනවා.
තවද වර්තමානයේ භාවිතා වන ඉහළම කාර්යක්ෂමතාවයක් සහිත වෙබ් සර්වර් තාක්ෂණය NGINX (‍මෙය කියවන්නේ ‘engine X’ ලෙසයි) ලෙස හැඳින්වෙනවා. ‍මෙම තාක්ෂණය සහිත වෙබ් සර්වරයකට දිනකට මිලියන 500 පමණ ඉල්ලීම්(Requests) ප්‍රමාණයකට වෙබ් පිටු ලබාදිය(Serve කල) හැකි යැයි පැවසෙනවා.

සාමාන්‍යයෙන් ඉතා විශාල ප්‍රමාණයේ වෙබ් අඩවි (Facebook,Google), ඒවාට ලැ‍බෙන ඉල්ලීම්(Requests) ප්‍රමාණය අධික නිසාම, තමන්ගේ වෙබ් අඩවිය වෙබ් ‍සර්වර්ස් ගණනාවකම තැන්පත් කර තබා ගන්නවා. එවිට ලැබෙන එක් ඉල්ලීමක්(Request) සඳහා පිළිතුරු සැපයීම සඳහා වෙබ් සර්වරස් ගණනාවක්ම තිබෙන බැවින් සේවාදායකයින්ට ඉහළ සේවාවක් ලබාදිය හැකි වෙනවා.

‍එහෙත් එයද ප්‍රමාණවත් නොවන අවස්ථාවන් වලදී, මෙම වෙබ් අඩවි ලෝකයේ ‍බොහෝ ස්ථාන වල ඇති මෙවැනි වෙබ් සර්වර් ගණනාවකකට ඇතුළත් කරනවා. එය  CDN හෙවත් Content Delivery Network එකකට වෙබ් අඩවි ඇතුළත් කිරීම ලෙස හැඳින්වෙනවා. මෙම CDN පහසුකම තුළින් සේවාදායකයන්ට තමාට ආසන්නයේම ඇති ඇති වෙබ් සර්වරයෙන් පිළිතුරු ලබා දෙන බැවින්, ඉතා විශිෂ්ඨ, වේගවත් සේවාවක් ලබා දීමට හැකි වෙනවා. ඒ වාගේම මේ තුළින් ඒ ඒ කලාපයේ වෙබ් ඉල්ලීම් සලකා බලා, ඒ ඒ කලාපයට සරිලන සේ වෙබ් සර්වර් පිහිටුවීමට ද එම ‍වෙබ් සේවා සපයන සමාගම් වලට හැකි වෙනවා.

මෙ සම්බන්ධව තවත් කියන්න ‍බොහෝ දේ තියනවා. ඒත් ගොඩක් අය වෙබ් සර්වර් වල කතා නොකරන පැත්තක් කථා කරන්න හිතුණු නිසයි මේ දේවල් ලිව්වේ. මීළඟ පෝස්ට් එකත් ඉක්මනටම ලබා දෙන්න බලාපොරොත්තු වෙනවා.

Monday, August 16, 2010

මොනවද මේ Servers

මම අද මගේ දෙවනි බ්ලොග් පෝස්ට් එකෙන් කතා කරන්න බලාපොරොත්තු වෙන්නේ බොහොම සරල ඒත් ගොඩක් දෙනාට වැදගත් වේවි කියල හිතෙන මාතෘකාවක්. හැම දෙනාම හොඳට අහල තියන වචනයක් තමා Server කියන්නේ. ඒත් මේ Servers ගැන තවදුරටත් දැන ගන්න ආස අයට මේ පෝස්ට් එක යම් උදව්වක් වේවි කියල හිතෙනවා.
Server කිව්වම හැම දෙනාටම මතක් වෙන්නේ ලොකු පරිගණකයක්. නමුත් ඒකට කියන්නේ Server කියල නෙමෙයි, Server Computer (සර්වර් පරිගණකය) කියලයි. Server එකක් කියන්නේ, යම්කිසි සේවාවක් ලබාදීම සඳහා කැපවී සිටින පරිගණක වැඩසටහනක්(program). මෙහිදී එක් වැඩසටහනක් හෝ කීපයක් වෙන්නත් පුළුවන්. Server Computer එකක් කියන්නේ, මෙවැනි වැඩසටහන් සඳහා වෙන්වූ විශේෂ පරිගණකයක්.
සාමාන්‍යයෙන් Server Computer සඳහා විශේෂ වූ දෘඩංග සහිත පරිගණක භාවිතා කරනවා. ප්‍රොසෙසර් කීපයක්, විශාල රැම් ධාරිතාවයක්, විශේෂ දෘඪ තැටි වර්ග, Network port කීපයක්, ජව සැපයුම්(power supply) දෙකක්, සාමාන්‍යයෙන් Server Computer සඳහා භාවිතා වෙනවා. නොයෙක් ආයතන තමාට අවශ්‍ය ධාරිතාවන්ට, Server වර්ගය අනුව, වැය කල හැකි මුදල අනුව, විවිධ වර්ගයේ Server Computers භාවිතා කරනවා.
උදාහරණයක් විදියට‍ ඒක Server computer Specification(විස්තරයක්) එකක් අරන් පැහැදිලි කරන්නම්.
  • Six-Core Intel® Xeon® ප්‍රොසෙසර් 2ක්.
    මෙවායේ ‍ප්‍රොසෙසර් වේගය(Clock Speed) 3.33GHz පමණ වන ඒවාය. එය අප එදිනෙදා භාවිතා කරන පරිගණක වල වෙග‍යට ආසන්න වුවද මේවායේ කෑෂ් මතකය(Cache Memory L3) 12MB පමණවේ. තවද මෙවැනි ප්‍රොසෙසර් Core 6කින් සමන්විත වූ ප්‍රොසෙසර් 2ක් ඇති නිසා මේවායේ බලය ඉතා අධිකය. එක් ප්‍රොසෙසරයක් 130W පමණ වු ක්ෂමතාවයකින් ක්‍රියාත්මක වේ. බස් වේගය(Bus Speed) DDR3-1333 වේ.
  • 12GB රැම් මතකය(2GB රැම් 6ක් යොදා ගනී)
    මේවායේ මතකය 192GB වැනි ඉතා විශාල අගයකට වැඩි කරගත හැකි අතර රැම් කවුළු(RAM Slots) 18 කින් සමන්විත වේ. බස් වේගය(Bus Speed) DDR3-1333 කි.
  • Raid Controller (redundant array of independent disks)
    සාමාන්‍යයෙන් Server පරිගණක වලට දෘඪ තැ‍ටි කිහිපයක් සම්බන්ධ කරනු ලැබේ. මෙසේ දෘඪ තැටි කිහිපයක් මෙහෙයුම් පද්ධතිය මගින් පෙන්වීම කරදරකාරී බැවින් ස‍හ දෘඪ තැටි වල කාර්යක්ෂමතාවය වැඩි කිරීම සඳහා Raid Controllers භාවිතා කරනු ලැ‍බේ.  මෙමගින් Server පරිගණකයේ ඇති දෘඪ තැ‍ටි සියල්ල එක් දෘඪ තැ‍ටියක් ලෙස පෙන්වන අතර ඒවා‍ ඔනෑම අවස්ථාවක ‍ගලවා මාරු කිරීමද(ක්‍රියාකාරී අවස්ථාවේදී පවා - Hotswap) කල හැකිය. මෙලෙස එක් දෘඪ තැ‍ටියක් ගැලවීමේදි හෝ ක්‍රියා විරහිත වීමකදී, අනෙකුත් දෘඪ තැ‍ටි  තුළ ඇති දත්ත භාවිතයෙන් එම නැතිවූ දත්ත නැවත ලබාගත හැකි වීම Raid වල ඇති විශේෂ ලක්ෂණයකි.
  • 8*150GB (150GB වන දෘඪ තැටි 8ක්)
    Serial-attached SCSI (SAS) සහ Serial ATA (SATA) drives වැනි අ‍ධිවෙගී දෘඪ තැ‍ටි වර්ග‍යන් මේ සඳහා භාවිතා වන අතර මේවා ඕනෑම අවස්ථාවක ගලවා දැමිය හැක(hotswap)
  • 2 Dual Gigabit Ethernet adapters
    එක් Ethernet කාඩ් එකක දෙක බැගින්, 1Gbps ජාල සම්බන්ධක 4කින් සමන්විතය ඒ වාගේම මෙම Ethernet සම්බන්ධක හරහා iSCSI(Internet Small Computer System Interface) Storage Servers, නැතහොත් ජාලගත දත්ත ගබඩා සම්බන්ධ කල හැක.
  • 750W ජව සැපයුම් ‍2ක්
    මෙහි එක් ජව සැපයුමක් අමතර(Redundant) එකක් වන අතර මෙවා ඕනෑම අවස්ථාවක මාරු කල(Hotswap) හැකිය. ජව සැපයුම් ‍2 ම ඇති විටදී ඒ දෙකම එකවර අඩු ක්ෂමතාවයකින් ක්‍රියාත්මක වන අතර එකක් අක්‍රිය වුවහොත් හෝ ගලවා දැමුවහොත්,  ඉතිරි ජව සැපයුම් ‍මගින් Server පරිගණකය අක්‍රිය නොවී පවත්වාගෙන යයි.
  • සාමාන්‍යයෙන් Server පරිගණක වල වීඩියෝ මතකය, සවුනඩ් කාඩ්ස් යන ඒවා එතරම් සලකා බලන්නේ නැත. එනමුත් සාමාන්‍ය ප්‍රමාණයේ වීඩියෝ මතකයක්ද, ‍මූසික/යතුරු පුවරු සම්බන්ධක‍යන්ද (Mouse/Keyboard Connector) අන්තර්ගතව ඇත.
DL380 G6 වර්ගයේ Server පරිගණකයක ඇතුලත
(විශාල කර බැලීමට Click කරන්න)

ගොඩක් Server පරිගණක කෙළින්ම මොනිටර් ආදියට සම්බන්ධ කරගෙන පාවිච්චි කරන්නේ නෑ.  ඒවා තැන්පත් කිරීමට විශේෂ පාරිසරික තත්ත්ව (උෂ්ණත්වය, ආර්ද්‍රතාව වැනි) යටතේ ඇති Server Rooms නැත්නම් Data Center වගේ විශේෂ ස්ථාන සකස් කරල තියනවා. වෙනත් පාලක ස්ථානයක(Operation Center) ඉඳගෙන දුරස්ථව(Remote Login) තමයි මේ Server පරිගණක වලට සම්බන්ධ වෙන්නේ.
නමුත් ඒවායේ මෙහෙයුම් පද්ධතිය ස්ථාපනය කිරීමට හා දුරස්ථව සම්බන්ධ විය නොහැකි අවස්ථාවන් වලදී Server පරිගණක කෙළින්ම මොනිටර, මූසික හා යතුරු පුවරුවට සම්බන්ධ කිරීමට සිදුවෙනවා. ඒ නිසා Server පරිගණක,  Server Rooms(Data Center) තුළ ඇති KVM Switch නැමති විශේෂ උපකරණයක් හරහා මොනිටරය, මූසිකය හා යතුරු පුවරුවට සම්බන්ධ කෙරෙනවා.
මේ KVM Switch එක කියන්නේ සරල උපකරණයක්. ඒ උපකරණයට පරිගණක කිහිපයක ඇති මොනිටර, මූසික හා යතුරු පුවරු ප්‍රතිදාන(Output) සියල්ලම ස්විචයක් හරහා එක මොනිටරයකට, මූසිකයකට හා යතුරු පුවරුවකට සම්බන්ධ කරන්න පුඵවන්.
සාමාන්‍ය KVM ස්විචයක් මොනිටරය, මූසිකය හා යතුරු පුවරුව සහිත KVM ස්විචයක්

කෙ‍සේ වුවත් අපි සාමාන්‍යයෙන් භාවිතා කරන පුද්ගලික පරිගණකය හෝ ලැප්ටොප් පරිගණකය උණත් Server Computer එකක් බවට පත් කරගන්න පුළුවන්. ඒ සම්බන්ධව ඉදිරි ලිපි වලදී කතා කිරීමට බලා පොරොත්තු වෙනවා.
ඒ වාගේම ඉහත සඳහන් කල කරුණු සහ උපකරණ ගැනත් ඉදිරි ලිපි වලදී වැඩි විස්තර සහිතව කතා කිරීමට බලාපොරොත්තු වෙනවා. මෙම ලිපියේ සඳහන් කරුණු සම්බන්ධව හෝ මේ බ්ලොගය සම්බන්ධව යම් ගැටළු, යෝජනා, චෝදනා තියෙනවනම් ඒවා කමෙන්ටුවකින් සඳහන් කරන්න.

Tuesday, August 3, 2010

මා ගැන යමක්

ආයු‍‍බෝවන් හැමෝටම,
මේ බ්ලොග් පෝස්ට් එකත් එක්කම මමත් ඔයගොල්ලන්ගේ බ්ලොග් ලෝකයට අලුත් සාමාජිකයෙක් විදියට එකතු වෙනවා. අවුරුදු ගණනාවක්ම බ්ලොග් එකක් ලියන්න ඕනේ කියල හිත හිතා උන්නට ඒ වැ‍ඩේ හැමදාම කල් ගිහින්, අද තමයි ඇත්තටම ලියන්න පටන් ගත්තේ.  ඔයගොල්ලො අනිත් අය වගේම මාවත් බ්ලොග් ලෝකයට සාදරයෙන් පිළිගනීවි කියල හිතනවා.
මම සුපුන් මධුශංක, ඉපදුනේ මාතර, පොඩිකාලේ හැදුනේ වැඩුනේ ලුණුගම්වෙහෙර කියන පුංචි නගරයක. පහ වසර දක්වා පාසල් ගියේ ඒ නගරයේ තියෙන, හ/ කු‍ඩාගම්මාන 03 කණිටු විදුහලට. ඊට පස්සේ අපි ‍අපේ අම්මගේ ගම වුනු ‍බෙලිඅත්ත නගරයට පදිංචිය‍ට ආවා. උසස් පෙළ දක්වා පාසැල් ගියේ හ/ වීරකැටිය රාජපක්ෂ මධ්‍ය මහා විද්‍යාලය‍ට. ඒ අතරතුර හ/ වීරවිල මහා විද්‍යාලය, හ/ අම්බල මහා විද්‍යාලය, මාර/ රාහුල මහා විද්‍යාලය යන පාසැල් වලටද ඇතුළත් වෙලා ඉඳල තියනවා.
‍කොහොම හරි දෙවන වර උසස් පෙළ විභාගයෙන් සමත් වෙලා කොළඹ විශ්ව විද්‍යාලයේ පරිගණක අධ්‍යයනායතන‍ය‍ට, පරිගණක විද්‍යා සිසුවෙක් විදියට තේරුණා. විශ්ව විද්‍යාලයේ අවුරුදු තුනක කාලය අවසන් වෙනකොට "System and Network Administration" කි‍යන දේ තමයි මගේ ප්‍රියතම මාතෘකාව වුණේ. ඒ උනන්දුව නිසාම මගේ පළවෙනි රැකියාව "System and Network Administration" සම්බන්ධ එකක් කර ගැනීමට පුලුවන් වුනා.
විශ්ව විද්‍යාලයේ දෙවන වසරේදී පැවැන් වුණු, "Sri Lanka Genius" ප්‍රශ්න විචාරාත්මක තරඟාවලියේදී, එම තරඟ කරුවන්‍ට ‍බෙදා දීම සඳහා ‍‍‍"Customized Ubuntu" ලිනක්ස් සීඩී තැටියක් නිර්මාණ‍ය කිරීමෙන් ඇරඹුනු ලිනක්ස් පිළිබඳ ආසාව නිසාම මගේ රැකියාව "Linux" පාදක කරගත් එකක් බවට පත් වුණා.
මගේ පළමු රැකියාව ලැබුණේ කොළඹ විශ්ව විද්‍යාලයේ "NOC" (Network Operation Center) එකට. එහි 99% භාවිතා වෙන්නේ Linux. UTP (Unshielded Twisted Pair) Cable සෑදීමේ සිට විවිධ Servers Configure කිරීම දක්වා Linux සහ Network පිළිබඳ මනා දැනුමක් ඒ තුළින් ලබා ගත හැකි වුණා.
මේ බ්ලොග් එක ලිවීමට ඒක හේතුවක් වුනේ, ඒ ලබාගත් දැනුම අනිත් අයත් සමඟ ‍බෙදාහදා ගන්නයි. ඒ වගේම Linux, Network හා System සම්බන්ධයෙන් ගැන ආසාවක් තියන අයටත් මේ බ්ලොග් එක ‍‍යම් උදව්වක් වේවි කියල හිතනවා.