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 2

ใน RAID 2 นี้ ข้อมูลทั้งหมดจะถูกตัดแบ่งเพื่อจัดเก็บลง harddisk แต่ละตัวใน disk array โดยจะมี harddisk ตัวหนึ่งเก็บข้อมูลที่ใช้ตรวจสอบและแก้ไขข้อผิดพลาด (ECC - Error Checking and Correcting) ซึ่งเป็นการลดเปอร์เซ็นต์ที่ข้อมูลจะเสียหายหรือสูญเสียไป เมื่อมีการส่งข้อมูลไปบันทึกใน disk array จะเห็นได้ว่ามี harddisk ที่เอาไว้เก็บค่า ECC โดยเฉพาะ ถ้าเกิดการปรากฏว่า harddisk ตัวใดตัวหนึ่งเสียหาย ระบบก็จะสามารถสร้างข้อมูลทั้งหมดใน harddisk ตัวนั้นขึ้นมาได้ใหม่ โดยอาศัยข้อมูลจาก harddisk ตัวอื่นๆ และจากค่า ECC ที่เก็บเอาไว้ ซึ่งการทำ ECC นี้ส่งผลให้ harddisk ทั้งระบบต้องทำงานค่อนข้างมากทีเดียว และ RAID 2 นั้นจะเห็นได้ว่าต้องใช้ harddisk จำนวนมากในการเก็บค่า ECC ซึ่งทำให้ค่อนข้างสิ้นเปลืองครับ

              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 4

         RAID 4 มีลักษณะโดยรวมเหมือนกับ RAID 3 ทุกประการ ยกเว้นเรื่องการตัดแบ่งข้อมูลที่ทำในระดับ block แทนที่จะเป็น bit หรือ byte ซึ่งทำให้การอ่านข้อมูลแบบ random ทำได้รวดเร็วกว่า อย่างไรก็ตาม ปัญหาคอขวดที่กล่าวใน RAID 3 ก็ยังมีโอกาสเกิดขึ้นเหมือนเดิมครับ

            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 7
         
RAID 7 อาศัยพื้นฐานการทำงานของ RAID 4 โดนเพิ่มคุณสมบัติบางอย่างเข้าไป เพื่อทำให้ harddisk แต่ละตัวทำงานอิสระต่อกัน ไม่จำเป็นต้องรอให้ harddisk ตัวใดตัวหนึ่งทำงานเสร็จก่อน (ซึ่งทำให้เกิดปัญหาคอขวดใน RAID 4) โดยการส่งข้อมูลแต่ละครั้ง จะทำการส่งผ่าน X-Bus ซึ่งเป็นบัสที่มีความเร็วสูง RAID 7 ยังมีหน่วยความจำแคชหลายระดับในตัว RAID Controller เพื่อแยกการทำงานให้อิสระต่อกัน โดยจะมี Real-Time Operating System อยู่ภายในส่วนที่เรียกว่า Array Control Processor ทำหน้าที่ควบคุมการส่งข้อมูลบนบัส

         RAID 7 เหมาะสำหรับใช้ในองค์กรขนาดใหญ่ เชื่อมต่อได้สูงสุดถึง 12 host 48 drives และราคาของระบบ RAID 7 ค่อนข้างที่จะสูงมาก ด้วย RAID 7 เป็นลิขสิทธิ์เฉพาะของบริษัท Storage Computer Corporation ทำให้ผู้ใช้งาน RAID 7 ไม่สามารถปรับแต่งอะไรกับเครื่องเลย ทำให้ RAID 7 ไม่ค่อยได้รับความนิยมมากนัก
         
          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 53
        
 RAID 53 มีอัตราความเร็วการเข้าถึงข้อมูลค่อนข้างสูง เพราะมีพื้นฐานการทำงานของ RAID 0 อยู่ และมีการป้องกันความเสียหายที่จะเกิดขึ้นได้ เหมือน RAID 3 ซึ่งแน่นอนว่ายังมีปัญหาคอขวดด้วย นอกจากนี้ RAID 53 ยังสามารถทำ Hot Swap ได้เหมือนใน RAID 5 ครับ


ส่วนประกอบของ 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 แล้วแสดงค่าความผิดพลาด พร้อมทั้งแจ้งเตือนกรณีที่ความผิดพลาดนั้น ถือเป็นความผิดพลาดระดับวิกฤติ

ขอขอบคุณบทความจาก http://www.ensthai.com/tip_trick/page/overall_raid.php และ http://www.overclockzone.com/spin9/raid/index.html ครับ

หวังว่าบทความคงเป็นประโยชน์แก่ผู้ที่กำลังศึกษานะครับ และอย่าลืมใช้คอมพิวเตอร์อย่างมีความสุขและเกิดประโยชน์นะครับ ^^

                                


 
นักเรียนนินจา


( Last update on 2012-10-28 )

 Artticle |  Email |  Facebook

147 : 163