Storage အကြောင်းတစေ့တစောင်း – အပိုင်း(၂)
Last updated
Last updated
အပိုင်း(၁)မှာတော့ hard disk drive တစ်လုံးမှာ data တွေရေးဖို့ ဖတ်ဖို့အတွက်ဘာတွေပါသလဲဆိုတာရှင်းထားသွားပြီးတဲ့ နောက်မှာ အခုဒီအပိုင်းမှာတော့ solid state drive တွေအကြောင်း ကိုဆက်သွားပါ့မယ်။ Data တွေကို read/write လုပ်တဲ့ပုံမှာတော့ hard disk drive တွေမှာ magnetic wave ကိုအသုံးပြုပြီးတော့ 0 နဲ့ 1 တွေကို သိမ်းဆည်းပေးပြီးတော့၊ solid state drive မှာတော့ လုံးဝကိုခွဲထွက်သွားပါတယ်။ Hard disk drive ရဲ့ head ဆိုတာ အရှေ့အပိုင်းမှာတုန်း ရှင်းသွားတုန်းက Longitudinal Magnetic Recording (LMR) နဲ့ Perpendicular Magnetic Recording (PMR) အကြောင်းတွေကို transducer အကြောင်းပြောရင်း အနည်းအကျဉ်း ရှင်းပေးထားပါတယ်။ ဟိုတလောတုန်းက Western Digital (WD) ကသူ့ရဲ့ အနီရောင် Red drive ကို SMR သုံးထားကြောင်း မပြောပဲနဲ့ NAS အတွက်ဆိုပြီးတော့ ရောင်းတဲ့အတွက် နည်းပညာလောကထဲက အချို့လူတွေ ဒါကိုသိတော့ တော်တော်လေးကို အချဉ်ပေါက်ကြပါတော့တယ်။ SMR ဆိုတာကတော့ Shingled Magnetic Recording ကိုပြောတာပါ။ အစတုန်းကတော့ နားထောင်နေကြ Podcast တစ်ခုဖြစ်တဲ့ TechSNAP ရဲ့ episode 426 – Storage Stories မှာ WD ရဲ့ Red drive ကို စနှပ်တာ နားထောင်မိတော့ ဘာဖြစ်လို့များ ဒီလောက်တောင် SMR ဟာ အရေးပါလို့လဲပေါ့ဆိုပြီးတော့ တွေးမိပါသေးတယ်။ နောက်ပိုင်း သေသေချာချာလိုက်ရှာဖတ်ကြည့်မှပဲ WD-gate ရဲ့ SMR လှည့်ဖျားပုံကို သိရပါတော့တယ်။ WD အပြင်အခြားသော HDD vendor တွေမှာလည်း SMR အသုံးပြုတယ်လို့သိရှိရပါတယ်။ SMR ကို ပုံမှန် PC တို့ Laptop တို့အတွက် daily operation မှာ အသုံးပြုလို့ အဆင်ပြေသော်လည်း WD Red လိုမျိုး စျေးကြီးပေးရတဲ့ drive မှာအသုံးတာကတော့ လုံးဝလက်မခံနိုင်စရာပါ။ ဒီနေရာမှာ SMR ဆိုတာဘာလည်းလို့ အနည်းငယ် နားလည်အောင် အကျဉ်းချုပ် ဆွေးနွေးကြည့်ရအောင်။
နောက်ပိုင်းထွက်တဲ့ hard disk drive (HDD) တွေမှာ SMR ကိုတော်တော်လေး သုံးကြပါတယ်။ အထူးသဖြင့် capacity လည်းများပြီးတော့ စျေးလည်းပေါတဲ့ HDD တွေမှာ တွင်တွင်ကျယ်ကျယ်ကြီးကို အသုံးပြုတယ်။ ဘာကြောင့်လည်းဆိုတော့ SMR ကိုသုံးခြင်းအားဖြင့် data ကို hard disk ပေါ်မှာ write လုပ်တဲ့အခါ shingled ဆိုတဲ့အတိုင်း တစ်ခုနဲ့ တစ်ခုထပ်ထားတဲ့ အနေအထားမျိုးမှာ သိမ်းဆည်းတဲ့အတွက် storage space ကိုပိုရအောင် သွပ်ထည့်နိုင်တဲ့ recording ပုံစံတစ်ခုပါ။ အရှေ့မှာ ပြောခဲ့တဲ့ Perpendicular Magnetic Recording (PMR) ကိုအခုအချိန်မှာတော့ Conventional Magnetic Recording (CMR) ရယ်လို့ လူသိများကြပါတယ်။ SMR ကတော့နောက်ပိုင်းမှ budget HDD တွေမှာအသုံးပြုနိုင်အောင် ထည့်သွင်းအသုံးပြုတဲ့ recording တစ်ခုပါ။ Shingled ဆိုတဲ့ အဓိပ္ပာယ်ကတော့ အိမ်ခေါင်မိုးပေါ်မှာသုံးတဲ့ သွပ်တွေကို ထပ်ထားတဲ့ ပုံစံမျိုးကို ဆိုလိုပါတယ်။ ဒီတော့… data တွေကို တစ်ခုနဲ့ တစ်ခုထပ်ပြီးတော့ ထည့်သွင်း သိုလှောင်နိုင်တဲ့ အတွက် track လည်းပိုပြီးသေးသွားတယ်… အဲ့ဒီအတွက် track အရည်အတွက်ပိုများများကို ထည့်လို့ရတဲ့အတွက် data storage လည်း ပိုရလာတယ်။ ပိုများတဲ့ storage ကိုရနိုင်သော်လည်း performance အပိုင်းအတွက် ထိခိုက်မူတွေရှိပါတယ်။ Operating system layer မှာတော့ SMR လား CMR လားဆိုတာကို လုံးဝခွဲခြားလို့ မရနိုင်ပါ။
Track တစ်ခုနဲ့ တစ်ခုတဲ့ ထပ်ထားတဲ့ နေရာမှာ ပြဿနာက data တွေကို ရေးတဲ့အခါ အဲ့ဒီထပ်ထားတဲ့ track တွေပြဿနာတတ်ပါတော့တယ်။ ဆိုကြပါတော့… ထပ်ထားတဲ့ track နှစ်ခုမှာ အောက်က track မှာ ရေးထားပြီးသား data ရှိတယ်ဆိုရင်… အပေါ်မှာရှိတဲ့ track မှာ write operation လုပ်ရင် အောက်က track ရော အပေါ်က track ရော ပြန်ပြီးတော့ အဆင့်ဆင့် စီကာပတ်ကုံး ထည့်ဖို့ရာအတွက် အောက်က track ကိုပါပြန်ပြီးတော့ rewrite လုပ်ရပါတော့တယ်။ ဒါ့အတွက် write လုပ်တဲ့အခါမှာ CMR မှာထက် SMR မှာပိုပြီးတော့ ကြန့်ကြာဖို့ရှိပါတယ်။ ဒါကိုဖြေရှင်းဖို့အတွက် HDD vendor တွေဟာ write လုပ်လာတဲ့ data များကို buffer cache တွေမှာသွားပြီးတော့ အရင်သိမ်းဆည်းလိုက်ပါတယ်။ နောက်ပြီးရင် ဒီ SMR drive ပေါ်မှာ CMR segments အချို့ကို သတ်မှတ်ထားတဲ့ track တွေပေါ်အရင်ဆုံးရေးလိုက်တယ်။ ပြီးတော့မှ write ရော read ရော operation မရှိ idle ဖြစ်နေတဲ့ အချိန်ကြမှ အဲ့ဒီ CMR segments တွေကနေ shingled track ပေါ်ကို rewrite လုပ်ပါတယ်။ ဒီ့အတွက် cache လည်းပိုပြီးတော့ လိုအပ်တယ်။ နောက်ပြီးတော့ HDD vendor တွေဟာ HDD ရဲ့ firmware မှာလည်း လိုအပ်သလို optimize လုပ်နိုင်အောင် ပြောင်းလဲထားပါသေးတယ်။ မည်သို့မည်ပုံ လုပ်ထားသလဲဆိုတာကိုတော့ အသေးစိတ်ရှင်းထားတာတော့ သေချာမတွေ့မိသေးပါ။ Data တွေကို read လုပ်တဲ့အခါမှာတော့ ဘာမှပြဿနာမရှိပါ။ သို့သော် ပြဿနာက enterprise မှာသုံးမယ့် NAS တွေနဲ့ SAN တွေမှာက Read/Write operation ကိုအများကြီးလုပ်ရတဲ့အခါမှာ idle time မရှိသလောက်ဖြစ်လာပါတော့တယ်။ ဒီတော့ shingled track ပေါ်မှာရေးဖို့လိုတဲ့ အခါမျိုးမှာ Read/Write/Rewrite ဆိုတဲ့ operation သုံးခုစလုံးအတွက် အချိန်ပေးရပါတော့တယ်။ နောက်ဆုံးတော့ performance ပြဿနာဟာ compute မှာပါလာပြီးတော့ domino effect ဖြစ်ပါတယ်။ ပုံမှန် PC/Laptop လိုမျိုးမှာဆိုရင်တော့ ဒီကိစ္စဟာ ပြဿနာမဟုတ်တဲ့အတွက် အဆင်ပြေပါတယ်။ အခုဟာက NAS အတွက်ဆိုပြီးတော့ စျေးကြီးပေးရတဲ့ WD Red မှာ SMR ကို အသုံးပြုထားတာတော့ လုံးဝကို အဆင်မပြေပါ။
စာရေးသူအိမ်မှာလည်း NAS အတွက်ဆိုပြီးတော့ ဝယ်ထားတဲ့ 2TB WD Red ၄လုံးတောင် စျေးကြီးပေးဝယ်ထားရလို့ ဒီအကြောင်းကို podcast မှာကြားကြားရချင်း နည်းနည်းတော့ တင်းသွားတယ်။ ကိုယ့်မှာလည်း ရှယ်သုံးချင်လို့ ရှယ်စျေးကြီးပေးပြီး ဝယ်ထားပြီးကာမှ အချဉ်မိသလိုခံစားရပါတယ်။ ကံကောင်းချင်တော့ စာရေးသူဝယ်တုန်းက WD Red ရဲ့ model အဟောင်းတွေမှာ CMR အသုံးပြုထားတာကိုသိရတယ်။ WD ဟာနောက်ပိုင်းမှ ထုတ်တဲ့ Red Drive တွေမှာ SMR ကိုအသုံးပြုပြီးတော့ consumer တွေကိုတော့ အဲ့ဒီအကြောင်း ကို specification ထဲမှာရှင်းရှင်းလင်းလင်း မဖော်ပြထားပါဘူး။ Consumer တွေဘက်အခုလိုမျိုး complaint တတ်တော့မှ SMR ကိုသုံးထားတယ်ဆိုပေမယ့်လည်း over-used မလုပ်ရင်တော့ ပြဿနာမရှိနိုင်တဲ့အတွက် သီးသန့်မဖော်ပြထားခြင်းသာဖြစ်တယ်လို့ ဆိုလာတော့တယ်။ ဒါကတော့ လူမိတော့မှ ကျောသပ်ပေးတဲ့ပုံစံမျိုး ပေါက်နေလေတော့ WD လည်း နာမည်ကို ပျက်ရော။ စာဖတ်သူတို့လည်း WD Red ကိုဝယ်ထားမိပြီး ကိုယ့် WD Red ဟာ CMR လား SMR လားသိချင်ရင်တော့ အခုလိုမျိုး စစ်ကြည့်လို့ရနိုင်ပါတယ်။ Model number ကိုကြည့်လိုက်ပါ။ ကိုယ့်ရဲ့ 2TB WD Red ရဲ့ model ဟာ WD20EFRX ဆိုရင်အရင်တုန်းက ထုတ်ထားတဲ့ CMR လာတဲ့ drive ဖြစ်ပြီးတော့၊ model ဟာ WD20EFAX ဆိုရင်တော့ SMR နဲ့လာတဲ့ drive ဖြစ်ပါတယ်။ အရှေ့က 20 ဆိုတာက 2 TB ကိုရည်ညွှန်းပြီး၊ အနောက်က FRX ဟာ model အဟောင်း WD Red ပါ။ နောက်ပိုင်းထွက်တဲ့ အသစ် WD Red တွေမှာတော့ အနောက်က FAX ဆိုတာနဲ့ အဆုံးသတ်ပါတယ်။ အလွယ်မှတ်ချင်ရင်တော့ FRX ဆိုရင် model အဟောင်း CMR နဲ့လာတဲ့အတွက်ပိုကောင်းတယ်၊ FAX ဆိုရင် model အသစ် SMR နဲ့လာတဲ့အတွက် အဟောင်း WD Red တွေမှာလို performance ထင်သလောက်မရနိုင်တော့ဘူး။ အခြားသော WD ရဲ့ colour ခြားတွေမှာလည်း အခုလိုမျိုး model number ကိုကြည့်ပြီးတော့ SMR လား CMR လားဆိုပြီးတော့ ခွဲခြားနိုင်ပါတယ်။ ဒီ link မှာအသေးစိတ်သွားရောက်လေ့လာနိုင်ပါတယ်။
Solid State Drive (SSD) မှာတော့ ပုံမှန် spinning hard disk drive တွေနဲ့ မတူတာတွေအများကြီးရှိပါတယ်။ အထူးသဖြင့် magnetic ကိုအသုံးပြုပြီးတော့ data ကိုသိမ်းဆည်းတာမဟုတ်တော့ပဲနဲ့ semiconductor အစိတ်အပိုင်းမြောက်များစွာနဲ့ ဖွဲ့စည်းထားတာဖြစ်တဲ့အတွက် အတွင်းထဲမှာ လှုပ်ရှားမှု လုံးဝမရှိပါဘူး။ စစထွက်ချင်းတုန်းက DRAM volatile memory အမျိုးအစားကိုအသုံးပြုပြီးတော့၊ ၂၀၀၉ခုနှစ်လောက်မှာတော့ NAND flash non-volatile memory တွေကို စတင်ပြီးတော့ အသုံးပြုလာပါတော့တယ်။ NAND flash non-volatile memory ကိုအတိုကောက် NVM လို့သိကြပြီးတော့၊ PCIe bus ကိုအသုံးပြုပြီးတော့ data rate တတ်အောင်ကြံဆောင်ထားတဲ့အတွက် NVMe လို့ဆိုပြီးတော့ ခေါ်လာကြပါတယ်။ PCIe နဲ့ NVMe ရဲ့ အနောက်က e ဆိုတာ express ကိုဆိုလိုပါတယ်။ အရှင်းဆုံးပြောရရင် solid state drive ကို Toshiba ကစတင်မိတ်ဆက်တဲ့အချိန် ၁၉၈၀ခုနှစ်လောက်မှာ spinning plate ပေါ်ရေးတဲ့ဖတ်တဲ့ magnetic HDD တွေကို အတုခိုးပြီးတော့ semiconductors အတွက် စတင်ကြံဆောင်ခဲ့ခြင်းပါ။ အဲ့ဒီအတွက် ပထမဆုံး USB Flash Drive ကို ၁၉၉၁ခုနှစ်လောက်မှာ SunDisk Corporation ဆိုတဲ့ company ကနေစတင်ရောင်းချပေးခဲ့ပါတယ်။ နောက်ပိုင်းတော့ SanDisk ဆိုပြီးတော့ အခုအချိန်ထိ flash drive storage တွေကိုရောင်းတဲ့ company တစ်ခုအနေနဲ့ လူသိများတုန်းပါ။ ပြီးနောက် HDD တွေကို အစားထိုးဖို့အတွက် SATA နဲ့ SAS interface တွေကိုပဲအသုံးပြုပြီးတော့ performance ပိုကောင်းတဲ့ storage တွေကို ထုတ်လာကြပါတယ်။ ဒီ့နောက်မှာတော့ portable device နဲ့ mobile device တွေမှာအသုံးပြုဖို့အတွက် form factor မျိုးစုံနဲ့ ထပ်တခါထွက်လို့လာပြန်ပါတယ်။ အရွယ်အစားဖြင့် ပိုပိုသေးလာသလို performance ပိုင်းမှာလည်းပိုကောင်းလာအောင်လို့ အဆင့်မြင့် နည်းပညာတွေနဲ့ အစားထိုးလာရာကနေ mini-SATA (mSATA) ကနေတဆင့် M.2၊ U.2၊ NF1၊ XFMEXPRESS နဲ့ EDSFF ဆိုပြီးတော့ PC/laptop လိုမျိုး consumer တွေအပြင် Enterprise နဲ့ Data Centre တွေမှာပါအသုံးပြုလာကြပါတယ်။ နှစ်စဉ်တိုင်းလိုလို SDD ရဲ့ နည်းပညာဟာလည်း ပိုပိုကောင်းလာတဲ့အတွက် နာမည်အသစ်၊ interface အသစ်၊ ပုံစံအသစ်တွေနဲ့ အမြဲပြောင်းလဲလို့လာနေပါတယ်။ အောက်မှာကတော့ Kingston Technology က SATA/AHCI နဲ့ SSD/PCIe/NVMe တို့ရဲ့ကွာခြားချက်တွေကို အခုလိုမျိုးယှဉ်ပြထားပါတယ်။
အထက်မှာကတော့ SSD လို့ဆိုလိုက်တာနဲ့ တွဲပြီးတော့ ပါလာတဲ့ပြောင်းလဲတိုးတက်လာတဲ့ သူနဲ့ပတ်သတ်တဲ့ အချို့သောအကြောင်းလေးတွေပါ။ HDD မှာလိုပဲ SSD မှာဘယ်လို data တွေကို သိုလှောင်သလဲဆိုတာလည်း အနည်းငယ်သိထားရအောင်လေ့လာကြည့်ရအောင်။
SSD ဟာသူ့မှာပါတဲ့ transistor တွေပေါ်မှာ high voltage ကိုအသုံးပြုပြီးတော့ cells တွေပေါ်မှာ data တွေကို ရေးခြင်း ဖျက်ခြင်းပြုလုပ်ပါတယ်။ Data တွေကို ပြန်ပြီးဖတ်ဖို့အတွက်တော့ သိမ်းဆည်းထားတဲဲ့ cells တွေနေရာမှာ low voltage ကိုသုံးတယ်။ ထားပါတော့ cell တစ်ခုဟာ အားသွင်းထားခြင်းမရှိဘူးဆိုရင် low voltage ကိုအသုံးပြုပြီးတော့ ဖတ်တဲ့အခါ electron current flow တစ်ခုဖြစ်ပေါ်စေပါတယ်။ ဒါဆိုရင်ဖြင့် ဒီ cell ဟာ 0 state မှာရှိတဲ့ cell ဆိုပြီးတော့သိနိုင်တယ်။ သူနဲ့ပြောင်းပြန် ဖြစ်တဲ့ 1 state မှာဆိုရင်တော့ voltage တစ်ခုကိုအသုံးပြုတဲ့အခါ ဘာ current မှမဖြစ်စေပါဘူး။ ဒီ low voltage ကိုသုံးပြီးတော့ cell တစ်ခုစီရဲ့ 0 နဲ့ 1 state ကိုဖတ်ရတာဟာ သူတို့ဆီမှာ high voltage ကိုအသုံးပြုပြီးတော့ရေးရတာထက် ပိုမြန်ပါတယ်။ အခုလိုမျိုး cell တစ်ခုမှာ 0 လား 1 လားဆိုပြီးတော့ ရေးနိုင်ဖတ်နိုင်တဲ့ flash memory cells တွေကို Single Level Cells (SLC) ဆိုခေါ်ပါတယ်။ အကောင်းဆုံးသော flash memory cells အမျိုးအစားပါ။ SLC ဟာ state တစ်ခုကိုပဲ သိမ်းထားနိုင်စွမ်းရှိတဲ့အတွက် cell တစ်ခုကို 1 bit ပဲသိုလှောင်နိုင်ပါတယ်။ HDD မှာလို data တွေပိုပြီး သိမ်းလို့ရအောင် longitudinal magnetic recording (LMR) ကနေ perpendicular magnetic recording (PMR) သို့မဟုတ် conventional magnetic recording (CMR)၊ ပြီးနောက် အခု shingled magnetic recording (SMR) သို့အဆင့်ဆင့်ပြောင်းလဲလာသလိုပဲ၊ SSD မှာလည်း ၄င်းနည်း bit တွေပိုပြီးသိမ်းဆည်းနိုင်အောင်လို့ အဆင့်ဆင့်ကြံဆောင်ရင်း multi-level cells (MLC)၊ triple level cells (TLC)၊ အဲ့ဒီနောက် quad level cells (QLC) ဆိုပြီးတော့ အဆင့်ဆင့် ပြောင်းလဲလာပါတယ်။ MLC မှာတော့ 4 levels/states ကို charge trap လုပ်နိုင်တဲ့အတွက် cell တစ်ခုကို 2 bits အထိသိမ်းဆည်းနိုင်ပါတယ်။ 2 bits ဆိုတော့ 00, 01, 10, 11 ဆိုပြီးတော့ states လေးခု charge အနိမ့်အမြင့်ပေါ်မူတည်ပြီးတော့ သိမ်းနိုင်ခြင်းပါ။ ဒီလိုပဲ TLC မှာတော့ 8 levels/states ဆိုတဲ့အတွက် 3 bits၊ QLC မှာကတော့ 16 levels/states ဆိုတဲ့အတွက် 4 bits သော binary data တွေကို cell တစ်ခုချင်းစီမှာ သိုလှောင်လာနိုင်ပါတယ်။ ဒီ့အတွက် data capacity ဟာလည်း များသတဲ့ များလို့လာသော်လည်း CMR နဲ့ SMR မှာကွာခြားသလိုပဲ၊ SLC နဲ့ QLC မှာလည်း ခပ်ဆင်ဆင်ကွာခြားကြပါတယ်။ SLC မှာ cell တစ်ခုအတွက် 1 level/state ကိုပဲ ရေးရဖတ်ရတဲ့အတွက် performance မှာပိုမြန်ပြီးတော့ data capacity ဟာ QLC နဲ့ယှဉ်လိုက်ရင် နည်းနည်းပဲသိမ်းနိုင်ပါတော့တယ်။ တဖက်မှာလည်း QLC ဟာ data capacity အများကြီး သိမ်းနိုင်သော်လည်း cell တစ်ခုစီမှာ 16 levels/states ကို သွတ်ပြီးတော့ထည့်ရတဲ့အတွက် read/write မှာ အများကြီးပိုနှေးသွားတယ်။ SSD မှာ control gates တွေ bitline တွေနဲ့ read/write ဘယ်လိုလုပ်သလဲ ဆိုတာတော့ အသေးစိတ်မရှင်းတော့ပါဘူး။ အသေးစိတ်ကိုလေ့လာချင်ရင် ဒီ link မှာသွားကြည့်လို့ရပါတယ်။
ဒီ post မှာတော့ HDD မှာအခုနောက်ပိုင်းလူပြောများနေတဲ့ SMR အကြောင်းကို အစမှာ အနည်းငယ်ဆွေးနွေးပြီး၊ SSD အကြောင်းကို သိသလောက် အတိုချုပ် သိသလောက်ရှင်းပြပေးထားပါတယ်။ နောက် post တွေမှာတော့ storage type တွေအကြောင်း၊ Linux က filesystem တွေအကြောင်းနဲ့ သူတို့ဘယ်လို ကွာခြားပုံ၊ အလုပ်လုပ်ပုံတွေကို ဆက်လက်ဆွေးနွေး သွားပါ့မယ်။ Storage ပိုင်းဆိုင်ရင် ဗဟုသုတ အနည်းအကျဉ်းတော့ လုံးဝမသိသေးရင် လေ့လာရရှိနိုင်မယ်လို့ မျှော်လင့်မိပါတယ်။