logo
แบนเนอร์ แบนเนอร์

รายละเอียดบล็อก

Created with Pixso. บ้าน Created with Pixso. บล็อก Created with Pixso.

คุณสมบัติ NAS ของ X67: แนวคิด หลักการ และการใช้งานของเทคโนโลยี RAID

คุณสมบัติ NAS ของ X67: แนวคิด หลักการ และการใช้งานของเทคโนโลยี RAID

2025-01-07

RAID (Redundant Array of Independent Disks) เดิมชื่อ Redundant Array of Inexpensive Disks ถูกเสนอครั้งแรกโดยศาสตราจารย์ D. A. Patterson แห่งมหาวิทยาลัยแคลิฟอร์เนีย เบิร์กลีย์ ในบทความเรื่อง "A Case of Redundant Array of Inexpensive Disks" ในปี 1988 ในเวลานั้น ดิสก์ความจุสูงมีราคาแพง ดังนั้นแนวคิดพื้นฐานของ RAID คือการรวมดิสก์ขนาดเล็กที่มีความจุต่ำและราคาค่อนข้างถูกเข้าด้วยกันอย่างเป็นระบบ เพื่อให้ได้ความจุ ประสิทธิภาพ และความน่าเชื่อถือเทียบเท่ากับดิสก์ขนาดใหญ่ราคาแพงในต้นทุนที่ต่ำกว่า เมื่อต้นทุนและราคาของดิสก์ลดลงอย่างต่อเนื่อง คำว่า "inexpensive" (ราคาถูก) ก็ไม่มีความหมายอีกต่อไป และคณะกรรมการที่ปรึกษา RAID (RAID Advisory Board - RAB) จึงตัดสินใจเปลี่ยนคำว่า "inexpensive" เป็น "independent" (อิสระ)

 

แนวคิดการออกแบบ RAID นี้ได้รับการยอมรับอย่างรวดเร็วจากอุตสาหกรรม เทคโนโลยี RAID ในฐานะเทคโนโลยีการจัดเก็บข้อมูลที่มีประสิทธิภาพสูงและมีความน่าเชื่อถือสูง ได้รับการนำไปใช้อย่างแพร่หลาย RAID ส่วนใหญ่ใช้เทคนิคการแบ่งข้อมูลเป็นส่วนๆ (data striping) การทำสำเนาข้อมูล (mirroring) และการคำนวณข้อมูลพาริตี้ (data parity) เพื่อให้ได้ประสิทธิภาพสูง ความน่าเชื่อถือ ความทนทานต่อความผิดพลาด และความสามารถในการขยายระบบ ตามกลยุทธ์และสถาปัตยกรรมของการใช้หรือรวมเทคโนโลยีทั้งสามนี้ RAID สามารถแบ่งออกเป็นระดับต่างๆ เพื่อตอบสนองความต้องการของแอปพลิเคชันข้อมูลที่แตกต่างกัน ระดับ RAID ดั้งเดิม RAID1-RAID5 ถูกกำหนดไว้ในบทความโดย D. A. Patterson และคณะ และ RAID0 และ RAID6 ได้รับการขยายเพิ่มเติมตั้งแต่ปี 1988 ในช่วงไม่กี่ปีที่ผ่านมา ผู้จำหน่ายอุปกรณ์จัดเก็บข้อมูลได้นำเสนอระดับ RAID อย่างต่อเนื่อง เช่น RAID7, RAID10/01, RAID50, RAID53 และ RAID100 แต่ยังไม่มีมาตรฐานที่เป็นหนึ่งเดียว ปัจจุบันมาตรฐานที่ได้รับการยอมรับในอุตสาหกรรมคือ RAID0-RAID5 และสี่ระดับยกเว้น RAID2 ได้ถูกกำหนดให้เป็นมาตรฐานอุตสาหกรรม ระดับ RAID ที่ใช้กันมากที่สุดในภาคการใช้งานจริงคือ RAID0, RAID1, RAID3, RAID5, RAID6 และ RAID10

 

จากมุมมองของการนำไปใช้งาน RAID ส่วนใหญ่แบ่งออกเป็นสามประเภท: ซอฟต์แวร์ RAID, ฮาร์ดแวร์ RAID และไฮบริด RAID สำหรับซอฟต์แวร์ RAID ฟังก์ชันทั้งหมดจะดำเนินการโดยระบบปฏิบัติการและ CPU และไม่มีชิปควบคุม/ประมวลผล RAID และชิปประมวลผล I/O ที่แยกออกมา ดังนั้นประสิทธิภาพจึงต่ำที่สุด ฮาร์ดแวร์ RAID จะมีชิปควบคุม/ประมวลผล RAID และชิปประมวลผล I/O พิเศษ รวมถึงบัฟเฟอร์อาร์เรย์ และไม่ใช้ทรัพยากร CPU แต่มีต้นทุนสูงมาก ไฮบริด RAID จะมีชิปควบคุม/ประมวลผล RAID แต่ขาดชิปประมวลผล I/O และต้องใช้ CPU และโปรแกรมไดรเวอร์ในการทำงาน ดังนั้นประสิทธิภาพและต้นทุนจะอยู่ระหว่างซอฟต์แวร์ RAID และฮาร์ดแวร์ RAID

 

แต่ละระดับของ RAID แสดงถึงวิธีการและเทคโนโลยีการนำไปใช้งาน และไม่มีการแบ่งระดับสูงหรือต่ำ ในการใช้งานจริง ควรเลือกระดับ RAID ที่เหมาะสมและวิธีการนำไปใช้งานที่เฉพาะเจาะจงตามลักษณะของแอปพลิเคชันข้อมูลของผู้ใช้ และควรพิจารณาความพร้อมใช้งาน ประสิทธิภาพ และต้นทุนอย่างครอบคลุม

 

หลักการพื้นฐาน

 

