Sunday, November 25, 2018

RAID အေၾကာင္းသိေကာင္းစရာ


RAID ဆိုသည္မွာ Redundant Array of Independent Disk လုိ႔ေခၚပါတယ္။ Disk ေတြအမ်ားၾကီးကို Redudant အပိုထားျပီး Array ပံုစံျပဳလုပ္ထားတာကို RAID လုိ႔ေျပာတာပါ။ RAID ဆိုတာက Computerရဲ႕ Fault Toleranceနဲ႕ Preformanceေတြ အတြက္ Disk၂ ခု(သုိ႔) ၂ခု ထက္ပိုတဲ ့Disk ေတြကို ေပါင္းစည္းထားတဲ့ Disk Driveကိုေျပာျခင္းျဖစ္ပါတယ္။ ပံုမွန္အားျဖင့္ Disk ေတြဟာ Basic Disk အျဖစ္ရပ္တည္ၾကပါတယ္။ ဒါေပမယ့္လုိ႔ RAID အသံုးျပဳဖုိ႔အတြက္ေတာ့ Dynamic Diskေတြကိုပဲ သံုးၾကပါတယ္။ ဒါေၾကာင့္ RAID အသံုးျပဳေတာ့မယ္ဆိုရင္ Basic Disk ေတြကို Dynamic Diskေတြအျဖစ္ ေျပာင္းေပးရပါတယ္။ RAID အမ်ိဳးအစားအမ်ားအျပား ရွိပါတယ္။ ၄င္းတုိ႔မွာ RAID-0, RAID-1, RAID-2, RAID-3, RAID-4, RAID-5, RAID-6, RAID-7, RAID-10 နဲ႕ RAID-53 တို႔ျဖစ္ၾကပါတယ္။ Windows Server 2003 က RAID-0, RAID-1 နဲ႕RAID-5ကိုပဲ Supportလုပ္ပါတယ္။



RAID-0



            RAID-0 ကို တစ္နည္းအားျဖင့္ Striped Volume လုိ႔လည္း ေခၚပါတယ္။ RAID-0 မွာ Data ေတြကို အပိုင္းပိုင္းျဖတ္ျပီးေတာ့ Hard Disk ေတြအမ်ားၾကီးမွာ ခြဲျခားျပီး သိမ္းတာပါ။ RAID-0မွာ Parity မပါရွိပါဘူး။ Parity မပါရွိတဲ့အတြက္ Fault Tolerance မရပါဘူး။ ဆိုလုိတာက RAID-0 ထဲမွာ Disk တစ္ခုခုပ်က္စီးသြားလွ်င္ ၄င္း RAID ထဲမွာရွိတဲ့ Data ေတြအားလံုး ပ်က္စီးသြားမွာပါ။ RAID-0 မွာ Parity မပါရွိတဲ့အတြက္ Hard Diskရဲ႕ Read Write Head မ်ားဟာ Parity ဆိုတဲ့ ၀န္ထုတ္၀န္ပိုးၾကီးကို မထမ္းေဆာင္ရျခင္းေၾကာင့္ Performance အရမ္းေကာင္းပါ တယ္။ Windows မွာရႏိုင္တဲ့ RAIDေတြထဲမွာ RAID-0 ဟာ Performance အေကာင္းဆံုးျဖစ္ပါတယ္။RAID-0 ကိုအသံုးျပဳမယ္ဆိုရင္ Hard Disk ၂ ခု(သို႔) ၂ခု အထက္ လိုအပ္ပါတယ္။ RAID-0 မွာ Disk ၂ ခုအသံုးျပဳျပီဆိုရင္ Dataေတြဟာ ၄င္း Disk ၂ ခုလံုးေပၚမွာ Data ေတြကို တစ္ျပိဳင္ထဲ သိ္မ္းႏုိင္ပါတယ္။ ဒါေပမယ့္ RAID-0 မွာ Protection ပိုင္းမရတဲ့အတြက္ အႏၱရယ္မ်ားပါတယ္။



















