RAID คืออะไร
Hosting กับ RAID
ตั้งแต่เราเริ่มดำเนินกิจการโฮสติ้งมา เราเองเคยใช้ ระบบ RAID 1 อยู่ โดยใช้เป็น Software RAID จนในช่วงปีหลัง ๆ เรากลับมาใช้การเก็บข้อมูลลง HDD ตรง ๆ และในช่วงที่ผ่านมา ทางเราได้ซื้อ Hardware มาเพื่อทำระบบ RAID โดย เก็บข้อมูลลง SSD โดยเราเลือกใช้ RAID 5+1 ในการเก็บข้อมูล เพราะเล็งเห็นถึงความสำคัญของข้อมูลลูกค้า และประสิทธิภาพของความเร็วที่ลูกค้าได้รับ โดยในการเก็บข้อมูล จะเขียนลง SSD ทั้ง 3 ลูก ส่วน อีกลูกจะนำมาใช้ในกรณีที่ มี SSD ลูกใดลูกหนึ่งเกิปัญหา ลูกที่ เป็น +1 นั้น จะเรียกว่า Hot Spare เมื่อลูกใด ๆ มีปัญหา ระบบ จะนำ Hot Spare มาใช้งานทันที โดย ไม่กระทบต่อลูกค้า การอ่าน การเขียน ข้อมูลยังสามารถดำเนินการได้ตามปรกติ เมื่อเราทราบโดยระบบจะมีการแจ้งเตือน เราจะดำเนินการเปลี่ยน SSD ลูกใหม่มาแทนที่ ซึ่งจะทำให้การใช้งานของลูกค้าเป็นไปโดยราบรื่นไม่มีสะดุด
RAID คืออะไร ?
RAID (Redundant Array of Inexpensive Disk) คือการนำเอา Harddisk ตั้งแต่ 2 ตัวขึ้นไปที่มีขนาดเท่ากันมาทำงานร่วมกันเสมือนเป็น harddisk ตัวเดียวที่มีประสิทธิภาพสูงขึ้น หรือมีโอกาสที่จะสูญเสียข้อมูลน้อยลงในกรณีที่เกิดความผิดพลาดของ Hardware (fault tolerance) กลุ่มของ Harddisk ที่เอามาทำงานร่วมกันในเทคโนโลยี RAID จะถูกเรียกว่า disk array โดยระบบปฏิบัติการและ software จะเห็น harddisk ทั้งหมดเป็นตัวเดียว ซึ่งการทำ RAID นี้นอกจากจะเป็นการเพิ่มประสิทธิภาพของการเก็บรักษาข้อมูลแล้ว ยังเป็นการประหยัดอีกด้วย เพราะว่ายิ่ง harddisk มีความจุมากเท่าไหร่ ราคาของมันก็จะยิ่งสูงขึ้นเท่านั้น ดังนั้น สำหรับงาน ที่จำเป็นต้องใช้พื้นที่ในการเก็บข้อมูลมากๆ อย่าง Database Server ถ้าเราเลือกใช้ harddisk ความจุมากๆ เพียงตัวเดียว ในการเก็บข้อมูลหรือที่เรียกกันว่าเป็นการใช้ harddisk แบบ SLED หรือ Single Large Expensive Disk ราคาที่เราเสียไปกับ harddisk ตัวเดียวนั้น อาจจะไม่คุ้มค่าเท่ากับการใช้ harddisk ที่มีความจุต่ำกว่า (ซึ่งแน่นอนว่าราคาต้องถูกกว่าหลายเท่าด้วย) นำมาต่อเพื่อให้ทำงานร่วมกันหรือที่เรียกกันว่าเป็นการใช้ harddisk แบบ RAID
เทคโนโลยี RAIDความเป็นมา ของ RAID Stripping และ Parity ระดับของ RAID RAID 1, RAID 3 , RAID 5 ส่วนประกอบของ RAID การจัดการ RAID ความเป็นมา
คำว่า RAID อ่านออกเสียงว่า “เหรด” ในลักษณะเดียวกันกับ พาเหรด ในปี 1987 Patterson, Gibson และ Katz ซึ่งทำงานที่ University of California Berkeley ได้พิมพ์บทความเกี่ยวกับ A Case for Redundant Arrays of Inexpensive Disks (RAID) โดยเอกสารนี้ได้บรรยายถึงชนิดของดิสก์อะเรย์ประเภทต่างๆ โดยเรียกชื่อย่อๆว่า RAID หลักการพื้นฐานของRAID มาจากแนวคิดที่ว่า เมื่อเอาดิสก์ที่มีความจุน้อยหลายๆตัวมารวมกัน ประสิทธิภาพที่ได้จากการใช้งานจะมากกว่าใช้ดิสก์ขนาดใหญ่เพียงตัวเดียว โดยเมื่อเอาดิสก์มารวมกันแล้วคอมพิวเตอร์จะต้องเห็นว่าเป็นดิสก์ขนาดใหญ่ตัวเดียว (เป็น Logical Drive)
ครั้นต่อมา RAID ก็เปลี่ยนคำจำกัดความเป็น Redundant Array of Independent Disks แปลไทยได้อย่างไม่สละสลวยว่า ระบบเผื่อไว้แบบอะเรย์ของดิสก์ที่เป็นอิสระต่อกัน ฟังแล้วงงมั้ย? งงมากครับ RAID ก็คือ RAID ฟังแล้วง่าย แต่ไม่เข้าใจไปใหญ่ ลองนึกง่าย ๆ ครับ ถ้าเรามีฮาร์ดดิสก์เพียงตัวเดียว วันหนึ่งถ้าพังก็พังไปเลย ข้อมูลหายหมด แต่ถ้านำฮาร์ดดิสก์หลายๆ ตัวมาต่อกัน เช่น 5 ตัว ข้อดีคือ ได้ความจุเพิ่มขึ้น แต่ถ้าตัวใดตัวหนึ่งพังก็จะเสียข้อมูลในฮาร์ดดิสก์ตัวนั้นไป แต่จะป้องกันได้มากกว่า ถ้าหากเพิ่มฮาร์ดดิสก์เข้าไป 3 ตัว แล้วใช้ระบบการจัดแบ่งเก็บข้อมูลในแต่ละตัว พร้อมกัน แต่ในแต่ละตัวก็มีข้อมูลที่ซ้ำกัน หรือมีการเก็บ Parity ของอีกตัวไว้ ถ้าเกิดวันใดที่ตัวหนึ่งเกิดพังไป ข้อมูลในตัวที่พังก็ยังคงมีเก็บ “สำรองเผื่อเสีย” ไว้ การแก้ไข ก็เพียงเอาฮาร์ดดิสก์ใหม่มาเปลี่ยน แล้วค่อย ๆ โอนถ่ายข้อมูลที่ฮาร์ดดิสก์ตัวเก่าที่พังไปเคยฝากไว้กับฮาร์ดดิสก์ตัวอื่นลงมาใหม่ ๆ ทำให้สมบูรณ์แบบ ทั้งหมดนั้นเรียกว่าระบบ Fault Tolerance แปลเป็นไทยก็คือ “ระบบที่คงทนต่อความเสียหาย”
คือ แทนที่ว่าฮาร์ดดิสก์พังไปตัวหนึ่งก็ต้อง “Down” เซิร์ฟเวอร์ ทำให้ระบบต้องหยุดชะงัก เพื่อป้องกันความเสียหายดังกล่าว จะต้องสร้างระบบให้คงทนต่อความเสียหาย ฮาร์ดดิสก์พังไปแล้วหนึ่งตัว ระบบยังทำงานต่อไปเหมือนไม่มีอะไรเกิดขึ้น โดยวิธีการนี้ จะต้องใช้ RAID ซึ่งเป็นหัวใจของการสร้าง “ดิสก์ที่คงทนต่อความเสียหาย”
คำจำกัดความของ RAID คือ
เทคโนโลยีของหน่วยเก็บข้อมูลที่ใช้เพื่อปรับปรุงระบบให้มีความสามารถในการประมวลผลเกี่ยวกับการจัดเก็บข้อมูล เทคโนโลยีดังกล่าวจะออกแบบเพื่อให้ระบบการจัดเก็บข้อมูลแบบอะเรย์มีความเชื่อถือได้ และเพื่อใช้ข้อดีของการนำประสิทธิภาพที่เพิ่มขึ้นจากการเพิ่มฮาร์ดดิสก์เข้าไปในระบบหลาย ๆ ตัวเข้ามาใช้งาน นี่เขียนแบบวิชาการต้องแบบนั้น แต่อ่านไม่รู้เรื่องเลย แปลง่าย ๆ คือ ฮาร์ดดิสก์ที่ต่อกันเป็นสมาชิกของอะเรย์ (แบบเดียวกับทางคณิตศาสตร์ เรื่องของ อะเรย์) แล้วทำอย่างไรให้ทำงานได้น่าเชื่อถือ แล้วการมีฮาร์ดดิสก์หลาย ๆ ตัว และให้เขียนและอ่านหลาย ๆ ตัว พร้อม ๆ กัน จะได้ประสิทธิภาพดีกว่าเขียนและอ่านตัวเดียว ซึ่งต้อง “รอ” ให้การเขียนเสร็จสิ้นเป็นคราว ๆ ถึงจะเริ่มเขียนใหม่ได้ ประโยชน์อีกประการของ RAID คือ “เผื่อเสีย” คือ ถ้าตัวหนึ่งเสีย อีกสลับตัวที่สำรองไว้ขึ้นมาทำงานโดยอัตโนมัติ เพื่อให้มั่นใจว่าระบบนั้นจะคงทนต่อความเสียหาย ระบบดำเนินการต่อไปได้ โดยไม่ต้องถูกขัดจังหวะจากการเสียเวลาซ่อมแซม พูดง่ายๆ ฝรั่งเขาว่า Disk access will still continue normally with the failure transparent to the host system คือ การใช้งานดิสก์ยังคงเกิดขึ้นอย่างปกติ ตัวที่เสีย ระบบคอมพิวเตอร์ก็จะมองผ่านไป ปัจจุบันการนำ RAID มาใช้งานนั้น เกี่ยวกับเซิร์ฟเวอร์เป็นส่วนใหญ่ เมื่อระบบเครือข่ายถูกพัฒนาขึ้นใช้ ความสำคัญของหน่วยเก็บข้อมูล (Storage System) ก็ทวีความสำคัญขึ้น เพราะในเซิร์ฟเวอร์นั้น ถ้าหากว่าฮาร์ดดิสก์ชำรุด ใช้งานไม่ได้ นอกจากจะสูญเสียข้อมูลที่เก็บไว้ในฮาร์ดดิสก์ไปทั้งหมดแล้วยังจะต้องเสียเวลาเพื่อรอให้การซ่อมแซมแล้วเสร็จ ซึ่งหมายถึงการสูญเสียโอกาสทางธุรกิจ
ประโยชน์จาก RAID
1. เอื้อประโยชน์ในการรวมเอาพื้นที่จากฮาร์ดดิสก์หลายๆ ตัวเข้ารวมกันเป็น “ก้อน” ก้อนเดียว
2. ใช้ประโยชน์จากการ “เข้าถึง” ของฮาร์ดดิสก์แต่ละตัว ซึ่งหมายถึง จะแบ่งข้อมูลออกเป็นบล๊อคย่อย ๆ แล้วแยกกันไปเขียน(อ่าน) ลงบนฮาร์ดดิสก์แต่ละตัว ทำให้ย่นระยะเวลาทำงาน และลดระยะเวลาคอย (Wait State)
3. มีระบบ “เผื่อเสีย” โดยการทำ “Mirroring” หรือ Parity การกระจายการเขียน-อ่านข้อมูล (Stripping) และพาริตี้ (Parity)
การกระจายการเขียน-อ่านข้อมูล (Stripping) และพาริตี้ (Parity) 2 กลไก หัวใจของ RAID
การนำเอาดิสก์หลายๆ ตัวมารวมกันเป็นดิสก์อะเรย์ แล้วกำหนดให้เป็น Logical Drive เพียงหนึ่งตัว นั้นมี “Stripping” เป็นหัวใจในการทำงาน กล่าวได้ว่า Stripping เป็นหลักการพื้นฐานของ RAID คือ เมื่อมีฮาร์ดดิสก์หลาย ๆ ตัวมารวมกัน การเขียนข้อมูลชุดหนึ่ง ๆ ลงดิสก์ เพื่อให้ได้ประสิทธิภาพดีที่สุด ต้องมีการ “กระจาย” ข้อมูลลงไปในดิสก์ทุกตัวในอะเรย์ เรียกการกระจายเขียน-อ่านข้อมูลเหล่านี้ว่า Stripping
กระบวนการ Stripping นั้นสิ่งที่สำคัญคือ I/O เพราะต้องมีการเข้าถึงฮาร์ดดิสก์ในอะเรย์ ต้องจัดการให้ดิสก์ทุกตัวบรรจุข้อมูลที่ถูกเขียน-อ่าน (Access) ในสภาวะที่สมดุลกัน ยิ่ง RAID Controller ออกแบบเท่าไร ก็จะได้ประสิทธิภาพจาก I/O มากขึ้น สำหรับตัวควบคุมอะเรย์แบบฮาร์ดแวร์ (RAID Controller) การวัดประสิทธิภาพในการทำงาน สิ่งที่นำมาวัดประสิทธิภาพก็คือ I/O Performance
บันทึกเทคนิค
ทำไมถึงว่า I/O สำคัญ กรณีนี้ จะชี้ให้เห็นว่าถ้าหากเป็น file server นั้น I/O ยังมีความสำคัญไม่มากนัก เพราะ user จะไม่ค่อยเปิด/ปิด file เท่าไหร่ (เว้นแต่มีกรณีที่มีการนำเอา Network Drive เป็น Swap space แต่นั่นไม่ใช่ file request แล้ว เพราะการเปิดแต่ละครั้ง จะเป็นการเปิดเพื่อนำมาแก้ไข ซึ่งกว่าจะ save บางทีใช้เวลานานกว่า 10-15 นาที สมมุติว่ามีผู้ใช้ 20 คน เฉลี่ยเวลาที่จะต้องทำ I/O ก็ยังนานระดับเป็นนาที ซึ่งถือว่าไม่มากนัก แต่ถ้าเป็น database ที่ต้องทำงานระดับ record locking นั้น การเปิดข้อมูลมาแก้ไข 1 record จะมี I/O อย่างน้อย 3-4 ครั้ง (database open, record open, index open, lock open) และเฉลี่ย ไม่เกิน 30 วินาทีก็ต้องมี I/O อีกรอบ เพื่อ write ซึ่งแพงกว่า read มากเนื่องจากต้องมี concurrency control, journalizing, log ยิ่งพวก 2-phase commitment (เขียน changed image ก่อน -> ลบ record เดิม -> เปลี่ยนchanged image เป็น record ใหม่) จะใช้ I/O ถึง 2 เท่า เฉลี่ย 30 วินาที มี I/O ไม่น้อยกว่า 15 ครั้ง ยิ่งพวก banking หรือonline service เวลาการจัดการ record จะน้อยกว่า 10 วินาทีอีก
ถ้าประมาณว่าเฉลี่ย 15 วินาที มี I/O 15 หน 1 หน/วินาที ถ้ามีเครื่องแค่ 1,000 เครื่อง ที่เข้าจัดการ database อันนั้น ลองจินตนาการว่าอะไรจะเกิดขึ้น เพราะจากตัวอย่างนั้นแค่ 1 database, 1 job (ที่ซ้ำซาก เหมือนกัน) เท่านั้น และยังไม่นับoverhead ที่เกิดจากการ verify parity ของตัว RAID controller เองด้วย cache จะมีความสำคัญตรงนี้ คือ ถ้าสามารถ holdข้อมูลไว้ได้ ทำ block I/O ได้, queuing I/O ดีๆ ให้อ่านเขียนโดยมี HDD head movement น้อยที่สุด เปิดยาวทีเดียวเพื่ออ่าน/เขียนจาก track 1 -> last track แบบ one-way โดยไม่ต้องกระโดดไปๆ กลับๆ ประสิทธิภาพจะสูงอีกมาก
จะเห็นได้ว่า data transfer rate แทบไม่มีบทบาทเลย SCSI/2 สามารถส่งผ่านข้อมูลได้ 40 MB/sec แต่ฐานข้อมูลส่วนใหญ่ จะอ่านเขียน data ขนาด ไม่เกิน 2k กันแทบทั้งนั้น (ข้อมูล 1 record ไหน ขนาดที่ใหญ่ๆ จะไม่เกิน 2 กิโลไบต์ ถ้าไม่ใช่image) พันเครื่องอ่าน-เขียนพร้อมๆกัน data stream ก็แค่ 2-3 MB เท่านั้นการวัดประสิทธิภาพ I/O วัดว่ารองรับได้กี่ I/O per sec โดย RAID Controller ที่ดีนั้น ได้ถึง 6,000 I/O per sec และปัจจุบัน RAID Controller รุ่นประสิทธิภาพสูง ทำได้ถึง 10 KBPSec แต่มีราคาแพงมากกรณีที่ ค่า I/O ต่ำ ความเร็วในการทำงานของ RAID จะแปรผันตาม cache
สำหรับ Parity ของข้อมูลนั้น ไม่ได้ถูกระบุสำหรับ RAID ทุกระดับ แต่จะมีเฉพาะบางระดับเท่านั้น Parity จะช่วยในเรื่องของการ”เผื่อเสีย” คือ ถ้าหากข้อมูลในดิสก์เสียหาย หรือเกิดทำลาย จะใช้ Parity ช่วยให้กู้ข้อมูลกลับมาได้
การสร้าง parity อาศัยความสามารถของโปรเซสเซอร์ ซึ่งจะเป็น โปรเซสเซอร์บน RAID Controller หรือโปรเซสเซอร์บนเซิร์ฟเวอร์ก็ตาม การทำงานของโปรเซสเซอร์ดังกล่าวจะได้ค่า ยิ่งถ้า parity นั้นเป็น CRC ยิ่งต้องการ CPU powerมากขึ้น โดยการคำนวณกัน byte per byte ไม่ได้เอามาทั้ง file แล้ว generate 4 bytes และกรณีที่เป็น RAID-5 ยังต้องคอยหมุนให้ parity bit กระจายไปอยู่ตาม HDD ลูกต่างๆ ในอะเรย์อีก
ถ้าหากต้องการทราบว่า RAID-5 ใช้พลังงานงานจาก CPU มากขนาดไหน ลองหา HDD SCSI มาสามตัว ลง Windows NT แล้วทำ software RAID ดูสิครับ
ก่อนที่เราจะไปรู้จัก RAID แบบต่างๆ เรามารู้จักคำว่า Data Striping กันก่อนครับ
Data Striping คือการแบ่งข้อมูลออกเป็นส่วนๆ แล้วนำแต่ละส่วนไปเก็บใน harddisk แต่ละตัว การทำ striping นี้จะช่วยให้การอ่าน หรือเขียนข้อมูลใน disk array มีประสิทธิภาพมากขึ้น เพราะแต่ละไฟล์จะถูกแบ่งเป็นส่วนๆ กระจายไปเก็บในส่วนที่ต่างกันของ harddisk หลายตัว โดย harddisk เหล่านั้นทำงานไปด้วยกันแบบขนาน (parallel) จึงทำให้การเข้าถึงข้อมูลนั้นเร็วกว่าharddisk แบบตัวเดียวอย่างแน่นอนและนี่คือ RAID แบบต่างๆ ที่มีความสามารถต่างกัน และถูกเอามาใช้ในงานที่แตกต่างกัน แล้วแต่ผู้ใช้ครับ
RAID 0
คือการเอา harddisk มากกว่า 1 ตัวมาต่อร่วมกันในลักษณะ non-redundant ซึ่ง RAID 0 นี้มีจุดประสงค์ เพื่อที่จะเพิ่มความเร็วในการอ่าน/เขียนข้อมูล harddisk โดยตรง ไม่มีการเก็บข้อมูลสำรอง ดังนั้นถ้าฮาร์ดดิสก์ตัวใดตัวหนึ่งเกิดเสียหาย ก็จะส่งผลให้ข้อมูลทั้งหมดไม่สามารถใช้งานได้ทันที จากรูป จะเห็นว่าข้อมูลจะถูกแบ่งไปเก็บที่ harddisk ทั้ง 3 ตัว (กรณีที่เราใช้ harddisk 3 ตัวมาต่อ RAID 0 กัน) และถ้าเพิ่มจำนวน harddisk ใน array ให้มากขึ้น เวลาที่ใช้อ่านหรือเขียนข้อมูลก็จะลดลงไปตามสัดส่วน ตามทฤษฎีแล้ว ถ้า disk array มี harddisk จำนวน N ตัว ก็จะทำให้อ่านหรือแขียนข้อมูลได้เร็วขึ้นเป็น N เท่าตัว แต่ด้วยเหตุผลและปัจจัยหลายประการ เช่น RAID controller, ความคลาดเคลื่อนของความเร็ว harddisk ทำให้ในความเป็นจริงอาจเร็วไม่ถึงตามทฤษฎี
RAID 1
RAID 1 มีอีกชื่อหนึ่งว่า disk mirroring จะประกอบไปด้วย harddisk 2 ตัวที่เก็บข้อมูลเหมือนกันทุกประการ เสมือนการสำรองข้อมูล หาก harddisk ตัวใดตัวหนึ่งเกิดเสียหาย ระบบก็ยังสามารถดึงข้อมูลจาก harddisk อีกตัวหนึ่งมาใช้งานได้ตามปกติ สำหรับ RAID controller ที่ถูกออกแบบมาเป็นอย่างดีแล้ว การเขียนข้อมูลลง harddisk 2 ตัวในเวลาเดียวกัน จะใช้เวลาพอๆ กับการเขียนข้อมูลลง harddisk ตัวเดียว ในขณะที่เวลาในการอ่านก็จะน้อยลง เพราะ RAID controller จะเลือกอ่านข้อมูลจากharddisk ตัวไหนก็ได้ โดยหากมีคำสั่งให้อ่านข้อมูล 2 ชุดในเวลาเดียวกัน ตัว RAID controller ก็สามารถประมวลผลคำสั่งเพื่ออ่านข้อมูลจาก harddisk ตัวหนึ่ง และคำสั่งอีกชุดนึงจาก harddisk อีกตัวนึงก็ได้
จุดเด่นของ RAID 1 คือความปลอดภัยของข้อมูล ไม่เน้นเรื่องประสิทธิภาพและความเร็วเหมือนอย่าง RAID 0 แม้ว่าประสิทธิภาพในการอ่านข้อมูลของ RAID 1 จะสูงขึ้นก็ตาม
RAID 3
RAID 3 มีลักษณะที่คล้ายกับ RAID 2 แต่แทนที่จะตัดแบ่งข้อมูลในระดับ bit เหมือน RAID 2 ก็จะตัดเก็บข้อมูลในระดับ byteแทนและการตรวจสอบและแก้ไขข้อผิดพลาดของข้อมูล จะใช้ parity แทนที่จะเป็น ECC ทำให้ RAID 3 มีความสามารถในการอ่านและเขียนข้อมูลได้อย่างรวดเร็ว เพราะมีการต่อ harddisk แต่ละตัวแบบ stripe และใช้ harddisk ที่เก็บ parity เพียงแค่ตัวเดียวเท่านั้น แต่ถ้านำ RAID 3 ไปใช้ในงานที่มีการส่งผ่านข้อมูลในจำนวนที่น้อยๆ ซึ่ง RAID 3 ต้องกระจายข้อมูลไปทั่วทั้งharddisk จะทำให้เกิดปัญหาที่เรียกว่า คอขวด ขึ้นกับ harddisk ที่เก็บ parity เพราะไม่ว่าข้อมูลจะมีขนาดใหญ่ขนาดไหน RAID 3 ต้องเสียเวลาไปสร้างส่วน parity ทั้งสิ้น ยิ่งข้อมูลมีขนาดเล็กๆ แต่ parity ต้องสร้างขึ้นตลอด ทำให้ข้อมูลถูกจัดเก็บเสร็จก่อนการสร้าง parity ทั้งระบบต้องมารอให้สร้าง parity เสร็จก่อน จึงจะทำงานต่อไปได้นั่นเอง RAID 3 เหมาะสำหรับใช้ในงานที่มีการส่งข้อมูลจำนวนมากๆ เช่นงานตัดต่อ Video เป็นต้น
RAID 5
มีการตัดแบ่งข้อมูลในระดับ block เช่นเดียวกับ RAID 4 แต่จะไม่ทำการแยก harddisk ตัวใดตัวหนึ่งเพื่อเก็บ parity ในการเก็บparity ของ RAID 5 นั้น จะกระจาย parity ไปยัง harddisk ทุกตัว โดยปะปนไปกับข้อมูลปกติ จึงช่วยลดปัญหาคอขวด ซึ่งเป็นปัญหาที่สำคัญใน RAID 3 และ RAID 4 คุสมบัติอีกอันหนึ่งที่น่าสนใจของ RAID 5 คือ เทคโนโลยี Hot Swap คือเราสามารถทำการเปลี่ยน harddisk ในกรณีที่เกิดปัญหาได้ในขณะที่ระบบยังทำงานอยู่ เหมาะสำหรับงาน Server ต่างๆ ที่ต้องทำงานต่อเนื่อง
RAID 6
RAID 6 อาศัยพื้นฐานการทำงานของ RAID 5 เกือบทุกประการ แต่มีการเพิ่ม parity block เข้าไปอีก 1 ชุด เพื่อยอมให้เราทำการ Hot Swap ได้พร้อมกัน 2 ตัว (RAID 5 ทำการ Hot Swap ได้ทีละ 1 ตัวเท่านั้น หาก harddisk มีปัญหาพร้อมกัน 2ตัว จะทำให้เสียทั้งระบบ) เรียกว่าเป็นการเพิ่ม Fault Tolerance ให้กับระบบ โดย RAID 6 เหมาะกับงานที่ต้องการความปลอดภัยและเสถียรภาพของข้อมูลที่สูงมากๆ
RAID 0+1
เป็นการผสมผสานระหว่าง RAID 1 และ RAID 0 เข้าด้วยกัน โดยใช้ Harddisk 4 ตัวขึ้นไปครับ และมีการทำ mirror ข้อมูล (backup ข้อมูล) ไปด้วย ข้อเสียของ 0+1 คือการเพิ่มจำนวน harddisk ในอนาคตเป็นไปได้ยาก เพราะ harddisk แต่ละตัวมีmirror เป็นของตัวเอง ยิ่งเพิ่ม harddisk เพื่อใช้งานก็ต้องเพิ่ม harddisk เพื่อ backup ไปด้วย ตามรูปครับ
RAID 10 (1+0)
RAID 10 หรือ RAID 1+0 เป็นการผสมผสานระหว่าง RAID 1 และ RAID 0 เข้าด้วยกัน การทำงานจะสกับกันทีละตัว พร้อมทั้งทำ Mirror ทำให้การเข้าถึงข้อมูลเป็นไปได้อย่างรวดเร็ว เหมาะสำหรับ Server ที่ต้องการความเร็วในการเข้าถึงข้อมูลค่อนข้างมาก และมีประสิทธิภาพสูงครับ
ส่วนประกอบของ RAID
RAID Controller
ตัวควบคุมระบบ RAID นั้นใช้ได้ทั้งซอฟต์แวร์และฮาร์ดแวร์ หรือใช้รวมกันก็ได้ ซอฟต์แวร์เช่น Windows NT 4.0 สนับสนุน RAID ระดับ 0 ,1 (Striping , Mirroring) และฮาร์ดแวร์จากผู้ผลิตรายต่างๆ ซึ่งมีอยู่มากหลากหลาย เช่น Asustek , Adaptec , DCT ,MTI ซึ่งฮาร์ดแวร์เหล่านั้นมีราคาอยู่ในระหว่างสองหมื่นถึงเป็นล้านบาท
กรณีใช้ซอฟต์แวร์เป็น RAID Controller จะมีข้อจำกัดคือ ระดับที่สนับสนุน คือ 0, 1 (Striping , Mirroring) นั้นยังไม่ครอบคลุมระดับ Data Protection ในเรื่องของพาริตี้ ซึ่งมีใน RAID ระดับ 3,5 และใช้กำลังจากโปรเซสเซอร์ ทำให้โปรเซสเซอร์มีเวลาจะไปประมวลผลงานอื่นๆ น้อยลง การใช้ซอฟต์แวร์ควบคุม มีข้อดีคือ ราคาถูกกว่า ไม่ต้องการอุปกรณ์เพิ่มเติมมากนัก
ส่วนฮาร์ดแวร์ โดยมากจะได้รับการออกแบบที่ดี แต่ฮาร์ดแวร์ก็มีข้อแตกต่างระหว่างยี่ห้อต่างๆ คือ ประสิทธิภาพในการทำงานแตกต่างกันออกไป การติดตั้งยากกว่าซอฟต์แวร์ควบคุม และราคาการลงทุนค่อนข้างสูงกว่า เพราะต้องการอุปกรณ์เพิ่มเติม ไม่ว่าจะเป็นฮาร์ดดิสก์ เคสสำหรับฮาร์ดดิสก์ โดยเฉพาะระบบ “Hot Swap” แต่ผลของการลงทุนก็คุ้มค่า (เกี่ยวกับ Hardware RAID Controller ดูข้อมูลเพิ่มเติมได้จาก รู้จักกับ Raid Controller)
ฮาร์ดดิสก์ที่นำมาต่อเป็น Array (Physical Drive)
คือฮาร์ดดิสก์ที่นำมาต่อเข้าเพื่อใช้กับระบบที่จะใช้ RAID จำนวนของฮาร์ดดิสก์นั้น ขึ้นอยู่กับระดับของ RAID ที่เลือกใช้งาน
ไดรฟ์อะไหล่ (Spare Drive)
เป็นฮาร์ดดิสก์ที่นำมาติดตั้งไว้เป็น “อะไหล่” เผื่อว่าฮาร์ดดิสก์ตัวอื่นๆ ที่ใช้ในระบบ RAID เกิดชำรุดเสียหาย โดยปกติเมื่อไดรฟ์ตัวใดตัวหนึ่งในระบบเกิดเสียหาย ไดรฟ์ที่เป็น “อะไหล่” จะถูกสลับเข้าไปใช้งานแทนที่โดยอัตโนมัติทันที
ไดรฟ์ชำรุด (Failed Drive)
ฮาร์ดดิสก์ที่ชำรุดเสียหาย เช่นมี Bad Sector หรือตัวระบบกลไกการทำงานเสียหาย หรือไม่ตอบสนองต่อการทำงานของ Host SCSI ไดรฟ์พวกนี้ถือเป็น “ไดรฟ์ชำรุด” จะต้องเอาออกและเปลี่ยนไดรฟ์ดีเข้าไปใหม่
ไดรฟ์ตรรกะ (Logical Drive)
เหมือนกับระบบดอสธรรมดา คือ ไม่ใช่ไดรฟ์จริง เป็นเพียงไดรฟ์สมมุติ แต่ใน RAID ไดรฟ์ตรรกะนั้น เกิดจากการรวมเอาไดรฟ์อื่นๆ มารวมกัน ให้เกิดความจุสูงขึ้น
Logical Volume
ไม่อยากแปลเป็นไทย เอาเป็นแบบเดิม คงความหมายดีกว่า เมื่อต้องการ “ก้อน” ของฮาร์ดดิสก์ที่มีความจุมากขึ้น ทำได้โดยการนำเอา “Logical Drive” มารวมเข้าด้วยกันเป็น Logical Volume นั้นเอง
การจัดการ RAID
เมื่อกล่าวถึงการจัดการ RAID ก็เสมือนว่าเรากำลังคุยกันเกี่ยวกับเทคโนโลยี “การจัดเก็บข้อมูล” หรือ Storage Technology ซึ่งมีสองส่วนด้วยกันคือ การเลือกระดับของ RAID ที่เหมาะสมกับการใช้งาน และการจัดการกับไดรฟ์ที่เสียหาย
การเลือกระดับ RAID ที่เหมาะสม
RAID แต่ละระดับมีความเหมาะสมเกี่ยวกับการใช้งาน และความต้องการฮาร์ดแวร์ ซอฟต์แวร์ ฮาร์ดดิสก์แตกต่างกัน ดูอ้างอิงได้จากระดับของ RAID ซึ่งกล่าวไว้คร่าวๆ เกี่ยวกับระดับของ RAID และการใช้งาน
การจัดการไดรฟ์เสีย
การจัดการกับไดรฟ์เสีย ไม่ได้หมายถึงว่า ฮาร์ดดิสก์เสียแล้ว ถึงค่อยคิดว่า จะจัดการอย่างไร แต่หมายถึง จะทำอย่างไรกับ “ระบบเผื่อเสีย” หาฮาร์ดดิสก์มา Standby หรือเปิดไว้รอ เหมือนเตรียมยางรถยนต์อะไหล่ติดไว้ที่ท้ายรถ? อะไหล่หรือ Spare นี่เป็นของ “เผื่อเสีย” แน่นอน คิดอยากมีระบบ “เผื่อเสีย” ก็ต้องลงทุนบ้าง สำหรับ RAID ก็เช่นเดียวกัน ต้องลงทุนซื้อไดรฟ์มาไว้ เรียกว่าเป็น Spare Drive ซึ่งมีทั้ง Global Spare Drive และ Local Spare Drive เป็นสองกลุ่ม ความแตกต่างคือ Local Spare Drive จะเป็นอะไหล่สำหรับ Local Drive เพียงตัวเดียว (แยกให้ออกนะครับ Local Drive ตัวเดียวหมายถึง 1 “ก้อน” หรือ 1 Volume ซึ่งจะรวมได้หลายๆ Physical Drive เพราะ Local Drive ในระบบเครือข่าย แตกต่างจาก Local Drive ของพวกเครื่องพีซี) แต่ Global Spare Drive นั้นเป็นอะไหล่สำรองสำหรับ Local Drive 2 ก้อนขึ้นไป
การระบุว่าไดรฟ์ไหนเสีย และการวิเคราะห์อาการเสีย เป็นเทคนิคการออกแบบ RAID Controller ที่ผู้ผลิตรายต่างๆ ต่างก็แข่งขันกันพัฒนา เพราะโดยคุณสมบัติการออกแบบฮาร์ดดิสก์แบบ SCSI แล้ว เป็นไปได้ยากที่ RAID Controller จะตรวจสอบว่าไดรฟ์ไหนเสีย แต่ระบบการตรวจสอบที่เกิดจากการพัฒนาร่วมกันของผู้ผลิต RAID และผู้ผลิตฮาร์ดดิสก์ ที่มีชื่อเทคโนโลยีว่า SAF-TE ก็ทำให้การวิเคราะห์ และวินิจฉัยอาการเสียของฮาร์ดดิสก์เป็นไปได้ง่ายขึ้น
การจัดการกับไดรฟ์เสีย ยังมีระบบสนับสนุนหรืออำนวยความสะดวก ซึ่งทำงานสอดคล้องกับระบบ RAID Controller อีกส่วนหนึ่งคือ Hot Plug Drive, Hot Swap Drive Bay ซึ่งหมายถึงการเปลี่ยนฮาร์ดดิสก์โดยอไม่ต้องปิดสวิตช์คอมพิวเตอร์ก่อน และเมื่อเปลี่ยนแล้วนอกจากสามารถใช้งานได้ทันทีแล้ว หากใช้ระบบ RAID ก็สามารถ “Rebuild” คือ สร้างระบบ RAID ในฮาร์ดดิสก์ก้อนใหม่ได้ทันที
การเพิ่มขนาดของ Logical Volume
ขนาดของ Logical Drive นั้น ขึ้นกับความจุและจำนวนของฮาร์ดดิสก์ที่นำมาเพิ่มในระบบ RAID โดยปกติระบบ RAID จะระบุไว้ว่า กรณีใช้ฮาร์ดแวร์ในการควบคุม ฮาร์ดดิสก์ทั้งหมดที่นำมาเพิ่มในระบบจะต้องมีความจุเท่ากัน การเพิ่มขนาดของ Logical Drive ทำได้โดยการเพิ่มฮาร์ดดิสก์ SCSI เข้าไปในระบบ
ถ้าเป็นระบบ RAID เก่าๆ การเพิ่มขนาดของ Logical Drive ทำได้โดยการสำรองข้อมูลทั้งหมด หลังจากนั้นปิดระบบ (ปิดเฉพาะระบบที่ใช้ RAID) ติดตั้งฮาร์ดดิสก์เพิ่มเติมเข้าไปในระบบ และ Config RAID หรือการสร้าง RAID ขึ้นใหม่ วิธีการนี้มีข้อด้อยคือ ใช้เวลาในการดำเนินใหม่ และต้องการผู้เชี่ยวชาญ เพราะในระบบเครือข่าย ถ้าหากต้องมีการ “ติดตั้งระบบใหม่” นั้นหมายถึง การ Config ระบบใหม่ทั้งหมด
แต่ระบบคอมพิวเตอร์ที่ใช้ RAID ใหม่ๆ นั้น ใช้หลักการของ Dynamic System Expansion การขยายขนาดของระบบโดยวิธีการง่ายกว่าเดิม โดยวิธีนี้ต้องใช้กับระบบ RAID ที่เป็น RAID Hardware Controller เท่านั้น โดยเมื่อเพิ่มฮาร์ดดิสก์เข้าไปในระบบ (จะเป็น Hot Plug หรือ Non Hot-Plug) ก็ได้ หลังจากนั้นใช้ฟังก์ชันในการตรวจจับ (SCSI Harddisk SCAN) เพื่อตรวจสอบว่ามีฮาร์ดดิสก์ใหม่ถูกติดตั้งเข้าไปในอะเรย์ หลังจากนั้นก็ใช้ฟังก์ชันในการเพิ่มขนาด Logical Volume โดยการ Assign ฮาร์ดดิสก์ใหม่เข้ากับระบบอะเรย์ เพียงไม่กี่นาทีก็เพิ่มขนาดของ Logical Volume ได้
การจัดการและตรวจสอบโดย RAID Controller
ฮาร์ดแวร์ RAID Controller ที่ผลิตโดยผู้ผลิตหลาย ๆ ราย มีกลวิธีในการตรวจสอบระบบ DISK Array โดยเริ่มจากการตรวจสอบตัวคอนโทรลเลอร์เอง ไปจนถึงการตรวจสอบฮาร์ดดิสก์ที่เป็นสมาชิกอะเรย์ ได้แก่การตรวจสอบ disk / PSU / Power / Over-Temp แล้วแสดงค่าความผิดพลาด พร้อมทั้งแจ้งเตือนกรณีที่ความผิดพลาดนั้น ถือเป็นความผิดพลาดระดับวิกฤติ
Incoming search terms:
- raid คือ