RAID หรือ Redundant Array of Independent Disks มักเรียกโดยย่อว่า Disk Array โดยสรุป RAID คือระบบย่อยจัดเก็บข้อมูลที่ประกอบด้วยไดรฟ์ดิสก์อิสระประสิทธิภาพสูงหลายตัว ซึ่งให้ประสิทธิภาพการจัดเก็บข้อมูลและความน่าเชื่อถือของข้อมูลที่สูงกว่าดิสก์เดี่ยว RAID เป็นเทคโนโลยีการจัดการดิสก์หลายตัวที่ให้การจัดเก็บข้อมูลที่คุ้มค่า มีความน่าเชื่อถือของข้อมูลสูง และมีประสิทธิภาพสูงสำหรับสภาพแวดล้อมของโฮสต์ คำจำกัดความของ RAID โดย SNIA คือ: อาร์เรย์ดิสก์ที่ส่วนหนึ่งของพื้นที่จัดเก็บข้อมูลทางกายภาพถูกใช้เพื่อบันทึกข้อมูลซ้ำซ้อนของข้อมูลผู้ใช้ที่จัดเก็บไว้ในพื้นที่ที่เหลือ เมื่อดิสก์หรือเส้นทางการเข้าถึงล้มเหลว ข้อมูลซ้ำซ้อนสามารถใช้เพื่อสร้างข้อมูลผู้ใช้ขึ้นใหม่ได้ แม้ว่าการแบ่งข้อมูลเป็นส่วนๆ (disk striping) จะไม่สอดคล้องกับคำจำกัดความของ RAID แต่ก็มักจะถูกเรียกว่า RAID ด้วย (เช่น RAID0)

 

เจตนาเดิมของ RAID คือการให้ฟังก์ชันการจัดเก็บข้อมูลระดับสูงและการรักษาความปลอดภัยข้อมูลซ้ำซ้อนสำหรับเซิร์ฟเวอร์ขนาดใหญ่ ในระบบทั้งหมด RAID ถือเป็นพื้นที่จัดเก็บข้อมูลที่ประกอบด้วยดิสก์ตั้งแต่สองตัวขึ้นไป และประสิทธิภาพ I/O ของระบบจัดเก็บข้อมูลจะได้รับการปรับปรุงโดยการอ่านและเขียนข้อมูลบนดิสก์หลายตัวพร้อมกัน ระดับ RAID ส่วนใหญ่มีมาตรการตรวจสอบและแก้ไขข้อมูลที่สมบูรณ์ และแม้แต่วิธีการทำสำเนาข้อมูล (mirroring) ซึ่งช่วยเพิ่มความน่าเชื่อถือของระบบได้อย่างมาก และนี่คือที่มาของคำว่า "Redundant" (ซ้ำซ้อน)

 

ในที่นี้ เราจำเป็นต้องกล่าวถึง JBOD (Just a Bunch of Disks) ในตอนแรก JBOD ใช้เพื่อแสดงถึงกลุ่มดิสก์ที่ไม่มีซอฟต์แวร์ควบคุมเพื่อการควบคุมที่ประสานงานกัน ซึ่งเป็นปัจจัยหลักที่ทำให้ RAID แตกต่างจาก JBOD ปัจจุบัน JBOD มักหมายถึงตู้ดิสก์ โดยไม่คำนึงว่ามีฟังก์ชัน RAID หรือไม่

 

วัตถุประสงค์หลักสองประการของ RAID คือการปรับปรุงความน่าเชื่อถือของข้อมูลและประสิทธิภาพ I/O ในอาร์เรย์ดิสก์ ข้อมูลจะกระจายไปทั่วดิสก์หลายตัว แต่สำหรับระบบคอมพิวเตอร์ จะปรากฏเหมือนดิสก์เดียว ความซ้ำซ้อนจะบรรลุผลโดยการเขียนข้อมูลเดียวกันไปยังดิสก์หลายตัว (โดยทั่วไปคือการทำสำเนาข้อมูล) หรือการเขียนข้อมูลพาริตี้ที่คำนวณได้ลงในอาร์เรย์ เพื่อให้ไม่เกิดการสูญเสียข้อมูลเมื่อดิสก์ตัวใดตัวหนึ่งล้มเหลว RAID บางระดับอนุญาตให้ดิสก์ล้มเหลวได้มากกว่าหนึ่งตัวพร้อมกัน เช่น RAID6 ซึ่งดิสก์สองตัวสามารถเสียหายได้พร้อมกัน ภายใต้กลไกความซ้ำซ้อนดังกล่าว ดิสก์ที่ล้มเหลวสามารถเปลี่ยนด้วยดิสก์ใหม่ และ RAID จะสร้างข้อมูลที่สูญหายขึ้นมาใหม่โดยอัตโนมัติตามข้อมูลและข้อมูลพาริตี้ในดิสก์ที่เหลือ เพื่อให้มั่นใจในความสอดคล้องและความสมบูรณ์ของข้อมูล ข้อมูลจะถูกกระจายและจัดเก็บไว้ในดิสก์ที่แตกต่างกันหลายตัวใน RAID และการอ่านและเขียนข้อมูลพร้อมกันจะดีกว่าดิสก์เดี่ยวมาก ดังนั้นจึงสามารถได้รับแบนด์วิดท์ I/O รวมที่สูงขึ้น แน่นอนว่าอาร์เรย์ดิสก์จะลดพื้นที่จัดเก็บข้อมูลที่ใช้ได้ทั้งหมดของดิสก์ทั้งหมด โดยเสียสละพื้นที่เพื่อแลกกับความน่าเชื่อถือและประสิทธิภาพที่สูงขึ้น ตัวอย่างเช่น อัตราการใช้พื้นที่จัดเก็บข้อมูลของ RAID1 เพียง 50% และ RAID5 จะสูญเสียความจุของดิสก์หนึ่งตัว และอัตราการใช้พื้นที่คือ (n-1)/n

 

