AI
น้องๆ เคยสงสัยไหมว่าทำไมเครื่อง Server ใน Data Center ถึงทำงานได้เร็วปานจรวด? หรือทำไมเครื่องตัดต่อวีดีโอของพี่ถึงเรนเดอร์งานได้เร็วกว่าชาวบ้านเขา? คำตอบส่วนใหญ่อยู่ที่ "RAID" นี่แหละ!
RAID ย่อมาจาก Redundant Array of Independent Disks แปลเป็นไทยง่ายๆ คือ การเอาฮาร์ดดิสก์หลายๆ ตัวมาทำงานร่วมกัน เหมือนมีทีมงานช่วยกันทำงานชิ้นเดียวให้เสร็จเร็วขึ้น หรือไม่ก็ช่วยกันสำรองข้อมูล เผื่อมีใครคนใดคนหนึ่งเกิดป่วย (ฮาร์ดดิสก์เจ๊ง) งานจะได้ไม่พัง
RAID สำคัญยังไง? สมัยพี่ทำร้านเน็ต SiamCafe เมื่อ 20 กว่าปีที่แล้ว ฮาร์ดดิสก์ลูกนึงแพงบรรลัย แถมความจุยังน้อยนิดเดียว การทำ RAID นอกจากจะช่วยให้เราได้พื้นที่เก็บข้อมูลเยอะขึ้นแล้ว ยังช่วยให้เครื่อง Server ของร้านทำงานได้เร็วขึ้น ลูกค้าเล่นเกมออนไลน์กันลื่นปรื๊ดดดด
ก่อนจะไปลุย RAID กันจริงๆ เรามาปูพื้นฐานกันก่อนนิดนึง จะได้ไม่งงเวลาพี่พูดศัพท์เทคนิค
RAID Level ก็เหมือนสูตรอาหารนั่นแหละ แต่ละสูตรก็มีส่วนผสม (ฮาร์ดดิสก์) และวิธีการทำ (การจัดเรียงข้อมูล) ที่แตกต่างกัน ทำให้ได้ผลลัพธ์ที่ต่างกัน บางสูตรเน้นความเร็ว บางสูตรเน้นความปลอดภัย บางสูตรก็เน้นความคุ้มค่า
จำสามคำนี้ไว้ให้ดีนะน้อง เพราะมันคือหัวใจหลักของ RAID เลยล่ะ
การทำ RAID ไม่ได้ยากอย่างที่คิดนะ สมัยพี่ทำร้านเน็ต ก็ต้องศึกษาเอง ลองผิดลองถูกเองเหมือนกัน แต่สมัยนี้น้องๆ โชคดีกว่าเยอะ มีข้อมูลให้ศึกษาเพียบ แถมเครื่องมือก็ใช้ง่ายกว่าเดิมเยอะ
เอาล่ะ มาลงมือทำ RAID กันเลยดีกว่า แต่ก่อนอื่นต้องเตรียมอุปกรณ์ให้พร้อมก่อนนะ
RAID Controller คืออุปกรณ์ที่ทำหน้าที่ควบคุมการทำงานของ RAID มีทั้งแบบที่เป็น Hardware (การ์ด RAID) และ Software (RAID ที่มาพร้อมกับ Operating System) ถ้าเน้นประสิทธิภาพและความเสถียร พี่แนะนำให้ใช้ Hardware RAID Controller แต่ถ้าเน้นประหยัด ก็ใช้ Software RAID ก็ได้
หลังจากติดตั้ง RAID Controller แล้ว ก็ต้องเข้าไป Config RAID ใน BIOS หรือ UEFI ของเครื่อง Server วิธีการ Config RAID ก็จะแตกต่างกันไปตามแต่ละยี่ห้อของ RAID Controller แต่โดยรวมๆ ก็คือ การเลือก RAID Level ที่ต้องการ กำหนดฮาร์ดดิสก์ที่จะนำมาทำ RAID และทำการ Initializing RAID Array
# ตัวอย่างการสร้าง RAID 5 บน Linux (Software RAID)
mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 /dev/sdb /dev/sdc /dev/sdd
mkfs.ext4 /dev/md0
mount /dev/md0 /mnt/raid
Code snippet ข้างบนเป็นตัวอย่างการสร้าง RAID 5 บน Linux (Software RAID) นะน้อง อย่าเพิ่งตกใจถ้าอ่านไม่เข้าใจ พี่แค่ยกตัวอย่างให้เห็นภาพเฉยๆ
น้องๆ สามารถเข้าไปอ่านบทความอื่นๆ เกี่ยวกับ Linux ได้ที่ SiamCafe Blog นะครับ
RAID ไม่ใช่ทางเลือกเดียวในการเพิ่มประสิทธิภาพและความปลอดภัยของข้อมูลนะน้อง ยังมีทางเลือกอื่นๆ อีกมากมาย เช่น Cloud Storage, Network Attached Storage (NAS), และ Software Defined Storage (SDS)
| Feature | RAID | Cloud Storage | NAS |
|---|---|---|---|
| Speed | High | Variable (ขึ้นอยู่กับ Internet) | Medium |
| Data Protection | Good (ขึ้นอยู่กับ RAID Level) | Excellent | Good (ขึ้นอยู่กับ Configuration) |
| Cost | Moderate | Variable (Pay-as-you-go) | Moderate to High |
| Complexity | Moderate | Low | Low to Moderate |
ตารางข้างบนเป็นการเปรียบเทียบ RAID กับ Cloud Storage และ NAS นะน้อง จะเห็นได้ว่าแต่ละทางเลือกก็มีข้อดีข้อเสียแตกต่างกันไป การเลือกทางเลือกที่เหมาะสมที่สุด ก็ขึ้นอยู่กับความต้องการและงบประมาณของเรา
ถ้าอยากรู้เรื่อง Cloud Storage เพิ่มเติม ลองเข้าไปอ่านบทความใน SiamCafe Blog ดูนะ พี่เขียนไว้ละเอียดเลย
น้องๆ ที่กำลังจะทำ RAID หรือทำอยู่แล้ว ฟังพี่นะ RAID มันเหมือนดาบสองคม ถ้า setup ไม่ดี แทนที่จะเร็ว อาจจะช้ากว่าเดิม แถมข้อมูลหายหมดอีก
สมัยพี่ทำร้านเน็ต SiamCafe นี่ เจ็บมาเยอะ! RAID 0 นี่ตัวดีเลย เร็วปรื๊ด แต่ถ้าลูกนึงเจ๊ง อีกลูกก็ไปตามกัน เกมหาย save หาย ร้องไห้กันระงม
1. Backup สำคัญกว่า RAID อีก! RAID มันช่วยเรื่อง Performance กับ Availability (เครื่องไม่ล่ม) แต่ไม่ได้กันข้อมูลหาย พี่แนะนำให้ทำ Backup เป็นประจำ ไม่ว่าจะเป็น External Harddisk หรือ Cloud Storage ก็ได้
2. เลือก Controller ดีๆ มีชัยไปกว่าครึ่ง Controller นี่แหละตัวแปรสำคัญ อย่าไปเอารุ่นถูกๆ ที่ไม่มี Cache หรือ Performance ไม่ดี เดี๋ยวจะกลายเป็นคอขวดซะเอง สมัยก่อนพี่เคยพลาดมาแล้ว เปลี่ยน Controller ชีวิตเปลี่ยนเลย
3. Monitor สุขภาพ HDD สม่ำเสมอ HDD มันมีอายุการใช้งานนะน้องๆ อย่าใช้จนมันพังคาเครื่อง หาโปรแกรมมาเช็ค S.M.A.R.T. (Self-Monitoring, Analysis and Reporting Technology) ดูว่ามี Bad Sector หรือ Error อะไรไหม จะได้รีบเปลี่ยนก่อนมันจะสายเกินแก้
# ตัวอย่างการเช็ค S.M.A.R.T. บน Linux
sudo apt-get install smartmontools
sudo smartctl -a /dev/sda
Code snippet นี้ เอาไปใช้เช็คสุขภาพ HDD บน Linux ได้นะ ลองเอาไปปรับใช้ดู
อีกเรื่องนึงที่สำคัญคือ อย่าประมาทเรื่อง UPS (Uninterruptible Power Supply) ไฟดับที ข้อมูลอาจจะไปหมดเลยนะจ๊ะ
RAID 0 เหมาะกับงานที่ต้องการความเร็วมากๆ เช่น ตัดต่อวีดีโอ Render งานกราฟิก หรือใช้เป็น Drive สำหรับเกม ที่เน้น Load เร็วๆ แต่ต้องแลกมาด้วยความเสี่ยงที่ข้อมูลจะหายนะ
RAID 1 เน้นความปลอดภัยของข้อมูลมากกว่า เพราะมัน Mirror ข้อมูลไปยัง Harddisk อีกลูก ถ้าลูกนึงเสีย อีกลูกก็ยังอยู่ ข้อมูลไม่หาย แต่ความเร็วอาจจะไม่หวือหวาเท่า RAID 0
RAID 5 เป็นทางเลือกที่ดีสำหรับคนที่ต้องการทั้งความเร็วและความปลอดภัยในระดับนึง มันใช้ Parity ในการเก็บข้อมูล ทำให้สามารถกู้ข้อมูลได้หากมี HDD ลูกนึงเสีย แต่ก็ต้องแลกมาด้วยพื้นที่เก็บข้อมูลที่หายไปบ้าง
RAID 10 มันคือการเอา RAID 1 มาทำ RAID 0 อีกที ทำให้ได้ทั้งความเร็วและความปลอดภัยสูง แต่ก็ต้องใช้ Harddisk เยอะ ทำให้ราคาสูงตามไปด้วย
RAID เป็นเทคโนโลยีที่ดี แต่ต้องเลือกให้เหมาะสมกับการใช้งาน และอย่าลืม Backup ข้อมูลเป็นประจำ ที่สำคัญ อย่าประมาทเรื่องไฟดับนะจ๊ะ
หวังว่าบทความนี้จะเป็นประโยชน์กับน้องๆ นะ ถ้ามีคำถามอะไรเพิ่มเติม ถามมาได้เลย พี่ อ.บอม ยินดีให้คำปรึกษาเสมอ ไปอ่านบทความอื่นๆ ได้ที่ SiamCafe Blog นะ