Tuesday, July 15, 2014

Storage Overview



Storage Overview
 
Storage အပိုင်းကိုစပီးလေ့လာမယ်ဆိုရင်.. ပထမဦးဆုံးသိထားရမယ့်အချက်တွေရှိပါတယ်။ အဲဒါတွေက ဘာတွေလဲဆိုတော့ DAS, NAS & SAN တို့ဖြစ်သလို RAID အကြောင်းလဲသေသေချာချာသိဖို့ လိုအပ်ပါတယ်။ DASဆိုတာဘာလဲ ? NAS ဆိုတာဘာလဲ ? SAN ဆိုတာဘာလဲ? ဆိုတာအရင်ဆုံးသိဖို့လိုအပ်တယ်။ (ကျွန်တော့ အယူအဆ) DAS ဆိုတာက Direct attach storage. အခု ကျနော်တို့ လက်ရှိအသုံးပြုနေတဲ့  လက်တော့တွေ ကွန်ပျူတာတွေမှာ တွဲလျှက်(Built_In)ပါလာတဲ့HDD ကိုတိုက်ရိုက်ချိတ်ဆက်အသုံးပြုတာမျိုးကို DAS လို့ခေါ်ပါတယ်။ External HDD တွေကို Laptop & Desktop တွေမှာချိတ်ဆက်အသုံးပြုတာမျိုးကိုလဲ DAS လို့ခေါ်တယ်။ နောက်တခုက NAS အကြောင်း။ NAS ဆိုတာ Network Attach Storage။ သူကျတော့  Local Network အတွင်းမှာ Share သုံးနိုင်သလို WAN Network အတွင်းမှာရှိတဲ့ user ပေါင်းမြောက်များစွာမှ ၎င်း NAS ကို share ပီးအသုံးပြုနိုင်တယ်။ NAS မှာ Support လုပ်ပေးနိုင်တဲ့ Protocols တွေအများကြီးရှိတယ်။ ဥပမာ။   ။ NFS, SMB/CIFS or AFP…
ထိုနည်း၎င်းပဲ SAN ကို Support လုပ်တဲ့ Protocols တွေရှိပါတယ်။ ဥပမာ။   ။ iSCSI , Fibre channel, ATA over Ethernet(AOE) and HyperSCSI စသည်ဖြင့်။ SAN and NAS ရဲ့ Definition ကို ရိုးရှင်းလွယ်ကူစွာ ခွဲခြားနိုင်ပါတယ်။ NAS ရဲ့ အလုပ်လုပ်ဆောင်ပုံက Unstructured Data Type အမျိုးအစားကို Support ပေးနိုင်ခြင်းဖြစ်ပါတယ်။ Unstructured Data ဆိုတာဘာလဲဆိုတော့ အခု ကျနော်တို့ လက်ရှိအသုံးပြုနေတဲ့ File အမျိုးအစားတွေဖြစ်တယ်။ Office နဲ့ ပတ်သတ်တဲ့ file တွေ movies တွေ Application တွေ အစရှိတဲ့ file type အမျိုးအစားတွေကိုခေါ်တယ်။ တနည်းအားဖြင့် File_Based အမျိုးအစားလို့လဲခေါ်ပါတယ်။

SAN ရဲ့အလုပ်လုပ်ဆောင်ပုံက Structured Data Type အမျိုးအစားကို Support ပေးနိုင်ခြင်းဖြစ်ပါတယ်။ Structured Data ဆိုတာဘာလဲဆိုတော့ MsSQL, Oracle အစရှိတဲ့ Database fileတွေကို ဆိုလိုခြင်းဖြစ်တယ်။တနည်းအားဖြင့် Block_Based လို့လဲခေါ်ကြပါတယ်။ ဒီတော့ကား ကိုယ့်ရဲ့ Environment မှာ ဘယ်လို Data Type အမျိုးအစား အသုံးပြု နေတယ်ဆိုတာသိရှိပါက ကျနော်တို့အနေနဲ့ အကြမ်းဖြင်းအားဖြင့် NAS သုံးရမလား SAN သုံးရမလား ဆိုတာ သိနိုင်လိမ့်မယ်လို့မျှော်လင့်ပါတယ်။ ယခုနောက်ပိုင်း နည်းပညာတွေမြင့်မားလာတာနဲ့အမျှ အရင်လို SAN သတ်သတ် NAS သတ်သတ် ခွဲခြားစရာမလိုအောင် နည်းပညာပိုင်းဖွံ့ဖြိုးတိုးတက်လာကြပါတယ်။ Unified ဆိုတဲ့ နည်းပညာ ပေါ်လာပီးတဲ့နောက်မှာ File Type နှစ်မျိုးစလုံး (File_based & Block_based)ကို Support လုပ်နိုင်သွားပါတယ်။ ကျန်တဲ့အပိုင်းကတော့ ကိုယ့်လိုအပ်လျှင်လိုအပ်သလို Customize လုပ်နိုင်သွားပါပီ။