อาร์เรย์ดิสก์สามารถรับประกันการทำงานของระบบอย่างต่อเนื่องโดยไม่หยุดชะงักเมื่อดิสก์บางตัว (ตัวเดียวหรือหลายตัว ขึ้นอยู่กับการนำไปใช้งาน) เสียหาย ในระหว่างกระบวนการสร้างข้อมูลของดิสก์ที่ล้มเหลวไปยังดิสก์ใหม่ ระบบสามารถทำงานต่อไปได้ตามปกติ แต่ประสิทธิภาพจะลดลงในระดับหนึ่ง ดิสก์อาร์เรย์บางตัวต้องปิดระบบเมื่อเพิ่มหรือลบดิสก์ ในขณะที่บางตัวรองรับการสลับขณะทำงาน (hot swapping) ซึ่งอนุญาตให้เปลี่ยนไดรฟ์ดิสก์ได้โดยไม่ต้องปิดระบบ ดิสก์อาร์เรย์ระดับสูงนี้ส่วนใหญ่ใช้ในระบบแอปพลิเคชันที่มีข้อกำหนดสูงด้านความน่าเชื่อถือ และระบบไม่สามารถปิดได้หรือเวลาปิดระบบควรสั้นที่สุด โดยทั่วไป RAID ไม่สามารถทดแทนการสำรองข้อมูลได้ มันไม่มีประโยชน์สำหรับการสูญเสียข้อมูลที่เกิดจากความผิดพลาดที่ไม่ใช่ดิสก์ เช่น ไวรัส การทำลายโดยมนุษย์ การลบโดยไม่ตั้งใจ ฯลฯ ในกรณีนี้ การสูญเสียข้อมูลจะสัมพันธ์กับระบบปฏิบัติการ ระบบไฟล์ ตัวจัดการปริมาณ หรือระบบแอปพลิเคชัน สำหรับระบบ RAID เอง ข้อมูลจะสมบูรณ์และไม่มีการสูญเสีย ดังนั้น การสำรองข้อมูล การกู้คืนจากภัยพิบัติ และมาตรการป้องกันข้อมูลอื่นๆ จึงมีความจำเป็นอย่างยิ่ง ซึ่งเสริมซึ่งกันและกันกับ RAID และปกป้องความปลอดภัยของข้อมูลในระดับต่างๆ เพื่อป้องกันการสูญเสียข้อมูล

 

มีแนวคิดและเทคโนโลยีหลักสามประการใน RAID: การทำสำเนาข้อมูล (mirroring), การแบ่งข้อมูลเป็นส่วนๆ (data striping) และการคำนวณข้อมูลพาริตี้ (data parity) การทำสำเนาข้อมูลจะคัดลอกข้อมูลไปยังดิสก์หลายตัว ในด้านหนึ่ง สามารถเพิ่มความน่าเชื่อถือ และในอีกด้านหนึ่ง สามารถอ่านข้อมูลจากสำเนาตั้งแต่สองชุดขึ้นไปพร้อมกันเพื่อเพิ่มประสิทธิภาพการอ่าน เห็นได้ชัดว่าประสิทธิภาพการเขียนของการทำสำเนาข้อมูลจะต่ำกว่าเล็กน้อย และใช้เวลามากขึ้นเพื่อให้แน่ใจว่าข้อมูลถูกเขียนไปยังดิสก์หลายตัวอย่างถูกต้อง การแบ่งข้อมูลเป็นส่วนๆ จะจัดเก็บส่วนข้อมูล (data slices) บนดิสก์ที่แตกต่างกันหลายตัว และส่วนข้อมูลหลายส่วนจะรวมกันเป็นสำเนาข้อมูลที่สมบูรณ์ ซึ่งแตกต่างจากสำเนาหลายชุดของการทำสำเนาข้อมูล และมักใช้เพื่อพิจารณาประสิทธิภาพ การแบ่งข้อมูลเป็นส่วนๆ มีความละเอียดของการทำงานพร้อมกันสูงกว่า เมื่อเข้าถึงข้อมูล มีความเป็นไปได้ที่จะอ่านและเขียนข้อมูลบนดิสก์ที่แตกต่างกันพร้อมกัน ดังนั้นจึงได้รับประโยชน์จากการปรับปรุงประสิทธิภาพ I/O อย่างมีนัยสำคัญ การคำนวณข้อมูลพาริตี้จะใช้ข้อมูลซ้ำซ้อนสำหรับการตรวจจับและซ่อมแซมข้อผิดพลาดของข้อมูล ข้อมูลซ้ำซ้อนมักจะคำนวณโดยอัลกอริทึม เช่น Hamming code และการดำเนินการ XOR การใช้ฟังก์ชันพาริตี้สามารถเพิ่มความน่าเชื่อถือ ความทนทาน และความทนทานต่อความผิดพลาดของอาร์เรย์ดิสก์ได้อย่างมาก อย่างไรก็ตาม การคำนวณข้อมูลพาริตี้จำเป็นต้องอ่านข้อมูลจากหลายตำแหน่งและทำการคำนวณและเปรียบเทียบ ซึ่งจะส่งผลต่อประสิทธิภาพของระบบ RAID แต่ละระดับจะใช้เทคโนโลยีข้างต้นหนึ่งอย่างหรือมากกว่านั้น เพื่อให้ได้ความน่าเชื่อถือ ความพร้อมใช้งาน และประสิทธิภาพ I/O ที่แตกต่างกัน สำหรับประเภทของ RAID (แม้แต่ระดับหรือประเภทใหม่) ที่จะออกแบบ หรือโหมดของ RAID ที่จะนำมาใช้ จำเป็นต้องทำการเลือกที่เหมาะสมภายใต้เงื่อนไขของการทำความเข้าใจข้อกำหนดของระบบอย่างลึกซึ้ง และประเมินความน่าเชื่อถือ ประสิทธิภาพ และต้นทุนอย่างครอบคลุมเพื่อทำการเลือกที่ประนีประนอม

 

