แม้ว่าจะมีมานานกว่า 50 ปีแล้ว แต่ RAID ยังคงได้รับความนิยมอย่างมาก โดยเฉพาะอย่างยิ่งในสภาพแวดล้อมขององค์กร โดยรวมแล้ว เป็นความสำเร็จที่เทคโนโลยีใดๆ ก็ตามที่เกี่ยวข้องมายาวนานนี้
หากเรามุ่งเน้นที่สถานะของ RAID ในปัจจุบัน ระดับ RAID บางระดับมีความเกี่ยวข้องมากกว่าระดับอื่นๆ อย่างแน่นอน RAID 5 เป็นรุ่น RAID ที่ได้รับความนิยมมากที่สุดโดยเฉพาะในช่วงสองทศวรรษที่ผ่านมา
เนื่องจากขนาดดิสก์เพิ่มขึ้นแบบทวีคูณ จึงทำให้เกิดคำถามขึ้น RAID 5 ยังเชื่อถือได้หรือไม่? ในการตอบคำถามนี้ ก่อนอื่น เราต้องคุยกันก่อนว่า RAID 5 คืออะไร มันคือกลไกการทำงาน แอปพลิเคชัน และข้อบกพร่อง
คำศัพท์เกี่ยวกับ RAID
RAID 5 ใช้ block-interleaved ความเท่าเทียมกันแบบกระจาย เพื่อให้เข้าใจสิ่งนี้ เราจะต้องเริ่มต้นด้วยพื้นฐานของ RAID
Redundant Array of Independent Disks (RAID) เป็นเทคโนโลยีการจัดเก็บข้อมูลที่ใช้เพื่อป้องกันความล้มเหลวของดิสก์ผ่านความซ้ำซ้อนของข้อมูลหรือความทนทานต่อข้อผิดพลาด ในขณะเดียวกันก็ปรับปรุงประสิทธิภาพของดิสก์โดยรวมด้วย
ระบบ RAID ใช้เทคนิคต่างๆ เช่น การสตริป การมิเรอร์ และความเท่าเทียมกัน สตริป กระจายกลุ่มของข้อมูลตามลำดับเชิงตรรกะทั่วดิสก์ทั้งหมดในอาร์เรย์ ซึ่งส่งผลให้ประสิทธิภาพการอ่าน-เขียนดีขึ้น
พาริตี ในบริบทของ RAID คือข้อมูลการกู้คืนที่เขียนไปยังดิสก์พาริตีเฉพาะหรือกระจายไปทั่วดิสก์ทั้งหมดในอาร์เรย์ หากดิสก์ในอาร์เรย์ล้มเหลว คุณสามารถใช้ข้อมูลพาริตีนี้พร้อมกับข้อมูลในไดรฟ์ที่ใช้งานได้ที่เหลือเพื่อสร้างข้อมูลที่สูญหายขึ้นใหม่ได้
RAID 5 ทำงานอย่างไร
อาร์เรย์ RAID 5 ใช้ การสตริประดับบล็อก กับ ความเท่าเทียมกันแบบกระจาย เนื่องจากต้องมีดิสก์อย่างน้อย 2 แผ่นสำหรับการสตริป และต้องใช้พื้นที่ดิสก์อีกหนึ่งมูลค่าสำหรับพาริตี อาร์เรย์ RAID 5 จึงจำเป็นต้องมีดิสก์ 3 อย่างน้อย ลองใช้อาร์เรย์ RAID 5 แบบ 4 ดิสก์เป็นตัวอย่างเพื่อให้เข้าใจวิธีการทำงานได้ดีขึ้น
เมื่อเขียนไปยังอาร์เรย์ กลุ่มข้อมูลขนาดบล็อก (A1) คือ เขียนลงดิสก์แรก ข้อมูลกลุ่มนี้เรียกอีกอย่างว่า แถบ ขนาดของบล็อกเรียกว่า ขนาดก้อน และค่าของบล็อกจะแตกต่างกันไปขึ้นอยู่กับผู้ใช้ที่จะตั้งค่า
ต่อจากการดำเนินการเขียน ส่วนข้อมูลที่ต่อเนื่องกันทางตรรกะ (A2) ถัดไปจะถูกเขียนไปยังดิสก์ที่สองและ เช่นเดียวกับที่สาม (A3) เนื่องจากบล็อกข้อมูลกระจายอยู่ในแถบทั้งสามนี้ จึงเรียกรวมกันว่า แถบ
ขนาดแถบ ตามชื่อหมายถึง ผลรวมของขนาดของแถบหรือชิ้นทั้งหมดในแถบ โดยทั่วไป ตัวควบคุม RAID ของฮาร์ดแวร์จะใช้ขนาดแถบ แต่การใช้งาน RAID บางตัวก็ใช้ขนาดก้อนด้วย
ทำต่ออีกครั้งหลังจากแยกข้อมูลในดิสก์ (A1, A2, A3) ข้อมูลพาริตีจะคำนวณและจัดเก็บเป็นก้อนขนาดบล็อกบนดิสก์ที่เหลือ (Ap). ด้วยเหตุนี้ จึงมีการเขียนแถบข้อมูลทั้งหมดหนึ่งแถบ
ในตัวอย่างของเรา กระบวนการเดียวกันนี้จะเกิดขึ้นซ้ำอีกครั้งเนื่องจากข้อมูลถูกแยกออกเป็นสามดิสก์ในขณะที่ดิสก์ที่สี่เก็บข้อมูลพาริตี พูดง่ายๆ ก็คือ การดำเนินการนี้จะดำเนินต่อไปจนกว่าการดำเนินการเขียนจะเสร็จสิ้น
แต่ยังมีบางสิ่งที่จะกล่าวถึงในที่นี้ เช่น วิธีคำนวณข้อมูลพาริตีจริง ๆ และเลย์เอาต์ของข้อมูลและบล็อกพาริตีในอาร์เรย์ ดังนั้น ให้เปลี่ยนโฟกัสไปที่ส่วนถัดไป
Parity In RAID 5
ระดับ RAID ที่ต่างกันใช้อัลกอริทึมต่างๆ ในการคำนวณข้อมูลพาริตี RAID 5 ใช้โอเปอเรเตอร์ Exclusive OR (XOR) โดยเฉพาะกับข้อมูลแต่ละไบต์
XOR จะคืนค่าเอาต์พุตจริงเมื่อมีอินพุตเพียงรายการเดียวเท่านั้นที่เป็นจริง หากอินพุตทั้งสองเป็นจริง (1,1) หรือเท็จ (0,0) เอาต์พุตจะเป็นเท็จ ตารางด้านล่างและตัวอย่างต่อไปนี้ควรอธิบายได้ดียิ่งขึ้น
ลองย้อนกลับไปที่ตัวอย่างของเราก่อนหน้านี้และดูที่แถบแรก สมมติว่าไบต์แรกของข้อมูลบนแถบมีดังต่อไปนี้:
A1 – 10111001
A2 – 11001010
A3 – 10011011
โดยการดำเนินการ A1 XOR A2 เราได้รับเอาต์พุต 01110011 เมื่อเราดำเนินการ XOR อื่นด้วยเอาต์พุตนี้และ A3 เราจะได้ข้อมูลพาริตี (Ap) ซึ่งออกมาเป็น 11101000
สมมติว่าหนึ่งในดิสก์ในอาร์เรย์ (เช่น ดิสก์ 2) ล้มเหลว เราสามารถดำเนินการ A1 XOR A3 เพื่อรับ 00100010 เป็นเอาต์พุต หากเราดำเนินการ XOR อื่นกับเอาต์พุตนี้และข้อมูลพาริตี เราจะได้ผลลัพธ์ต่อไปนี้:
00100010
11101000
11001010
ด้วยสิ่งนี้ เราได้สร้างใหม่ ไบต์แรกของข้อมูลบนดิสก์ 2 และนี่โดยสรุปคือข้อมูลที่พาริตีให้ความทนทานต่อข้อผิดพลาดและปกป้องข้อมูลของคุณในกรณีที่ดิสก์ล้มเหลว ความซ้ำซ้อนนี้มีข้อจำกัด แม้ว่า RAID 5 จะป้องกันความล้มเหลวของดิสก์เพียงครั้งเดียวเท่านั้น หากดิสก์ 2 แผ่นล้มเหลวพร้อมกัน ข้อมูลทั้งหมดจะสูญหาย
สุดท้ายนี้ยังมีเรื่องของการจัดวางข้อมูลในอาร์เรย์ด้วย ต่างจาก RAID ระดับ 2, 3 และ 4 ซึ่งใช้ดิสก์พาริตีเฉพาะ RAID 5 ใช้พาริตีแบบกระจาย ซึ่งหมายความว่าบล็อกพาริตีจะกระจายไปทั่วอาร์เรย์แทนที่จะเก็บไว้ในไดรฟ์เดียว
ตัวอย่างของเราก่อนหน้านี้แสดงเลย์เอาต์แบบอะซิงโครนัสจากซ้ายไปขวา แต่สิ่งนี้สามารถเปลี่ยนแปลงได้ขึ้นอยู่กับปัจจัยบางอย่าง ตัวอย่างเช่น สามารถเขียนบล็อคข้อมูลจากซ้ายไปขวาหรือจากขวาไปซ้ายในอาร์เรย์ ดังนั้น บล็อกพาริตีอาจอยู่ที่จุดเริ่มต้นหรือจุดสิ้นสุดของแถบ
ในกรณีของเลย์เอาต์แบบซิงโครนัส ตำแหน่งของบล็อกพาริตียังกำหนดตำแหน่งที่แถบถัดไปจะเริ่มต้น ตัวอย่างเช่น อาร์เรย์ด้านล่างถูกตั้งค่าเป็นซิงโครนัสซ้าย หมายความว่าข้อมูลถูกเขียนจากซ้ายไปขวา นอกจากนี้ บล็อกพาริตี (Ap) จะกำหนดตำแหน่งที่แถบถัดไป (B1) เริ่ม และอื่นๆ
คุณควรใช้ RAID 5 หรือไม่
RAID 5 ให้ทั้งประสิทธิภาพที่เพิ่มขึ้นผ่านการสตริปและความทนทานต่อข้อผิดพลาดผ่านความเท่าเทียมกัน และแตกต่างจากระดับ RAID ที่ต่ำกว่า ไม่จำเป็นต้องจัดการกับคอขวดของดิสก์พาริตีเฉพาะ สิ่งนี้ทำให้เป็นที่นิยมอย่างมากในยุค 2000 โดยเฉพาะอย่างยิ่งในสภาพแวดล้อมการผลิต
อย่างไรก็ตาม RAID 5 มีข้อบกพร่องที่สำคัญอย่างหนึ่งเสมอมาในการที่จะป้องกันความล้มเหลวของดิสก์เพียงตัวเดียว ตามทฤษฎีแล้ว ดิสก์สองแผ่นที่ล้มเหลวต่อเนื่องกันนั้นไม่น่าเป็นไปได้อย่างยิ่ง แต่ระหว่างการใช้งานจริง สิ่งต่าง ๆ
สำหรับผู้เริ่มใช้งาน ขนาด HDD เพิ่มขึ้นอย่างมาก ในขณะที่ความเร็วในการอ่าน/เขียนยังไม่ได้รับการปรับปรุงอย่างมาก เนื่องจากความแตกต่างนี้ เมื่อดิสก์ล้มเหลว การสร้างอาร์เรย์ใหม่จึงใช้เวลานานมาก ขึ้นอยู่กับขนาดและข้อกำหนดของอาร์เรย์ โดยอาจมีตั้งแต่ชั่วโมงจนถึงวัน
ต่อไป ผู้คนมักจะซื้อดิสก์เป็นชุด เมื่อคุณเปิดเผยไดรฟ์ยี่ห้อเดียวกันในภาระงานและสภาพแวดล้อมเดียวกัน โอกาสที่ไดรฟ์เหล่านี้จะล้มเหลวในเวลาเดียวกันจะเพิ่มขึ้น
แต่สมมติว่ามีดิสก์เดียวเท่านั้นที่ล้มเหลว หากคุณเคยขัดดิสก์เป็นประจำ ก็น่าจะดี แต่หากคุณไม่ได้ตรวจหาข้อผิดพลาด อาจมีความเสี่ยงที่จะพบกับ URE ในระหว่างกระบวนการสร้างใหม่ เนื่องจากดิสก์ตัวใดตัวหนึ่งในอาร์เรย์ล้มเหลวในขณะนี้
Unrecoverable Read Errors (UREs) เป็น ปัญหาสำคัญเมื่อสร้างอาร์เรย์ใหม่เนื่องจากข้อมูลที่อ่านไม่ได้เพียง MB เดียวอาจทำให้อาร์เรย์ทั้งหมดไม่มีประโยชน์ นี่เป็นเพราะวิธีการทำงานของการตั้งค่า RAID ส่วนใหญ่
การใช้งาน RAID บางอย่าง เช่น ZFS RAID และซอฟต์แวร์ RAID ของซอฟต์แวร์ Linux และตัวควบคุมฮาร์ดแวร์บางตัวทำเครื่องหมายเซกเตอร์ว่าเสียและดำเนินการสร้างใหม่ต่อไป อย่างไรก็ตาม ตัวควบคุม RAID ของฮาร์ดแวร์ส่วนใหญ่เพียงแค่หยุดการสร้างใหม่และทำเครื่องหมายอาร์เรย์ทั้งหมดว่าล้มเหลว
เหตุผลก็คือควรหยุดอาร์เรย์ แทนที่จะเสี่ยงที่ข้อมูลจะเสียหาย ซึ่งทำได้โดยสันนิษฐานว่าคุณจะกู้คืนจากข้อมูลสำรองหรือกู้คืนข้อมูลจากแต่ละไดรฟ์แยกกัน
เมื่อคุณรวมปัจจัยเหล่านี้เข้าด้วยกัน ก็ไม่ยากที่จะเข้าใจว่าทำไม RAID 5 ถึงไม่ได้รับความนิยมในช่วงไม่กี่ปีที่ผ่านมา นี่คือเหตุผลที่เลือกใช้ RAID เวอร์ชันอื่นๆ เช่น RAID 6 หรือ ZFS RAID-Z2 โดยเฉพาะอย่างยิ่งสำหรับอาร์เรย์ที่ใหญ่กว่า ซึ่งเวลาในการสร้างใหม่จะสูงกว่า และมีโอกาสสูญเสียข้อมูลมากขึ้น
บอกว่า RAID 5 ไม่เกี่ยวข้องอยู่แล้ว ผู้ผลิต HDD ได้นำสิ่งเหล่านี้มาพิจารณาและปรับปรุงไดรฟ์โดยการลดอัตราการเกิด URE แบบทวีคูณในช่วงไม่กี่ปีที่ผ่านมา เราขอแนะนำให้คุณเลือกใช้ระดับ RAID อื่นโดยทั่วไป แต่ถ้าคุณต้องการใช้ RAID 5 อยู่แล้ว คุณควรทำเช่นนั้นในกรณีของอาร์เรย์ขนาดเล็กเท่านั้น
สุดท้ายนี้ คือข้อกำหนดบางประการและ สิ่งที่น่ารู้หากคุณวางแผนจะตั้งค่าอาร์เรย์ RAID 5:
ตามที่กล่าวไว้ก่อนหน้านี้ อาร์เรย์ RAID 5 ต้องใช้ดิสก์ยูนิตอย่างน้อย 3 ยูนิต เนื่องจากต้องใช้ไดรฟ์อย่างน้อย 2 ไดรฟ์ในการสตริป และต้องใช้พื้นที่ดิสก์อีกหนึ่งมูลค่าในการจัดเก็บข้อมูลพาริตี พื้นที่จัดเก็บข้อมูลที่ใช้งานได้ในการตั้งค่า RAID 5 สามารถคำนวณได้ด้วย (N – 1) x (ขนาดดิสก์ที่เล็กที่สุด) คุณควรใช้ไดรฟ์ขนาดเดียวกัน เนื่องจากหากคุณใช้การตั้งค่าที่ไม่เท่ากัน ดิสก์ที่เล็กที่สุดจะสร้างปัญหาคอขวดได้อย่างมาก RAID 5 ให้ประสิทธิภาพการอ่านที่ยอดเยี่ยม เนื่องจากสตริปทำให้สามารถอ่านข้อมูลจากดิสก์หลายแผ่นได้พร้อมกัน อย่างไรก็ตาม ในทำนองเดียวกัน ประสิทธิภาพการเขียนไม่ได้ดีเท่ากับข้อมูลพาริตีสำหรับดิสก์หลายแผ่นด้วยเช่นกัน RAID 5 สามารถตั้งค่าได้ผ่านการใช้งานซอฟต์แวร์ แต่ควรใช้ตัวควบคุม RAID ฮาร์ดแวร์สำหรับอาร์เรย์ RAID 5 เช่น ประสิทธิภาพการทำงานลดลงด้วยการใช้งานซอฟต์แวร์ สุดท้าย ความซ้ำซ้อนของ RAID นั้นไม่เหมือนกับการสำรองข้อมูล จุดประสงค์ของ RAID คือเพียงเพื่อป้องกันความล้มเหลวของดิสก์ มีเหตุผลมากมายที่จะมีการสำรองข้อมูลนอกสถานที่แยกจากกัน ตั้งแต่มัลแวร์ไปจนถึงข้อผิดพลาดของมนุษย์และอุบัติเหตุ