SAN Storage Overview

ဒီတစ်ပတ်မှာတော့ Knowledge Sharing Section အနေနဲ့ SAN Storage အကြောင်း ဖော်ပြပေးသွားပါမယ်။ Storage မှာ အမျိုးအစားအားဖြင့် (2) မျိုးရှိပါတယ်။
‍‍‍‍‍‍
1️⃣ DAS (Direct Attached Storage) Laptop, Desktop နဲ့ Server တွေမှာ တိုက်ရိုက်ချိတ်ထားတဲ့ မည်သည့် Hard Disk အမျိုးအစားကိုမဆို DAS လို့ပြောလို့ရပါတယ်။
2️⃣ SAN (Storage Area Network)Centralize Storage ဖြစ်တဲ့ SAN Storage တွေက Hard Disk တွေအများကြီးထည့်ထားတဲ့ Array နဲ့လာပါတယ်။ SAN Storage Device တွေမှာ Manage လုပ်ဖို့ ကိုယ်ပိုင် OS, CPU, Memory, Network Card တွေပါတစ်ခါတည်းပါပြီးသားပါ ။
‍‍‍‍‍‍
SAN Storage က Block Level, File level ၂မျိုးလုံး support လုပ်ပါတယ်။ SAN မှာသုံးတဲ့ Block level protocol တွေက FC (Fiber Channel), FCoE (Fiber Channel over Ethernet), iSCSI (Internet Small Computer System Interface) ဖြစ်ပြီး File level protocol တွေကတော့ NAS, NFS, CIFS စသဖြင့်သုံးလို့ရပါတယ်။

➡ Block Level vs File Level
Block level ထဲမှာပါတဲ့ Ethernet ပေါ်အခြေခံထားတဲ့ iSCSI က Jambo Frame (MTU 9000) ကို support လုပ်ပါတယ်။ File Level ကတော့ ပုံမှန် MTU 1500 လောက်သာ Support လုပ်တဲ့အတွက် Block Level က Data Access လုပ်တာပိုမြန်ပါတယ်။
‍‍‍‍‍‍
➡ Addressing of iSCSI, NAS, FC and FCoE
iSCSI မှာသုံးတဲ့ Address ကတော့ IP (e.g 192.168.0.1) + IQN (e.g iqn.1992-01.com.
example:storage:diskarrays-sn-a8675309) နှင့် NAS မှာသုံးတဲ့ address ကတော့ IP (e.g 192.168.0.1)ဖြစ်ပြီး FC and FCoE မှာသုံးတဲ့ Address ကတော့ WWPN (e.g 50:0a:09:86:96:97:c3:ac) ဖြစ်ပါတယ်။ WWPN Address က အများအားဖြင့် Network Cardတွေမှာ Dedicated ပါလာပြီးသားပါ။ Network Card တွေမှာပါတဲ့ WWPN တွေက Unique ဖြစ်ရပါမယ်။
‍‍‍‍‍‍
Note: FC နဲ့ FCoE ကွာခြားပုံကို သပ်သပ်ထပ်ရေးပေးပါဦးမယ်။
‍‍‍‍‍‍
SAN Storage Device တွေမှာပါတဲ့ Component တွေက-
1️⃣ Processor
2️⃣ Memory
3️⃣ HBA or Ethernet Card
4️⃣ Disk Array and Hard Disk
‍‍‍‍‍‍
➡ Traffic Flow
Server ကနေ data တစ်ခုခုကို SAN Storage ဆီ Write လုပ်မယ်ဆို အရင်ဆုံး Memory ဆီ Write I/O ရောက်ပါမယ်။ နောက်မှ Cache Layer ကို Write I/O ရောက်မယ်။ Cache Layer ဆိုတာ SSD Disk တွေကို Cache အနေနဲ့သုံးထားတာဖြစ်ပါတယ်။
‍‍‍‍‍‍
Cache Layer မှာ Write I/O Method (3) မျိုးရှိပါတယ်။
‍‍‍‍‍‍
1️⃣ Write Through Cache
Server က write I/O က Cache Layer ကို ရောက်ပြီးရင် HDD တွေ Raid လုပ်ပြီး Create လုပ်ထားတဲ့ Permanent Storage ဆီကိုပို့ပေးပါတယ်။ Dataတွေ Write လုပ်ပြီးကြောင်း I/O Completion ပြန်တဲ့ Acknowledgement က Permanent Data Storage ဆီရောက်မှ အဲ့ကနေ Ack ပြန်မယ်။ အဲ့တာကြောင့် Writing Latency အနည်းငယ် ရှိတတ်ပါတယ်။ဒါပေမယ့် Write လုပ်ပြီးတာနဲ့ ချက်ချင်းပြန်ပြီး Read လုပ်ချင်တဲ့ Application မျိုးဆိုရင် Cache Layer မှာ Data တွေ Cache လုပ်ပေးထားတဲ့အတွက် Re-read Cache ကတော့ ပိုမြန်သွားမယ်။
‍‍‍‍‍‍
2️⃣ Write-Around Cache
သူရဲ့ I/O Completion Ack ပြန်တဲ့ပုံကတော့ Write Through Cache နဲ့ တူပါတယ်။ ဒါပေမယ့် Write-Around Cache က Cache Layer ကို Bypass လုပ်သွားတယ်။
‍‍‍‍‍‍
3️⃣ Write-Back Cache
Write-Back Cache ရဲ့ I/O သွားပုံလမ်းကြောင်းက Write-Through Cache နဲ့တူတယ်။ ဒါပေမယ့် Write-Back Cache မှာ I/O Completion Ack က Cache Layer ကနေ Reply ပြန်ပေးမယ်။ ဒါကြောင့် Write Speed က တခြား Method တွေထပ်ပိုမြန်တယ်။ တစ်ခုရှိတာက Cache Layer က Temporary ပဲ Data တွေကို သိမ်းထားနိုင်တဲ့အတွက် ရုတ်တရက် Power Down သွားတဲ့ Case မျိုးမှာဆိုရင် Cache Layer ကနေ Permanent Storage ဆီကို သွားသိမ်းနိုင်အောင် SAN Storage Device တွေမှာ Battery အပိုပါတတ်တယ်။