ข้อดีของ RAID

 

  • ความจุขนาดใหญ่: นี่คือข้อได้เปรียบที่ชัดเจนของ RAID มันขยายความจุของดิสก์ และระบบ RAID ที่ประกอบด้วยดิสก์หลายตัวมีพื้นที่จัดเก็บข้อมูลมหาศาล ปัจจุบันความจุของดิสก์เดี่ยวสามารถสูงถึงมากกว่า 1TB ดังนั้นความจุในการจัดเก็บข้อมูลของ RAID สามารถสูงถึงระดับ PB และสามารถตอบสนองความต้องการในการจัดเก็บข้อมูลส่วนใหญ่ได้ โดยทั่วไป ความจุที่ใช้ได้ของ RAID จะน้อยกว่าความจุรวมของดิสก์สมาชิกทั้งหมด อัลกอริทึม RAID แต่ละระดับต้องการค่าใช้จ่ายซ้ำซ้อนบางส่วน และค่าใช้จ่ายความจุที่เฉพาะเจาะจงจะเกี่ยวข้องกับอัลกอริทึมที่นำมาใช้ หากทราบอัลกอริทึม RAID และความจุแล้ว สามารถคำนวณความจุที่ใช้ได้ของ RAID ได้ โดยทั่วไป อัตราการใช้ความจุของ RAID จะอยู่ระหว่าง 50% ถึง 90%

  • ประสิทธิภาพสูง: ประสิทธิภาพสูงของ RAID ได้รับประโยชน์จากเทคโนโลยีการแบ่งข้อมูลเป็นส่วนๆ ประสิทธิภาพ I/O ของดิสก์เดี่ยวถูกจำกัดโดยเทคโนโลยีคอมพิวเตอร์ เช่น อินเทอร์เฟซและแบนด์วิดท์ และมักเป็นคอขวดของประสิทธิภาพระบบ ด้วยการแบ่งข้อมูลเป็นส่วนๆ RAID จะกระจาย I/O ข้อมูลไปยังดิสก์สมาชิกแต่ละตัว ดังนั้นจึงได้รับประสิทธิภาพ I/O รวมที่สูงกว่าดิสก์เดี่ยวหลายเท่า

  • ความน่าเชื่อถือ: ความพร้อมใช้งานและความน่าเชื่อถือเป็นคุณสมบัติที่สำคัญอีกประการหนึ่งของ RAID ตามทฤษฎีแล้ว ความน่าเชื่อถือของระบบ RAID ที่ประกอบด้วยดิสก์หลายตัวควรจะแย่กว่าดิสก์เดี่ยว มีข้อสมมติฐานแฝงอยู่ที่นี่: ดิสก์ตัวเดียวล้มเหลวจะทำให้ RAID ทั้งหมดไม่พร้อมใช้งาน RAID ใช้เทคโนโลยีความซ้ำซ้อนของข้อมูล เช่น การทำสำเนาข้อมูลและการคำนวณข้อมูลพาริตี้ เพื่อทำลายข้อสมมติฐานนี้ การทำสำเนาข้อมูลเป็นเทคโนโลยีความซ้ำซ้อนที่เก่าแก่ที่สุด โดยคัดลอกข้อมูลบนกลุ่มไดรฟ์ดิสก์หนึ่งไปยังอีกกลุ่มหนึ่งอย่างสมบูรณ์ เพื่อให้แน่ใจว่ามีสำเนาข้อมูลพร้อมใช้งานเสมอ เมื่อเทียบกับค่าใช้จ่ายซ้ำซ้อน 50% ของการทำสำเนาข้อมูล การคำนวณข้อมูลพาริตี้จะน้อยกว่ามาก และใช้ข้อมูลพาริตี้ซ้ำซ้อนเพื่อตรวจสอบและแก้ไขข้อมูล เทคโนโลยีความซ้ำซ้อนของ RAID ช่วยเพิ่มความพร้อมใช้งานและความน่าเชื่อถือของข้อมูลได้อย่างมาก และรับประกันว่าเมื่อดิสก์หลายตัวล้มเหลว จะไม่เกิดการสูญเสียข้อมูลและจะไม่ส่งผลกระทบต่อการทำงานอย่างต่อเนื่องของระบบ

  • การจัดการ: อันที่จริง RAID เป็นเทคโนโลยีการจำลองเสมือนที่จำลองไดรฟ์ดิสก์ทางกายภาพหลายตัวให้เป็นไดรฟ์เชิงตรรกะที่มีความจุขนาดใหญ่ สำหรับระบบโฮสต์ภายนอก RAID คือไดรฟ์ดิสก์ขนาดใหญ่ที่รวดเร็วและน่าเชื่อถือเพียงตัวเดียว ด้วยวิธีนี้ ผู้ใช้สามารถจัดระเบียบและจัดเก็บข้อมูลระบบแอปพลิเคชันบนไดรฟ์เสมือนนี้ได้ จากมุมมองของแอปพลิเคชันผู้ใช้ สามารถทำให้ระบบจัดเก็บข้อมูลเรียบง่ายและใช้งานและจัดการได้ง่าย เนื่องจาก RAID ได้ทำงานการจัดการจัดเก็บข้อมูลจำนวนมากภายใน ผู้ดูแลระบบเพียงแค่ต้องจัดการไดรฟ์เสมือนเดียว ซึ่งสามารถประหยัดงานจัดการได้มาก RAID สามารถเพิ่มหรือลบไดรฟ์ดิสก์แบบไดนามิก และทำการตรวจสอบข้อมูลและสร้างข้อมูลขึ้นใหม่โดยอัตโนมัติ ซึ่งสามารถลดความซับซ้อนของงานจัดการได้อย่างมาก