RAID-1

            RAID-1 ကို တစ္နည္းအားျဖင့္ Mirror Volume လုိ႔လည္းေခၚပါတယ္။ RAID-1ဆိုတာ Physical Disk ၂ ခုေပၚမွာ Data ေတြကို ပံုတူ ကူးတဲ့ RAID ျဖစ္ပါတယ္။ ရႈပ္မသြားနဲ႕ေနာ္။ ပံုတူကူးတယ္ဆိုတာဗ်ာ Data A ကို သိမ္းမယ္ဆိုလုိ႔ရွိရင္ Disk 1 မွာေရာ Disk 2 ႏွစ္ခုစလံုးမွာ သြား သိမ္းတဲ့အတြက္ေၾကာင့္ Disk 1 ပ်က္သြားရင္လည္း ကၽြန္ေတာ္တုိ႔က Disk 2 ကို သံုးလို႔ရတာေပါ့။ ဟုတ္တယ္ေနာ္။ အဲဒါေၾကာင့္ေျပာတာ RAID-1ကို Fault Tolerance အတြက္ အသံုးျပဳတာလုိ႔။ ျပန္ေျပာမယ္ေနာ္။ RAID-1မွာ RAID ထဲက Disk တစ္ခုခုပ်က္စီးသြားလုိ႔ရွိရင္ ၄င္း RAID ထဲက Data ေတြဆံုးရံႈးမသြားပဲနဲ႕ က်န္ရွိတဲ့ Disk ေတြကုုုုုုုုိ အသံုးျပဳျပီး ဆက္လက္အလုပ္လုပ္လုိ႔ ရပါတယ္။ အဲ....RAID-1ကို အသံုးျပဳမယ္ ဆုိရင္ေတာ့ အနည္းဆံုး Disk ၃ ခုလုိအပ္တာေပါ့။ Disk ၃ ခုထက္ပိုသံုးခ်င္ရင္လည္း ရတယ္ေနာ္။ RAID-1ဟာ RAID ေတြထဲမွာ အေျခခံအက် ဆံုးနည္းလမ္းျဖစ္ပါတယ္။ RAID-1 ဟာ ရိုးရွင္းတယ္၊ အသံုးျပဳရတာလြယ္ကူတယ္။ အႏွစ္ခ်ဳပ္ေျပာေတာ့မယ္။RAID-1ဟာ 100% Data Redundancy ရွိတယ္။ High Performance ရတယ္။ အဲ.....သူရဲ႕အားနည္းခ်က္ကေတာ့ Disk Storage Capacity မွာ တစ္၀က္ပဲအသံုးျပဳလို႔ ရတယ္။ ဟုတ္တယ္ေလ Disk ႏွစ္ခုသံုးမွ Disk တစ္ခုစာပဲ သိမ္းလို႔ရသာမဟုတ္လား။



















RAID-2
            RAID-2 ဆိုတာတစ္နည္းအားျဖင့္ RAID Level 2 ကိုေျပာျခင္းျဖစ္ပါတယ္။ RAID-2ဟာ Bit-Level Striping ျဖစ္ပါတယ္။ RAID-2 မွာ Parity အစား ECC (Error Correcting Code) Information ေတြကို သိမ္းတာပါ။ ဆိုလုိတာက Data ေတြသိမ္းတဲ့အခါမွာ RAID-2 ဟာ Data ေတြကို Bit-Level မွာ Split လုပ္ျပီး ၄င္း Split လုပ္ထားတဲ့ Data ေတြကို Data Disk နဲ႔ ECC Diskေတြေပၚမွာ ျဖန္႔ျပီး သိမ္းပါတယ္။ ECCဟာ Data ေတြေရးတဲ့အခါေရာ ျပန္ဖတ္တဲ့အခါမွာပါ အမွားရွိမရွိစစ္ေဆးေပးပါတယ္။ ECC ဟာSingle-Bit Error ကိုပဲ Correct လုပ္ႏိုင္ျပီး  Multiple-Bit Errorကို Correctedမလုပ္ႏိုင္ပါဘူး။ ဒါေၾကာင့္မို႔လုိ႔ RAID-2 ဟာProtection ပိုင္း သိပ္မေကာင္းပါဘူး။Performance ပိုင္းမွာ လည္း RAID-2 ဟာ Bit-Level ျဖစ္တဲ့အတြက္ Multiple Access လုပ္လို႔ို မရပါဘူး။ ဒါေၾကာင့္ Performance ပိုင္းလည္းအရမ္းမေကာင္းပါဘူး။
 RAID-2 ကို အသံုးျပဳမယ္ဆိုရင္ အနည္းဆံုး Hard Disk ၆ လံုး လုိအပ္ပါတယ္။ Hard Disk ၅ လံုးက Data အတြက္က်န္တဲ့ Hard Disk တစ္လံုး က ECC အတြက္ပါ။ ဥပမာ- Hard Disk ၁၄ လံုး ခ်ိတ္မယ္ဆိုရင္ ၁၀ လံုးက Data အတြက္ က်န္တဲ့ Hard Disk ၄ လံုးက ECC အတြက္ ျဖစ္ပါတယ္။ RAID-2 မွာ Disk ေတြအမ်ားၾကီး လုိအပ္တဲ့အတြက္ ေစ်းၾကီးတာရယ္၊ လုိအပ္တဲ့ Controller ကရႈပ္ေထြးတာေတြရယ္ေၾကာင့္ အခု ေနာက္ပိုင္းစနစ္ေတြမွာ RAID-2 ကို အသံုးမျပဳၾကပါဘူး။