လက်ရှိ SAN Storage တွေမှာ သုံးနေတဲ့ Hard Disk အမျိုးအစားတွေက (3) မျိုးလောက်ရှိတယ်။
‍‍‍‍‍‍
1️⃣ SSD – Flash Memory Chip တွေနဲ့ လုပ်ထားတာဖြစ်တဲ့ အတွက် RPM တွေမရှိတော့ဘဲ Data တွေကိုလည်း Permanent သိမ်းပေးနိုင်ပါတယ်။ Performance အကောင်းဆုံး Disk အမျိုးအစားဖြစ်ပါတယ်။
‍‍‍‍‍‍
2️⃣ SAS – 10K rpm or 15k rpm ဆိုပြီးရှိပါတယ်။ SSD လောက် Performance မကောင်းပေမယ့် SATA ထပ်တော့ rpm ပိုများတဲ့အတွက် သူလဲ Performance အတော်အသင့်ကောင်းတယ်ပြောလို့ရပါတယ်။
‍‍‍‍‍‍
3️⃣ SATA or NL-SAS – 7.2K rpm ရှိပြီး သူကတော့ ဈေးသက်သာပြီး Capacity များများဆံ့တဲ့ Capacity Disk အမျိုးအစားပါ။ Performance ကတော့ အားလုံးထဲမှာ အနိမ့်ဆုံးဖြစ်ပါတယ်။
‍‍‍‍‍‍
SAN Storage တွေမှာ သုံးတဲ့ Terminology တွေအကြောင်း နဲ့ Conceptတွေ ကိုသိသလောက် ပြောသွားပါမယ်…
ပထမဆုံးအနေနဲ့ SAN Storage တစ်ခုကို Configure ချမယ်ဆိုရင် အရင်ဆုံး Hard Disk တွေကို ဘယ် RAID နဲ့ရိုက်မလဲ စစဉ်းစားရပါတယ်။ ကျနော်လဲအရင်က SAN Storage မှာ 20TB, 30TB DataStore ကို ဘယ်လိုများ Create လုပ်လဲမသိခင်ကတော့ အဲ့လောက် size ကြီးရှိတဲ့ Hard Disk တွေရှိတယ် ထင်ခဲ့ဖူးပါတယ်။
‍‍‍‍‍‍
➡ RAID Technology – ဆိုတာ သီးသန့်ဆီ ရှိနေတဲ့ Hard Disk တွေကို ပေါင်းပြီး Size တစ်ခုတည်းအနေနဲ့ မြင်ရအောင် လုပ်ပေးတဲ့ Technology တစ်ခုပါ။ အသုံးများတဲ့ Raid တွေကတော့ Raid5, Raid6, Raid10 တို့ဖြစ်ပါတယ်။ ကျနော်ဒီမှာ Raid အကြောင်းကို အသေးစိတ်ရှင်းမပြတော့ပါဘူး။ ဒီ link မှာ http://www.acnc.com/raidedu/0 Raid အကြောင်းသွားလေ့လာကြည့်ပါ Raid ၁ခုချင်းဆီကို ပုံလေးတွေနဲ့ ရှင်းပြပေးထားပါတယ်။ Raid ရိုက်မယ်ဆိုရင် Hard Disk Type, Size, Speed တွေတူနေမှ အဆင်ပြေမှာပါ။
‍‍‍‍‍‍
➡ Raw Data, Aggregrate, Volume, Storage Pool or Raid Group Raid
Raid ရိုက်ပြီးရလာတဲ့ DataStore ကို ခေါ်ပါတယ်။ (Vendor ပေါ်မူတည်ပြီး terms တွေပြောင်းခေါ်တာပါ။ တစ်ကယ့် Concept ကတော့တူတူပါဘဲ)
‍‍‍‍‍‍
➡ LUN – Aggregrate ကိုမှ Server တွေကနေခေါ်သုံးနိုင်အောင် LUN (Logical Unit Number) တွေထပ်ခွဲပြီး Create လုပ်ပေးရပါတယ်။
‍‍‍‍‍‍
➡ Initiator Group, Target and Host-Access
Server ကနေ SAN Storage ဆီကို FC, FCoE or iSCSI Protocol တွေသုံးပြီး access လုပ်တဲ့အခါသုံးတဲ့ အခေါ်အဝေါ်ပါ။ Initiator ဆိုတာက Server ဘက်က HBA Card မှာရှိတဲ့ WWPN ကိုရည်ညွှန်းတာဖြစ်ပြီး Storage HBA Card မှာရှိတဲ့ WWPN ကိုတော့ Target လို့ခေါ်ပါတယ်။ အပေါ်မှာပြောခဲ့တဲ့ LUN ကို access ပေးချင်တဲ့ server တွေရဲ့ WWPN (Initiator)တွေ ကနေဘဲလာပြီးတော့ သီးသန့် access လုပ်အောင် Host Access နဲ့ Storage level ကနေပြန်ထိန်းထားပါတယ်။ access ရသွားတဲ့ LUN တွေ ကိုမှ Server တွေကနေOSပေါ်မူတည်ပြီး File System Format ရိုက်ပြီးအသုံးပြုကြတာဖြစ်ပါတယ်။
‍‍‍‍‍‍
✍✍✍ Author : Phyo Wai Aung

Don’t forget to share this post!