แบนเนอร์
รายละเอียดบล็อก
Created with Pixso. บ้าน Created with Pixso. บล็อก Created with Pixso.

คุณสมบัติ NAS ของ X67: แนวคิด หลักการ และการใช้งานของเทคโนโลยี RAID

คุณสมบัติ NAS ของ X67: แนวคิด หลักการ และการใช้งานของเทคโนโลยี RAID

RAID (Redundant Array of Independent Disks) เดิมชื่อ Redundant Array of Inexpensive Disks ถูกเสนอครั้งแรกโดยศาสตราจารย์ D. A. Patterson แห่งมหาวิทยาลัยแคลิฟอร์เนีย เบิร์กลีย์ ในบทความเรื่อง "A Case of Redundant Array of Inexpensive Disks" ในปี 1988 ในเวลานั้น ดิสก์ความจุสูงมีราคาแพง ดังนั้นแนวคิดพื้นฐานของ RAID คือการรวมดิสก์ขนาดเล็กที่มีความจุต่ำและราคาค่อนข้างถูกเข้าด้วยกันอย่างเป็นระบบ เพื่อให้ได้ความจุ ประสิทธิภาพ และความน่าเชื่อถือเทียบเท่ากับดิสก์ขนาดใหญ่ราคาแพงในต้นทุนที่ต่ำกว่า เมื่อต้นทุนและราคาของดิสก์ลดลงอย่างต่อเนื่อง คำว่า "inexpensive" (ราคาถูก) ก็ไม่มีความหมายอีกต่อไป และคณะกรรมการที่ปรึกษา RAID (RAID Advisory Board - RAB) จึงตัดสินใจเปลี่ยนคำว่า "inexpensive" เป็น "independent" (อิสระ)

 

แนวคิดการออกแบบ RAID นี้ได้รับการยอมรับอย่างรวดเร็วจากอุตสาหกรรม เทคโนโลยี RAID ในฐานะเทคโนโลยีการจัดเก็บข้อมูลที่มีประสิทธิภาพสูงและมีความน่าเชื่อถือสูง ได้รับการนำไปใช้อย่างแพร่หลาย RAID ส่วนใหญ่ใช้เทคนิคการแบ่งข้อมูลเป็นส่วนๆ (data striping) การทำสำเนาข้อมูล (mirroring) และการคำนวณข้อมูลพาริตี้ (data parity) เพื่อให้ได้ประสิทธิภาพสูง ความน่าเชื่อถือ ความทนทานต่อความผิดพลาด และความสามารถในการขยายระบบ ตามกลยุทธ์และสถาปัตยกรรมของการใช้หรือรวมเทคโนโลยีทั้งสามนี้ RAID สามารถแบ่งออกเป็นระดับต่างๆ เพื่อตอบสนองความต้องการของแอปพลิเคชันข้อมูลที่แตกต่างกัน ระดับ RAID ดั้งเดิม RAID1-RAID5 ถูกกำหนดไว้ในบทความโดย D. A. Patterson และคณะ และ RAID0 และ RAID6 ได้รับการขยายเพิ่มเติมตั้งแต่ปี 1988 ในช่วงไม่กี่ปีที่ผ่านมา ผู้จำหน่ายอุปกรณ์จัดเก็บข้อมูลได้นำเสนอระดับ RAID อย่างต่อเนื่อง เช่น RAID7, RAID10/01, RAID50, RAID53 และ RAID100 แต่ยังไม่มีมาตรฐานที่เป็นหนึ่งเดียว ปัจจุบันมาตรฐานที่ได้รับการยอมรับในอุตสาหกรรมคือ RAID0-RAID5 และสี่ระดับยกเว้น RAID2 ได้ถูกกำหนดให้เป็นมาตรฐานอุตสาหกรรม ระดับ RAID ที่ใช้กันมากที่สุดในภาคการใช้งานจริงคือ RAID0, RAID1, RAID3, RAID5, RAID6 และ RAID10

 

จากมุมมองของการนำไปใช้งาน RAID ส่วนใหญ่แบ่งออกเป็นสามประเภท: ซอฟต์แวร์ RAID, ฮาร์ดแวร์ RAID และไฮบริด RAID สำหรับซอฟต์แวร์ RAID ฟังก์ชันทั้งหมดจะดำเนินการโดยระบบปฏิบัติการและ CPU และไม่มีชิปควบคุม/ประมวลผล RAID และชิปประมวลผล I/O ที่แยกออกมา ดังนั้นประสิทธิภาพจึงต่ำที่สุด ฮาร์ดแวร์ RAID จะมีชิปควบคุม/ประมวลผล RAID และชิปประมวลผล I/O พิเศษ รวมถึงบัฟเฟอร์อาร์เรย์ และไม่ใช้ทรัพยากร CPU แต่มีต้นทุนสูงมาก ไฮบริด RAID จะมีชิปควบคุม/ประมวลผล RAID แต่ขาดชิปประมวลผล I/O และต้องใช้ CPU และโปรแกรมไดรเวอร์ในการทำงาน ดังนั้นประสิทธิภาพและต้นทุนจะอยู่ระหว่างซอฟต์แวร์ RAID และฮาร์ดแวร์ RAID

 

แต่ละระดับของ RAID แสดงถึงวิธีการและเทคโนโลยีการนำไปใช้งาน และไม่มีการแบ่งระดับสูงหรือต่ำ ในการใช้งานจริง ควรเลือกระดับ RAID ที่เหมาะสมและวิธีการนำไปใช้งานที่เฉพาะเจาะจงตามลักษณะของแอปพลิเคชันข้อมูลของผู้ใช้ และควรพิจารณาความพร้อมใช้งาน ประสิทธิภาพ และต้นทุนอย่างครอบคลุม

 

หลักการพื้นฐาน

 