RAID-3
            RAID-3 ဟာ Byte-Level Striping ျဖစ္ပါတယ္။ RAID-3 ဟာ Data ေတြကို Hard Disk အားလံုးမွာ ခြဲျပီးသိမ္းျခင္းျဖစ္ပါတယ္။ RAID-3 မွာ Parity ပါရွိပါတယ္။ ဒါေပမယ့္ Parity နဲ႕ Data ေတြကို ေပါင္းျပီးမ
သိမ္းပါဘူး။ သီးျခားစီးသိမ္းျခင္းျဖစ္ပါတယ္။ ဆိုလုိတာက Data ေတြကို Data Disk ေတြမွာသိမ္းျပီး
Parity ကိုသီးျခားHard Disk ေပၚမွာ သိမ္းတာပါ။ RAID-3 ကို အသံုးျပဳမယ္ဆိုရင္ အနည္းဆံုး Hard Disk ၃ လံုး လိုအပ္ ပါတယ္။ RAID-3 မွာ အသံုးျပဳမယ့္  Hard Disk ေတြဟာ Size ေရာ အမ်ိဳးအစားပါ တူရပါမယ္။ RAID-3 မွာ Parity ပါရွိတဲ့အတြက္ Fault Tolerance ရပါတယ္။ ဥပမာ RAID-3 ထဲမွ Hard Disk တစ္လံုးပ်က္စီးသြားလွ်င္ ၄င္းRAID ထဲမွ Data မ်ား ဆံုးရံႈးသြားျခင္းမရွိဘဲ ဆက္လက္ျပီး Access လုပ္လုိ႔ရပါတယ္။ ၄င္းဆံုးရံႈးသြားတဲ့ Disk ကို Rebuild လုပ္လုိ႔ရပါတယ္။ လက္ေတြ႕မွာ RAID-3 ဟာ အရမ္းရွားပါးပါတယ္။ RAID-3 ဟာ Technologyပိုင္း အနည္းငယ္ရႈပ္ေထြးတာရယ္၊ Random နဲ႔ Small I/O Operation မွာ Performance ေႏွးတာေတြရယ္ေၾကာင့္ပါ။


















RAID-4
            RAID-4 ဟာ Block-Level Striping ျဖစ္ပါတယ္။ RAID-4ဟာ RAID-3 နဲ႕ပံုစံတူပါတယ္။ RAID-4မွာလည္းပဲ Data ေတြကို Hard Diskအားလံုးမွာျဖန္႔ျပီး သိမ္းပါတယ္။ Parity ပါရိွပါတယ္။ Dataေတြကို Data Diskမွာ သိမ္းျပီး Parity ကို သီးျခားDisk မွာ သိမ္းပါတယ္။ RAID-4 မွာ RAID-3နဲ႕ မတူညီတဲ့အခ်က္က RAID-3 မွာကဲ့သုိ႔ Byte-Levelမွာ မဟုတ္ပဲ Block-Levelမွာ အလုပ္လုပ္တာျဖစ္တဲ့အတြက္ Performance ပိုေကာင္းပါတယ္။ Parity ပါရွိတဲ့အတြက္ Fault Tolerance လည္းရပါတယ္။ RAID-4 ထဲမွာ Disk တစ္ခုခု Fail ျဖစ္သြားရင္ ၄င္းRAIDထဲမွ Dataမ်ား ဆံုးရံႈးသြားျခင္းမရွိဘဲ ၄င္း Fail ျဖစ္သြားတဲ့ Diskကို ျပန္ျပီး Rebuild လုပ္ေပးလုိ႔ရပါတယ္။ RAID-4 ကို အသံုးျပဳလွ်င္ အနည္းဆံုး Disk ၃ ခု လို အပ္ပါမယ္။ Data Disk က ၂ ခုနဲ႕ Parity အတြက္ Disk ၁ ခု ျဖစ္ပါတယ္။ RAID-4 ကိုလည္းပဲ လက္ေတြ႔မွာ အသံုးနည္းပါတယ္။ ဘာေၾကာင့္လဲ ဆိုေတာ့ RAID-4 မွာ Read Request ေတြကို တစ္ျပိဳင္နက္တည္းေရးတဲ့အခါမွာ Parity က Disk တစ္ခုျဖစ္တဲ့အတြက္ Bottle Neckျဖစ္လာတဲ့အ တြက္ Write Performance အားနည္းလုိ႔ပါပဲ။

