Redundancy Array Of Independent Disk ( RAID )

နောက်တခုက Storage ပိုင်းကို လေ့လာမယ်ဆိုရင် မသိမဖြစ်သိနေရမှာက RAID ( Redundant Array of Independent Disk ) အကြောင်းဖြစ်တယ်။ တကယ့် Environment မှာ အသုံးများဆုံး Raid အမျိုးအစားအကြောင်းတွေကိုပဲ ပြောပြပေးသွားမှာပါ။

Raid 0, Raid 1, Raid 5, Raid 6, Raid 10 (also known as RAID 1 + 0) and Raid 01 (also known as RAID 0 = 1)



Raid 0

Raid 0 မှာ Mirror မရှိသလို Parityလည်း မရှိပါ။ Blocks အနေနဲ့ကတော့striped အနေနဲ့သွားပါတယ်။

အားသာချက်တွေကတော့…Performance အနေနဲ့ကတော့ ပြောစရာမလိုအောင် ကောင်းတယ်။ အနည်းဆုံး HDD 2 လုံးလိုအပ်ပါလိမ့်မယ်။ အားနည်းချက်ကတော့ Redundancy မရှိဘူး။ ဘာကြောင့်လဲဆိုတော့ ( no mirror & no parity ) မရှိလို့ပါ။ Striping လို့လဲခေါ်ကြပါသေးတယ်။ အရေးကြီးတဲ့နေရာတွေမှာ Raid 0 ကိုမသုံးပါ။ ပုံလေးနဲ့ မြင်ရရင် ပိုရှင်းသွားမယ်ထင်တယ်။


Raid 1
Raid 1 ကိုအသုံးပြုမယ်ဆိုရင် အနည်းဆုံး HDD ၂ လုံးလိုအပ်ပါလိမ့်မယ်။ Performance အနေနဲ့ကတော့ Raid 0 လောက် Excellent မဖြစ်ပေမယ့် Good Condition လောက်တော့ရှိတယ်။ နောက်တခုက Redundancy အနေနဲ့ကတော့ Excellent တာအသေအချာပဲ။ သူက Mirror ကိုး။ သူ့မှာ Parity မရှိသလို Striping မရှိပါဘူး ဒါကြောင့် မြန်တာပါ။



Raid 5

Raid 5 ကို အသုံးပြုမယ်ဆိုလျှင် အနည်းဆုံး HDD ၃ လုံးလိုအပ်ပါလိမ့်မယ်။ Performance အနေနဲ့ကတော့ သူလည်းပဲ Raid 1 လိုပဲ Good Condition ပဲရှိတယ်။ Excellent တော့မဖြစ်ဘူး။ ဘာလို့လဲဆိုတော့ သူ့မှာ Striping ပါလာပီ။ Redundancy ကလဲ Good Condition. ဘာလို့လဲဆိုတော့ Parity 1 ခုခြင်းစီက က Any Disk မှာ ရှိနေလို့ပါ။ တနည်းအားဖြင့် Distributed Parity လို့လဲခေါ်ပါတယ်။ Raid 5 ကိုတော့ လက်ရှိ Environment မှာအသုံးများကြတယ်။ သူက Both Performance and Redundancy လဲရတယ်။ Cost အနေနဲ့ကြည့်မယ်ဆိုရင်လဲသက်သာတယ်။ များသောအားဖြင့် Database Environment တွေမှာသုံးကြတယ်။ ဘာလို့လဲဆိုတော့ကား Read Operation က မြန်တယ်။ Write Operation မှာတော့ အနည်းငယ် လေးပါတယ်။ Raid 5 ကိုအသုံးပြုမယ်ဆိုလျှင် 1 Disk Failure ကိုကာကွယ်နိုင်ပါတယ်။








Raid 6
Raid 6 ကိုအသုံးပြုမယ်ဆိုလျှင်တော့ 2 disk failure ကို ကာကွယ်ပေးနိုင်ပါတယ်။ Raid 6 ရဲ့ အလုပ်လုပ်ဆောင်ပုံက Raid 5 ရဲ့ အလုပ်လုပ်ဆောင်ပုံနဲ့ထပ်တူနီးပါးကျပါတယ်။ သူလည်းပဲ Write Operationမှာ အနည်းငယ် နှေးပါတယ်။ ထူးခြားတာတခုက Parity အနေနဲ့ Data Block တခုစီမှာ Parity 2 ခုစီပါတဲ့အတွက် Excellent Redundancy ပါ။



Raid 10 (also known as Raid 1 + 0)
Raid 10 ကတော့ အနည်းဆုံး HDD ၄လုံးလိုအပ်ပါလိမ့်မယ်။ သူ့ကိုကျတော့ Strip of Mirrors လို့လဲအသိများကြတယ်။ Redundancy မှာတော့ Raid 5 နဲ့မတူတော့ဘူး Excellent Condition ဖြစ်သွားပီ။ ဘာလို့လဲဆိုတော့ Blocksတစ်ခုခြင်းစီက Diskတွေတစ်ခုခြင်းစီကို mirror လုပ်ပါတယ်။ Performance မှာကျတော့သူက Excellent Condition ဖြစ်သွားပီ Disk တွေကိုStriped လုပ်သွားလို့ပါ။ Group ခွဲပီးတော့သူကအလုပ်လုပ်ပါတယ်။ Raid 10 ကတော့ Budget တတ်နိုင်တဲ့ ကုမ္ပဏီတွေအတွက် The Best Option ပါ။





Raid 01 (also known as RAID 0 +1)
Raid 01 ကိုအသုံးပြုမယ်ဆိုလျှင် အနည်းဆုံး HDD 3 လုံးပဲလိုအပ်ပါမယ်။ သူ့ကို Mirror of Stripes လို့လဲ လူအသိများကြပါတယ်။ Raid 01 က နည်းနည်းတော့ Complex ဖြစ်တယ်။ Group ၂ ခုခွဲရတယ်။ ဥပမာအနေနဲ့ HDD 6 လုံးရှိတယ်ဆိုပါဆို့။ ၃ လုံး တစ်Groupစီ ခွဲထားရပါမယ်။ A,B,C ဆိုပါစို့။ Group တခုခြင်းစီမှာ Data က Strip လုပ်ပါလိမ့်မယ်။Eg: HDD ၃လုံးရှိတဲ့ ပထမ Group မှာ First block (A) က first disk မှာရေးပါလိမ့်မယ်။အဲလိုပဲ second block (B) က second Disk ။ third block (C) က third Disk ။ ဒုတိယ Group မှာလည်း ထိုနည်းလည်းကောင်းပဲ။ဒါကြောင့် Disk 1 က  Disk 4 ကို mirror / Disk 2 က Disk 5 ကို Mirror / Disk 3 က Disk 6 ကို mirror လုပ်သွားပါလိမ့်မယ်။ Raid 01 အကြောင်းကိုဘာလို့ ရှင်းပြရတာလဲဆိုတော့ Raid 10 နဲ့ မတူတဲ့အချက်တွေကို သတိပြုမိအောင်လို့ပါ။ Performance အနေနဲ့ကတော့ Raid 10 & Raid 01 အတူတူပါဘဲ။ Capacity လဲအတူတူပဲ။ အဓိက ကွာခြားချက်က Fault Tolerance ပါ။ Raid 01 က Fault Tolerance နည်းတယ် Raid 10 ထက်ပိုပီးတော့။ ပထမ Group မှာရှိတဲ့ Disk 1 နဲ့ ဒုတိယ Group မှာရှိတဲ့ Disk 4 သာ Fail ဖြစ်ခဲ့မယ်ဆိုရင် Data အားလုံး Down သွားမှာပါ။ Raid 10 မှာ ကျတော့ Group တစ်ခုစီမှာရှိတဲ့ Disk တစ်လုံးစီ ပျက်သွားရင်တောင် Raid 10 က ဆက်လက်အလုပ်လုပ်နေအုံးမှာဖြစ်ပါတယ်။ 
 
Thanks

Ba Gyi Phyo