RAID หรือ Redundant Array of Independent Disks มักเรียกโดยย่อว่า Disk Array โดยสรุป RAID คือระบบย่อยจัดเก็บข้อมูลที่ประกอบด้วยไดรฟ์ดิสก์อิสระประสิทธิภาพสูงหลายตัว ซึ่งให้ประสิทธิภาพการจัดเก็บข้อมูลและความน่าเชื่อถือของข้อมูลที่สูงกว่าดิสก์เดี่ยว RAID เป็นเทคโนโลยีการจัดการดิสก์หลายตัวที่ให้การจัดเก็บข้อมูลที่คุ้มค่า มีความน่าเชื่อถือของข้อมูลสูง และมีประสิทธิภาพสูงสำหรับสภาพแวดล้อมของโฮสต์ คำจำกัดความของ RAID โดย SNIA คือ: อาร์เรย์ดิสก์ที่ส่วนหนึ่งของพื้นที่จัดเก็บข้อมูลทางกายภาพถูกใช้เพื่อบันทึกข้อมูลซ้ำซ้อนของข้อมูลผู้ใช้ที่จัดเก็บไว้ในพื้นที่ที่เหลือ เมื่อดิสก์หรือเส้นทางการเข้าถึงล้มเหลว ข้อมูลซ้ำซ้อนสามารถใช้เพื่อสร้างข้อมูลผู้ใช้ขึ้นใหม่ได้ แม้ว่าการแบ่งข้อมูลเป็นส่วนๆ (disk striping) จะไม่สอดคล้องกับคำจำกัดความของ RAID แต่ก็มักจะถูกเรียกว่า RAID ด้วย (เช่น RAID0)

 

เจตนาเดิมของ RAID คือการให้ฟังก์ชันการจัดเก็บข้อมูลระดับสูงและการรักษาความปลอดภัยข้อมูลซ้ำซ้อนสำหรับเซิร์ฟเวอร์ขนาดใหญ่ ในระบบทั้งหมด RAID ถือเป็นพื้นที่จัดเก็บข้อมูลที่ประกอบด้วยดิสก์ตั้งแต่สองตัวขึ้นไป และประสิทธิภาพ I/O ของระบบจัดเก็บข้อมูลจะได้รับการปรับปรุงโดยการอ่านและเขียนข้อมูลบนดิสก์หลายตัวพร้อมกัน ระดับ RAID ส่วนใหญ่มีมาตรการตรวจสอบและแก้ไขข้อมูลที่สมบูรณ์ และแม้แต่วิธีการทำสำเนาข้อมูล (mirroring) ซึ่งช่วยเพิ่มความน่าเชื่อถือของระบบได้อย่างมาก และนี่คือที่มาของคำว่า "Redundant" (ซ้ำซ้อน)

 

ในที่นี้ เราจำเป็นต้องกล่าวถึง JBOD (Just a Bunch of Disks) ในตอนแรก JBOD ใช้เพื่อแสดงถึงกลุ่มดิสก์ที่ไม่มีซอฟต์แวร์ควบคุมเพื่อการควบคุมที่ประสานงานกัน ซึ่งเป็นปัจจัยหลักที่ทำให้ RAID แตกต่างจาก JBOD ปัจจุบัน JBOD มักหมายถึงตู้ดิสก์ โดยไม่คำนึงว่ามีฟังก์ชัน RAID หรือไม่

 

วัตถุประสงค์หลักสองประการของ RAID คือการปรับปรุงความน่าเชื่อถือของข้อมูลและประสิทธิภาพ I/O ในอาร์เรย์ดิสก์ ข้อมูลจะกระจายไปทั่วดิสก์หลายตัว แต่สำหรับระบบคอมพิวเตอร์ จะปรากฏเหมือนดิสก์เดียว ความซ้ำซ้อนจะบรรลุผลโดยการเขียนข้อมูลเดียวกันไปยังดิสก์หลายตัว (โดยทั่วไปคือการทำสำเนาข้อมูล) หรือการเขียนข้อมูลพาริตี้ที่คำนวณได้ลงในอาร์เรย์ เพื่อให้ไม่เกิดการสูญเสียข้อมูลเมื่อดิสก์ตัวใดตัวหนึ่งล้มเหลว RAID บางระดับอนุญาตให้ดิสก์ล้มเหลวได้มากกว่าหนึ่งตัวพร้อมกัน เช่น RAID6 ซึ่งดิสก์สองตัวสามารถเสียหายได้พร้อมกัน ภายใต้กลไกความซ้ำซ้อนดังกล่าว ดิสก์ที่ล้มเหลวสามารถเปลี่ยนด้วยดิสก์ใหม่ และ RAID จะสร้างข้อมูลที่สูญหายขึ้นมาใหม่โดยอัตโนมัติตามข้อมูลและข้อมูลพาริตี้ในดิสก์ที่เหลือ เพื่อให้มั่นใจในความสอดคล้องและความสมบูรณ์ของข้อมูล ข้อมูลจะถูกกระจายและจัดเก็บไว้ในดิสก์ที่แตกต่างกันหลายตัวใน RAID และการอ่านและเขียนข้อมูลพร้อมกันจะดีกว่าดิสก์เดี่ยวมาก ดังนั้นจึงสามารถได้รับแบนด์วิดท์ I/O รวมที่สูงขึ้น แน่นอนว่าอาร์เรย์ดิสก์จะลดพื้นที่จัดเก็บข้อมูลที่ใช้ได้ทั้งหมดของดิสก์ทั้งหมด โดยเสียสละพื้นที่เพื่อแลกกับความน่าเชื่อถือและประสิทธิภาพที่สูงขึ้น ตัวอย่างเช่น อัตราการใช้พื้นที่จัดเก็บข้อมูลของ RAID1 เพียง 50% และ RAID5 จะสูญเสียความจุของดิสก์หนึ่งตัว และอัตราการใช้พื้นที่คือ (n-1)/n

 