RAID -5

                      RAID -5 ဟာလည္း striped volume ကဲ႕သို႕data ေတြအပိုင္းပိုင္းျဖက္ၿပီးHard disk ေတြအမ်ားႀကီးမွာ ခြဲျခားၿပီး သိမ္းျခင္းပါပဲ။RAID-5 ဟာ Striped volume နဲ႕ ကြာျခားတဲ႕အခ်က္ကေတာ႔ parity ပါ႐ွိျခင္းပဲျဖစ္ပါတယ္။RAID-5 ဟာ RAID-3 နဲ႔ RAID-4 တို႔နဲ႔လည္း Parity ပါရွိတာျခင္းတူပါတယ္။မတူညီတဲ႔အခ်က္ကေတာ႔ RAID-5  မွာ parity ကိုသီိိးျခားမသိမ္းပါဘူး။ data ေတြနဲ႕ parity ကိုိေရာၿပီးသိမ္းပါတယ္။ ဆိုလိုတာက RAID -5 မွာ parity ပါ႐ွိတဲ႕အတြက္ faull Tolerance ရပါတယ္။parity ရဲ႕တာ၀န္ကိုထမ္း ေဆာင္ေန၇တဲ႕အတြက္ေၾကာင္႔ Stripel volume ကဲ႕သို႕ performance အားမေကာင္းပါဘူး။RAID -5 မွာအနည္းဆံုး Hard disk(3) လံုးကေန (3) လံုးအတက္လိုအပ္ပါတယ္။Real World မွာေတာ႕ Hard disk (5) လံုးအထက္ အသံုးျပဳၾကပါတယ္။ RAID -5 ဟာ RAID ေတြထဲမွာ popular အျဖစ္ဆံုး RAID ပါပဲ ။ RAID -5 မွာHard disk (5) လံုးတပ္ဆင္ၿပီး အ သံုးျပဳမယ္ဆိုရင္ အမွန္တကယ္data သိမ္းလို႕ရတာက Hard disk (4)လံုးစာပဲရမွာပါ ။Hard disk (1)လံုးစာက parity အတြက္ေနရာေပးရပါတယ္။ RAID - 5 ဟာ Mirror Volume ကဲ့သို႔ Fault Tolerance ရပါတယ္။ ဆိုလုိတာက RAID - 5 မွာ  RAID - 5 ထဲမွ disk တစ္ခုခုပ်က္စီးသြားေသာ္လည္းပဲ ၎ Volume ထဲမွ data မ်ားပ်က္စီးသြားျခင္းမရွိပါဘူး။ ၎ပ်က္စီးသြားတဲ့ disk ကို က်န္ရွိတဲ့ disk မ်ားထဲမွ data ေတြနဲ႔ Parity information ေတြအသုံးျပဳၿပီးျပန္လည္တည္ေဆာက္လုိ႔ရပါတယ္။  အႏွစ္ခ်ဳပ္ေျပာရမယ္ဆိုရင္ RAID -5 ဟာ performance လည္းေကာင္းတယ။္ protection ပိုင္းလည္းေကာင္းတယ္။RAID-5 ရဲ႔အားနည္းခ်က္က RAID-0 ေလာက္မျမန္ဘူး RAID -1ေလာက္ protectionပိုင္းမေကာင္းဘူး။





2 comments: