2 Non-Standard RAID
Non-Standard RAID คืออะไร จากที่อธิบายไว้ใน Wikipedia เค้าบอกไว้ว่า เป็นการพัฒนาต่อยอดจาก Standard RAID เพื่อให้มีลักษณะพิเศษที่เป็นลิขสิทธิ์เฉพาะของบริษัทนั้น ซึ่งบางอย่างก็มีหลักการทำงานคล้าย Nested RAID ที่เราได้เคยพูดถึงมาแล้ว Non-Standard RAID มีหลากหลายมากครับ ขอออกตัวก่อนครับว่า RAID บางตัวก็ยังไม่เคยใช้ ไม่เคยผ่านตาครับ ต้องขออภัยด้วย เลยหาข้อมูลมาเสนอได้แบบคร่าวๆ นะครับ
RAID1.5
Non-Standard RAID แบบนี้เป็นลิขสิทธิ์ของบริษัท Highpoint หลายครั้งที่มีการเรียกสับสนกับ Nested RAID level RAID1+5 (เพราะเขียนย่อเป็น RAID15) การทำงานของ RAID1.5 เป็นการย่อ RAID5 ให้ทำงานบน disk แค่ 2 ก้อน ไม่ใช่ RAID5 เต็มตัว ซึ่งต้องใช้ disk อย่างน้อย 3 ก้อน และเนื้อที่ก็จะหายไป 1 ก้อน เพื่อเก็บ parity จึงทำให้ดูเหมือน disk mirror กัน (mirror พื้นที่ disk 2 ก้อน หายไป 1 ก้อน) จึงเรียกว่า RAID1.5 แล้วมันทำงานอย่างไร หลักการทำงานคล้ายกับ RAID5 คือมีการกระจาย parity ไปไว้ในdisk ทุกก้อนของ RAID ชุดนั้น เหมือนการเขียนของ RAID5 ส่วนเวลาอ่านจะอ่านจากทั้งสองก้อน ช่วยให้อ่านข้อมูลได้เร็วขึ้น ดูรูปแล้วน่าจะเข้าใจมากขึ้นครับ
รูปนี้เป็นขั้นตอนการเขียนครับ ลูกศรอันใหญ่คือ data ที่ผ่านการ stripe แล้ว ลูกศรเล็กคือ parity ขั้นตอนก็คือจะหั่นข้อมูลแบบ stripe เป็นชิ้นๆ แล้วเอาข้อมูลมาคำนวณ parity เวลาเขียนลง disk จะเขียนทั้ง data และ parity ของข้อมูลทั้งชุดโดย parity กระจายไปใน disk ทั้งสองก้อน
รูปถัดไปเป็นรูปของการอ่านข้อมูลครับ
จะเห็นว่าข้อมูลจะถูกอ่านออกมาจาก disk ทั้งสองก้อน ทำให้อ่านได้เร็วขึ้น และเมื่อมี disk เสีย 1 ก้อน ก็จะมีการเขียนทั้ง data และ parity ลง disk ก้อนที่ไม่เสีย ส่วนการอ่านก็จะอ่านจากก้อนที่ไม่เสียเพียงก้อนเดียว
RAID1E
Non-Standard RAID นี้บริษัท IBM เป็นผู้พัฒนา RAID1E นี้รวมการ Mirror และ Stripe ไว้ด้วยกันโดยหั่น data ออกเป็นชิ้นๆ ทำ Mirror 1 ชุด แล้วเขียนข้อมูลกระจายใน disk ทุกก้อน ซึ่งจะทำให้หลังทำ RAID พื้นที่ที่ใช้ได้จะเหลือแค่ครึ่งเดียว ไม่ว่าจะใช้ disk กี่ก้อน (สูงสุดไม่เกิน 16 ก้อน) แต่เพิ่มความยืดหยุ่นในการทำ RAID คือไม่จำเป็นต้องมี disk เป็นคู่เท่านั้นจึงจะทำ RAID ได้ มี disk จำนวนคี่ ก็สามารถสร้าง RAID ได้ แต่ต้องมี disk 3 ก้อนขึ้นไป ถ้า disk ที่นำมาทำ RAID เป็นจำนวนคู่ รูปแบบของ data ที่ผ่านการ stripe แล้วนำมาสร้าง Mirror จะคล้ายกับ RAID1+0 แต่ถ้าเป็นเลขคี่ก็จะต้องมีการสลับฟันปลากัน
จากรูปเป็นการสร้าง RAID1E จาก disk 3 ก้อน เมื่อมีการเขียน data ก็จะมีการกระจาย data ดังรูป คือ data จะถูกหั่นออกเป็นชิ้นๆ แล้วเขียนกระจายไปใน ทุก disk ที่เป็นสมาชิกของ RAID จากนั้นจะมีการ Duplicate ข้อมูล แล้วเขียนกระจายไปใน disk ที่เป็นสมาชิกของ RAID รวมเป็น 2 ชุด เป็นการ Mirror แถวที่มี * นำหน้าอันนั้นเป็น data ที่ถูก stripe แล้วส่วนแถวที่มี ** นำหน้าเป็นแถวที่ถูก duplicate แล้วจัดเรียงใหม่เพื่อให้ข้อมูลที่ถูก duplicate มีการกระจาย ไปในทุก disk
RAID1E สามารถรองรับ disk เสียได้ เท่ากับครึ่งหนึ่งของจำนวน disk ที่นำมาสร้าง RAID ถ้าจำนวน disk เป็นเลขคี่ ให้ปัดเศษลง เช่น ในรูปมี disk 3 ก้อน RAID ชุดนี้รองรับ disk เสียได้ 3/2 = 1.5 ปัดเศษลง เหลือรองรับ disk เสียได้ 1 ก้อน
RAID-DP
Non-Standard RAID นี้เป็นลิขสิทธิ์ของบริษัท NetApp ตัว DP ใน RAID-DP ย่อมาจาก Double Parity เป็นการพัฒนาต่อยอดจาก RAID4 โดยให้มี parity เพิ่มขึ้น 2 ชุด บน Hardware RAID disk ที่ใช้สามารถเลือกได้ว่าจะใช้ SCSI หรือ SATA และNetApp ยังได้พัฒนา OS ขึ้นมาดูแลจัดการโดยเฉพาะ ชื่อว่า data ONTAP ซึ่งเป็นลิขสิทธิ์เฉพาะของ NetApp NetApp เองได้บอกว่า เมื่อใช้ RAID-DP แล้วจะไม่มีปัญหาเรื่องคอขวดของการเขียน parity เหมือนใน RAID4 RAID-DP ยังคงเก็บ parity ไว้ในก้อน parity เหมือน RAID4 แล้วเพิ่มก้อน DP ไว้เก็บ parity ชุดที่ 2 ขึ้นมา RAID-DP นี้รองรับ disk เสียได้ 2 ก้อนไม่ว่าก้อนนั้นจะเป็น data หรือ parity ก็สามารถกู้กลับคืนมาได้
จากรูป column ทางซ้าย 4 column แรกเป็น data (ที่หัว column เป็นตัว D), column ที่ 5 เป็น parity ชุดแรก (ที่หัว column เป็นตัว P) ส่วน column สุดท้ายเป็น parity ชุดที่ 2 (ที่หัว column เป็นตัว DP) การทำงานของ RAID-DP คือ จะสร้าง parity 2 ชุด โดยชุดแรกคำนวณจาก data ในลักษณะเป็นแถว (row) แล้วเก็บไว้ใน disk ก้อนที่เป็น P จากตัวอย่าง แถวแรก 3 + 1 + 2 + 3 ได้ 9 เอาไปเก็บในก้อน P แล้วคำนวณแบบนี้ทุกแถว (ในการทำงานจริงใช้วิธี exclusive OR (XOR) นะครับ อันนี้เป็นตัวอย่างให้เห็นภาพ) แล้วคำนวณชุดที่ 2 เป็นเส้นทะแยงมุม แล้วเก็บไว้ในก้อนที่เป็น DP สังเกตว่าจะแยกเป็นสีๆ ของแต่ละชุด มีการคำนวณ data และ parity ชุดแรกเก็บเป็น parity ชุดที่ 2 ด้วย แต่จะสังเกตเห็นว่าจะมีข้อมูล 1 ชุดที่ไม่ถูกนำมาคำนวณใน parity ชุดที่ 2 คือชุดสีขาว NetApp บอกว่าใน RAID-DP ทั้งชุดคือทั้ง disk array จะมีข้อมูลที่ไม่ถูกนำไปคำนวณเป็น parity ชุดที่ 2 แค่ก้อนละ 1 block (ในตัวอย่างข้อมูลมีน้อยจึงดูเหมือนมีผลแต่ในการทำงานจริงไม่มีผล)
ในกรณีที่ disk เสีย RAID-DP ยังสามารถกู้ข้อมูลกลับมาได้ แต่ disk เสียไม่เกิน 2 ก้อน โดยการคำนวณจาก parity กลับไปเป็น data ดังรูป
จากรูปจะเห็นว่า 2 column ด้านซ้าย เป็นจุดดำๆ หมายถึง disk เสีย เมื่อเปลี่ยน diskแล้ว ก็ยังไม่มี data ต้องคำนวณกลับ โดยเริ่มจากคำนวนด้วย DP ก่อน จากตัวอย่างจะเห็นว่าเริ่มคำนวณกลับจากแถบสีน้ำเงิน DP ของชุดทะแยงมุมนี้มีค่า 12 คำนวณกลับได้โดยใช้ค่าจาก disk ที่ไม่เสีย จะได้ในรูปคือ 12 - 7 - 2 - 2 = 1 เอาค่าที่ได้ไปใส่ในตำแหน่งที่หายไป แล้วคำนวณอีกครั้งจาก parity ชุดแรก คือ 9 - 3 - 2 - 1 = 3 เอาค่าที่ได้ใส่ในตำแหน่งที่หายไปอีก ก็จะได้ข้อมูลกลับมาครบ
ตามรูป
ถัดไป ก็จะคำนวณตามแนวทะแยงอีกทีครับ สลับกันไปจนได้ข้อมูลครบทั้งสองก้อน ดูรูปประกอบไปเรื่อยๆ จะเข้าใจครับ ส่วนกรณีที่ก้อนที่เป็น parity เสียล่ะ ก็จะเหมือนกับการคำนวณ parity ปกติเลยครับ ดูเหมือนว่าจะเร็วกว่าการกู้ข้อมูลด้วยครับ
จากรูปทั้งหมดจะเห็นว่าแม้ ชุดสีขาวจะไม่ถูกนำไปคำนวณ parity ชุดที่ 2 ก็ยังสามารถกู้ข้อมูลกลับมาได้หมด
RAID5E
Non-Standard RAID นี้บริษัท IBM เป็นผู้พัฒนา RAID5E ทำงานคล้ายกับ RAID5 แล้วเพิ่มส่วนที่เป็น Hot Spare ขึ้นมาแต่ไม่ใช่ Hot Spare ที่เป็น dedicated disk แบบเดิม คือแทนที่จะให้ disk 1 ก้อนทำหน้าที่เป็น Hot Spare ไปเลย แต่กลับใช้วิธีกระจายพื้นที่ส่วน Hot Spare นี้ใน Block ท้ายๆ ของ disk ทุกก้อนที่นำมาสร้าง Array ซึ่งช่วยเพิ่มความเร็วในการอ่านและเขียน ถึงแม้จะมี disk เสียไป 1 ก้อน ก็จะเปรียบเสมือนกลับมาเป็น RAID5 ที่ไม่มี Hot Spare แต่ก็แน่นอนครับว่าต้องแลกมาด้วยพื้นที่ที่เสียไปอีก 1 ก้อน ดังนั้น RAID5E ใช้ disk น้อยสุด 4 ก้อนในการสร้าง (ถ้าใช้ disk 4 ก้อน เว้นที่ไปเป็น Hot Spare 1 ก้อน เหลือ 3 ก้อน ใน RAID5 พื้นที่หายไป 1 เพื่อเป็น parity จึงเหลือพื้นที่สำหรับเก็บข้อมูล 2 ก้อน) แต่ RAID5E ต้องใช้ Controller ที่รองรับเท่านั้น (อาจเป็น RAID Controller card หรือ External RAID Controller ก็ได้) แต่ละชุดมี disk ได้สูงสุดไม่เกิน 16 ก้อน และไม่สามารถทำ Hot Spare ข้าม Array ได้
จากรูป RAID5E ชุดนี้สร้างจาก disk 4 ก้อน ส่วนที่เป็น * คือ parity ส่วนพื้นที่ที่ว่างๆ ด้านล่างคือ block ท้ายๆ ของ disk ซึ่งกันไว้เป็นพื้นที่ของ Hot Spare ตัวอย่างนี้ disk แต่ละก้อนแบ่งพื้นที่ให้ Hotspare 25 % parity 25 % ที่เหลือคือdata ก็คล้ายกับ RAID5 ครับ ยิ่ง disk น้อย เปอร์เซนต์การเสียพื้นที่ให้ parity ยิ่งมาก สมมุติใช้ disk 10 ก้อน สร้าง RAID5E disk แต่ละก้อนก็จะแบ่งพื้นที่ให้ Hotspare 10 % parity 10 % ที่เหลือคือdata
สมมุติว่าก้อนที่ 3 เสีย Controller ก็จะทำการสร้างข้อมูล (reconstruct) ที่ก้อนที่เสียเก็บไว้ขึ้นมาใหม่ แล้วเอาไปเก็บในพื้นที่ Hot Spare ซึ่งกระจายอยู่ใน block ท้ายๆ ของ disk ทุกก้อน ช่วยลดเวลา เนื่องจากมี I/O มากกว่าการใช้ dedicated disk เป็น Hot Spare และเมื่อเราเปลี่ยน disk ที่เสียแล้ว Controller ก็จะย้ายข้อมูลที่ disk ก้อนใหม่ควรจะเก็บกลับมาไว้ที่เดิม
RAID5EE
คล้ายกับ RAID5E มาก แต่ต่างกับ RAID5E ตรงที่ ส่วนที่เป็น Hot Spare ไม่ได้แยกไว้ตรง Block ท้ายๆ ของ disk เหมือนใน RAID5E แต่จะกระจายอยู่รวมกับ parity เลย วิธีการนี้มีข้อดีตรงที่เมื่อมี disk เสียจะสามารถกู้คืนข้อมูลได้เร็วกว่า RAID5E แต่ก็เช่นกัน ต้องแลกมาด้วยพื้นที่ที่หายไปเท่ากับ disk ที่นำมาสร้าง RAID5EE 2 ก้อน ต่อ Array แล้วก็ไม่สามารถทำ RAID5EE ข้าม Array ได้เช่นเดียวกับ RAID5E
จากรูปจะเห็นว่า block ที่เป็น empty คือพื้นที่ที่กันไว้เป็น Hot Spare จะกระจายอยู่ในทุก disk แต่อยู่ใกล้ๆ กับ parity block เลย ซึ่งต่างจาก RAID5E ที่กันพื้นที่ block ท้ายๆ ของ disk ทั้งแถบไว้เป็น Hot Spare
จากรูป block ที่เป็น * คือ parity ส่วน block ที่เป็น S คือ Hot Spare หากเกิด disk เสียขึ้น Controller ก็จะทำการสร้างข้อมูลส่วนที่ disk ก้อนที่เสียเก็บไว้ ไปไว้ในส่วนที่เป็น Hot Spare จากรูปจะเห็นว่า block ที่ 2, 3, parity ถูกย้ายไปอยู่ในส่วนที่เป็น S และเมื่อเราเปลี่ยน disk กลับคืน Controller ก็จะสร้างข้อมูลในส่วนที่ disk ใหม่ต้องเก็บ กลับมาไว้ที่ตำแหน่งเดิมของข้อมูลแต่ละ block
RAID 7
Non-Standard RAID ตัวนี้เป็นลิขสิทธิ์ของบริษัท Storage Computer Corporation เรียกอีกอย่างว่า Optimized Asynchrony for High I/O Rates as well as High Data Transfer Rates การทำงานคล้ายกับ RAID 3 และ4 แต่แก้ปัญหาเรื่องคอขวดของการเขียน parity ลง parity disk ด้วยการเพิ่ม real time precessor เพื่อจัดการให้ disk แต่ละก้อนทำงานเป็นอิสระต่อกัน และยังเพิ่ม cache เพื่อเพิ่มความเร็วในการคำนวณ parity ด้วย การรับส่งข้อมูลจะทำผ่าน ช่องทางพิเศษเรียกว่า X-Bus ซึ่งเป็น Bus ที่มีความเร็วในการรับส่งข้อมูลสูงมาก
ยังมี Non-Standard RAID อีกมากมายหลายตัวครับ เช่น RAID S ของบริษัท EMC RAID K ของบริษัท Kaleidescape RAID Z ของ Oracle vRAID หรือ ADG ของ HP
แต่ต้องขออภัยจริงๆ ครับ เนื่องจากความรู้มีไม่ถึง จึงไม่สามารถเจาะลึกเพื่ออธิบายให้เข้าใจได้กระจ่าง หากมีโอกาสได้เข้าไปสัมผัสให้ลึกกว่านี้ จะนำมาอธิบายใหม่นะครับ
ที่มา :
http://en.wikipedia.org/wiki/RAID
http://en.wikipedia.org/wiki/Non-standard_RAID_levels
http://www.tomshardware.com/reviews/raid-1,646.html RAID1.5
http://publib.boulder.ibm.com/infocenter/eserver/ RAID1E
http://bytepile.com/raid_class.php#11 RAID1E
http://media.netapp.com/documents/tr-3298.pdf RAID-DP
http://publib.boulder.ibm.com/infocenter/ RAID5E
http://publib.boulder.ibm.com RAID5EE
http://www.techrepublic.com RAID5EE
http://www.pcguide.com/ref/hdd/perf/raid/levels/single.htm RAID7









ไม่มีความคิดเห็น:
แสดงความคิดเห็น