อาร์เรย์ดิสก์สามารถรับประกันการทำงานของระบบอย่างต่อเนื่องโดยไม่หยุดชะงักเมื่อดิสก์บางตัว (ตัวเดียวหรือหลายตัว ขึ้นอยู่กับการนำไปใช้งาน) เสียหาย ในระหว่างกระบวนการสร้างข้อมูลของดิสก์ที่ล้มเหลวไปยังดิสก์ใหม่ ระบบสามารถทำงานต่อไปได้ตามปกติ แต่ประสิทธิภาพจะลดลงในระดับหนึ่ง ดิสก์อาร์เรย์บางตัวต้องปิดระบบเมื่อเพิ่มหรือลบดิสก์ ในขณะที่บางตัวรองรับการสลับขณะทำงาน (hot swapping) ซึ่งอนุญาตให้เปลี่ยนไดรฟ์ดิสก์ได้โดยไม่ต้องปิดระบบ ดิสก์อาร์เรย์ระดับสูงนี้ส่วนใหญ่ใช้ในระบบแอปพลิเคชันที่มีข้อกำหนดสูงด้านความน่าเชื่อถือ และระบบไม่สามารถปิดได้หรือเวลาปิดระบบควรสั้นที่สุด โดยทั่วไป RAID ไม่สามารถทดแทนการสำรองข้อมูลได้ มันไม่มีประโยชน์สำหรับการสูญเสียข้อมูลที่เกิดจากความผิดพลาดที่ไม่ใช่ดิสก์ เช่น ไวรัส การทำลายโดยมนุษย์ การลบโดยไม่ตั้งใจ ฯลฯ ในกรณีนี้ การสูญเสียข้อมูลจะสัมพันธ์กับระบบปฏิบัติการ ระบบไฟล์ ตัวจัดการปริมาณ หรือระบบแอปพลิเคชัน สำหรับระบบ RAID เอง ข้อมูลจะสมบูรณ์และไม่มีการสูญเสีย ดังนั้น การสำรองข้อมูล การกู้คืนจากภัยพิบัติ และมาตรการป้องกันข้อมูลอื่นๆ จึงมีความจำเป็นอย่างยิ่ง ซึ่งเสริมซึ่งกันและกันกับ RAID และปกป้องความปลอดภัยของข้อมูลในระดับต่างๆ เพื่อป้องกันการสูญเสียข้อมูล

 

มีแนวคิดและเทคโนโลยีหลักสามประการใน RAID: การทำสำเนาข้อมูล (mirroring), การแบ่งข้อมูลเป็นส่วนๆ (data striping) และการคำนวณข้อมูลพาริตี้ (data parity) การทำสำเนาข้อมูลจะคัดลอกข้อมูลไปยังดิสก์หลายตัว ในด้านหนึ่ง สามารถเพิ่มความน่าเชื่อถือ และในอีกด้านหนึ่ง สามารถอ่านข้อมูลจากสำเนาตั้งแต่สองชุดขึ้นไปพร้อมกันเพื่อเพิ่มประสิทธิภาพการอ่าน เห็นได้ชัดว่าประสิทธิภาพการเขียนของการทำสำเนาข้อมูลจะต่ำกว่าเล็กน้อย และใช้เวลามากขึ้นเพื่อให้แน่ใจว่าข้อมูลถูกเขียนไปยังดิสก์หลายตัวอย่างถูกต้อง การแบ่งข้อมูลเป็นส่วนๆ จะจัดเก็บส่วนข้อมูล (data slices) บนดิสก์ที่แตกต่างกันหลายตัว และส่วนข้อมูลหลายส่วนจะรวมกันเป็นสำเนาข้อมูลที่สมบูรณ์ ซึ่งแตกต่างจากสำเนาหลายชุดของการทำสำเนาข้อมูล และมักใช้เพื่อพิจารณาประสิทธิภาพ การแบ่งข้อมูลเป็นส่วนๆ มีความละเอียดของการทำงานพร้อมกันสูงกว่า เมื่อเข้าถึงข้อมูล มีความเป็นไปได้ที่จะอ่านและเขียนข้อมูลบนดิสก์ที่แตกต่างกันพร้อมกัน ดังนั้นจึงได้รับประโยชน์จากการปรับปรุงประสิทธิภาพ I/O อย่างมีนัยสำคัญ การคำนวณข้อมูลพาริตี้จะใช้ข้อมูลซ้ำซ้อนสำหรับการตรวจจับและซ่อมแซมข้อผิดพลาดของข้อมูล ข้อมูลซ้ำซ้อนมักจะคำนวณโดยอัลกอริทึม เช่น Hamming code และการดำเนินการ XOR การใช้ฟังก์ชันพาริตี้สามารถเพิ่มความน่าเชื่อถือ ความทนทาน และความทนทานต่อความผิดพลาดของอาร์เรย์ดิสก์ได้อย่างมาก อย่างไรก็ตาม การคำนวณข้อมูลพาริตี้จำเป็นต้องอ่านข้อมูลจากหลายตำแหน่งและทำการคำนวณและเปรียบเทียบ ซึ่งจะส่งผลต่อประสิทธิภาพของระบบ RAID แต่ละระดับจะใช้เทคโนโลยีข้างต้นหนึ่งอย่างหรือมากกว่านั้น เพื่อให้ได้ความน่าเชื่อถือ ความพร้อมใช้งาน และประสิทธิภาพ I/O ที่แตกต่างกัน สำหรับประเภทของ RAID (แม้แต่ระดับหรือประเภทใหม่) ที่จะออกแบบ หรือโหมดของ RAID ที่จะนำมาใช้ จำเป็นต้องทำการเลือกที่เหมาะสมภายใต้เงื่อนไขของการทำความเข้าใจข้อกำหนดของระบบอย่างลึกซึ้ง และประเมินความน่าเชื่อถือ ประสิทธิภาพ และต้นทุนอย่างครอบคลุมเพื่อทำการเลือกที่ประนีประนอม

 

ข้อดีของ RAID

 

  • ความจุขนาดใหญ่: นี่คือข้อได้เปรียบที่ชัดเจนของ RAID มันขยายความจุของดิสก์ และระบบ RAID ที่ประกอบด้วยดิสก์หลายตัวมีพื้นที่จัดเก็บข้อมูลมหาศาล ปัจจุบันความจุของดิสก์เดี่ยวสามารถสูงถึงมากกว่า 1TB ดังนั้นความจุในการจัดเก็บข้อมูลของ RAID สามารถสูงถึงระดับ PB และสามารถตอบสนองความต้องการในการจัดเก็บข้อมูลส่วนใหญ่ได้ โดยทั่วไป ความจุที่ใช้ได้ของ RAID จะน้อยกว่าความจุรวมของดิสก์สมาชิกทั้งหมด อัลกอริทึม RAID แต่ละระดับต้องการค่าใช้จ่ายซ้ำซ้อนบางส่วน และค่าใช้จ่ายความจุที่เฉพาะเจาะจงจะเกี่ยวข้องกับอัลกอริทึมที่นำมาใช้ หากทราบอัลกอริทึม RAID และความจุแล้ว สามารถคำนวณความจุที่ใช้ได้ของ RAID ได้ โดยทั่วไป อัตราการใช้ความจุของ RAID จะอยู่ระหว่าง 50% ถึง 90%

  • ประสิทธิภาพสูง: ประสิทธิภาพสูงของ RAID ได้รับประโยชน์จากเทคโนโลยีการแบ่งข้อมูลเป็นส่วนๆ ประสิทธิภาพ I/O ของดิสก์เดี่ยวถูกจำกัดโดยเทคโนโลยีคอมพิวเตอร์ เช่น อินเทอร์เฟซและแบนด์วิดท์ และมักเป็นคอขวดของประสิทธิภาพระบบ ด้วยการแบ่งข้อมูลเป็นส่วนๆ RAID จะกระจาย I/O ข้อมูลไปยังดิสก์สมาชิกแต่ละตัว ดังนั้นจึงได้รับประสิทธิภาพ I/O รวมที่สูงกว่าดิสก์เดี่ยวหลายเท่า

  • ความน่าเชื่อถือ: ความพร้อมใช้งานและความน่าเชื่อถือเป็นคุณสมบัติที่สำคัญอีกประการหนึ่งของ RAID ตามทฤษฎีแล้ว ความน่าเชื่อถือของระบบ RAID ที่ประกอบด้วยดิสก์หลายตัวควรจะแย่กว่าดิสก์เดี่ยว มีข้อสมมติฐานแฝงอยู่ที่นี่: ดิสก์ตัวเดียวล้มเหลวจะทำให้ RAID ทั้งหมดไม่พร้อมใช้งาน RAID ใช้เทคโนโลยีความซ้ำซ้อนของข้อมูล เช่น การทำสำเนาข้อมูลและการคำนวณข้อมูลพาริตี้ เพื่อทำลายข้อสมมติฐานนี้ การทำสำเนาข้อมูลเป็นเทคโนโลยีความซ้ำซ้อนที่เก่าแก่ที่สุด โดยคัดลอกข้อมูลบนกลุ่มไดรฟ์ดิสก์หนึ่งไปยังอีกกลุ่มหนึ่งอย่างสมบูรณ์ เพื่อให้แน่ใจว่ามีสำเนาข้อมูลพร้อมใช้งานเสมอ เมื่อเทียบกับค่าใช้จ่ายซ้ำซ้อน 50% ของการทำสำเนาข้อมูล การคำนวณข้อมูลพาริตี้จะน้อยกว่ามาก และใช้ข้อมูลพาริตี้ซ้ำซ้อนเพื่อตรวจสอบและแก้ไขข้อมูล เทคโนโลยีความซ้ำซ้อนของ RAID ช่วยเพิ่มความพร้อมใช้งานและความน่าเชื่อถือของข้อมูลได้อย่างมาก และรับประกันว่าเมื่อดิสก์หลายตัวล้มเหลว จะไม่เกิดการสูญเสียข้อมูลและจะไม่ส่งผลกระทบต่อการทำงานอย่างต่อเนื่องของระบบ

  • การจัดการ: อันที่จริง RAID เป็นเทคโนโลยีการจำลองเสมือนที่จำลองไดรฟ์ดิสก์ทางกายภาพหลายตัวให้เป็นไดรฟ์เชิงตรรกะที่มีความจุขนาดใหญ่ สำหรับระบบโฮสต์ภายนอก RAID คือไดรฟ์ดิสก์ขนาดใหญ่ที่รวดเร็วและน่าเชื่อถือเพียงตัวเดียว ด้วยวิธีนี้ ผู้ใช้สามารถจัดระเบียบและจัดเก็บข้อมูลระบบแอปพลิเคชันบนไดรฟ์เสมือนนี้ได้ จากมุมมองของแอปพลิเคชันผู้ใช้ สามารถทำให้ระบบจัดเก็บข้อมูลเรียบง่ายและใช้งานและจัดการได้ง่าย เนื่องจาก RAID ได้ทำงานการจัดการจัดเก็บข้อมูลจำนวนมากภายใน ผู้ดูแลระบบเพียงแค่ต้องจัดการไดรฟ์เสมือนเดียว ซึ่งสามารถประหยัดงานจัดการได้มาก RAID สามารถเพิ่มหรือลบไดรฟ์ดิสก์แบบไดนามิก และทำการตรวจสอบข้อมูลและสร้างข้อมูลขึ้นใหม่โดยอัตโนมัติ ซึ่งสามารถลดความซับซ้อนของงานจัดการได้อย่างมาก