วันอังคารที่ 22 พฤศจิกายน พ.ศ. 2554

RAID คืออะไร ภาค 2

                 คราวที่แล้วพูดถึงเรื่อง RAID ที่เป็นแบบ  Standard RAID level แบบ single level  แล้ว  คราวนี้มาว่ากันต่อ เรื่อง Multiple RAID level หรือ Nested RAID level  กันครับ ก็อีกเช่นเคย ค่อนข้างยาวหน่อยครับ

1.2  Multiple RAID level

          Multiple RAID level เรียกได้อีกอย่างว่า Nested RAID level หรือ Multi-RAID ก็ได้ครับ เป็นการต่อยอดการใช้งาน RAID ให้ดีขึ้น คุ้มค่าขึ้น โดยการนำ single-level RAID แบบต่างๆ มาผสมกันเพื่อเพิ่มประสิทธิภาพ ความเร็วในการอ่าน-เขียน หรือลดข้อด้อยด้านต่างๆ ของแต่ละ level  และแน่นนอน ด้วยความซับซ้อนที่มีมากขึ้นทำให้ Software RAID ที่มาพร้อมกับ OS ไม่ว่าจะเป็นตระกูล UNIX หรือ Windows ไม่สามารถทำ Nested RAID ได้ ต้องเป็น Software RAID ที่พัฒนามาโดยเฉพาะ หรือเป็น Hardware RAID ไปเลย ทั้งยังต้องใช้จำนวน Disk ที่มากขึ้นด้วยครับ จะมากน้อยกว่า RAID แบบ single level ขนาดไหนก็ขึ้นกับ level ที่เอามาผสมกันครับ
         การทำ RAID ลูกผสมนั้น ไม่ใช่ว่าจะเอา level ใดมาสร้างก็ได้นะครับ ต้องมีการคำนึงถึงความคุ้มค่า ข้อดีและข้อด้อยของ RAID แต่ละ level ด้วย เช่น ถ้านำ  RAID 4 ผสมกับ RAID 5 เป็นการผสมที่ไม่เหมาะสมนัก เพราะ หลักการของทั้งสอง level นี้คล้ายกันมาก  ก็เลยไม่ค่อยจะชดเชยข้อด้อยของกันเท่าไหร่
          หลักการสร้าง Nested RAID ก็คือการนำ disk ทั้งหมดที่จะใช้สร้าง RAID มาแบ่งเป็น ชุดๆ จะกี่ชุดก็ขึ้นกับว่าเราจะทำ Nested RAID level ไหน  จากนั้นนำ disk แต่ชุดไปสร้างเป็น RAID level แรกก่อน เมื่อได้ level แรกครบทุกชุดแล้ว ก็นำแต่ละชุดมาสร้างเป็น level อันดับถัดไปที่ต้องการอีกที เช่น ถ้าจะทำ RAID0+1 ก็ให้สร้าง RAID 0 ก่อน แล้วเอา RAID0 มาสร้างเป็น RAID1 อีกที สมมุติว่าต้องการสร้าง RAID0+1 จาก disk  12 ก้อน ก็ทำการแบ่ง disk ออกเป็น 2 ชุด ชุดละ 6 ก้อน แล้วนำชุด 6 ก้อนแต่ละชุด มาทำ RAID0 ก่อน แล้วนำชุด RAID0 แต่ละชุดมาทำ RAID 1 อีกที  ก็จะได้ RAID0+1 ตามต้องการ

        ก่อนจะไปรู้จักว่ามี Nested RAID แบบไหนบ้าง เรามารู้วิธีการเรียกชื่อก่อนนะครับ เพื่อให้เข้าใจตรงกัน ไม่สับสน การเรียกชื่อของ Nested RAID นั้น ลำดับของตัวเลขหลังคำว่า RAID มีความสำคัญนะครับ คือ 0+1 กับ 1+0 ไม่เหมือนกันครับ แม้ผลลัพธ์ของพื้นที่หลังทำ RAID แล้วจะเท่ากัน แต่ขั้นตอนการสร้าง, การทำงาน และการป้องกันข้อมูลจากความเสียหายไม่เหมือนกันนะครับ  แต่ผู้ผลิต RAID Controller บางราย ได้แทนที่ RAID0+1 และ RAID1+0 ด้วย RAID10 ไปซะแล้วแต่หลักการของ RAID10 ก็คือ RAID1+0   นี่คือสาเหตุหนึ่งที่ทำให้เกิดความเข้าใจผิดคิดว่า RAID0+1 กับ RAID1+0 เหมือนกัน  การอ่านก็ให้อ่านตามตัวเลขไปเลย เช่น

                RAID01 ให้อ่าน "เหรดศูนย์หนึ่ง" หรือ"เหรดศูนย์บวกหนึ่ง"   และอย่าตัดเลข 0 หน้า 1 ทิ้งเพราะจะไปชนกับ RAID1 (Mirror)
                RAID10 ให้อ่าน "เหรดหนึ่งศูนย์" (อย่าอ่านเหรดสิบนะครับ เท่าที่ทราบ ยังไปไม่ถึง) หรือ "เหรดหนึ่งบวกศูนย์" 
                RAID50 ให้อ่าน "เหรดห้าศูนย์" (อีกเช่นกันอย่าอ่านเหรดห้าสิบนะครับ ยังไปไม่ถึง) หรือ "เหรดห้าบวกศูนย์"

         เหตุที่ทำไมไม่เขียนเป็น 0+1, 1+0, 5+0 ทั้งหมดเลยล่ะ ก็อาจเป็นเพราะว่าต้องการย่อให้มันดูกระชับ เป็นคำเดียวกัน หรือเป็นคำทางการค้าก็ไม่ทราบได้  เพื่อเป็นการป้องกันความสับสนนะครับ ผมขอใช้เครื่องหมายบวกขั้นระหว่าง level ของ RAID นะครับ



RAID 0+1

       เป็น Nested RAID level ที่เป็นการรวม RAID 0 และ RAID 1 ไว้ด้วยกัน เรียกให้เท่ๆ ว่า Mirror of stripes โดยใช้ข้อดีของ RAID 0 คือมี performance ในการอ่านและเขียนดี รวมกับเรื่องการป้องกัน disk เสียของ RAID 1 ไว้ด้วยกัน   จำนวน disk ที่น้อยที่สุดที่สามารถสร้าง RAID 0+1 ได้คือ 4 ก้อน และdisk แต่ละก้อนควรมีขนาดเท่ากัน (สามารถใช้ขนาดต่างกันได้แต่หลังทำ RAID0 แล้วทั้งสองชุดต้องมีขนาดเท่ากัน)

       ขั้นตอนการสร้าง Nested RAID level นี้จะทำการแบ่ง disk ออกเป็น 2 ชุดไปสร้าง RAID 0 โดยแต่ละชุดหลังจากทำ RAID0 แล้วต้องมีพื้นที่รวมเท่ากัน ฉะนั้นเพื่อความง่ายก็ควรใช้ disk ทีมีขนาดเท่ากัน  จากนั้นนำ RAID 0 2 ชุดนี้มาสร้างเป็น RAID 1 อีกครั้ง อาจจะงงๆ หน่อยนะครับ แต่ถ้าดูรูป  และคำอธิบายใต้รูปแล้วน่าจะเข้าใจมากขึ้นครับ





       จากรูปจะเห็นว่า RAID0+1 ชุดนี้ใช้ disk 8 ก้อน  โดยแบ่งเป็น 2 ชุด ชุดละ 4 ก้อน ให้ชุดบนเป็นชุด A ส่วนชุดล่างเป็นชุด B นะครับ  นำชุด A กับชุด B มาสร้างเป็น RAID 0 ก่อน  แล้วจึงนำทั้งสองชุดนี้มาสร้างเป็น RAID 1 (Mirror กัน)     RAID level นี้ ในชุด RAID0 เดียวกัน จะเสียกี่ก้อนก็ได้ แต่ห้ามเสียข้ามชุด เช่น ชุด A disk เสียหมดเลยทั้ง 4 ก้อน ก็ยังสามารถทำงานต่อได้ เพราะยังมีชุด B อยู่ เปรียบเสมือน Mirror เสียไป 1 ข้าง แต่ถ้าชุด A เสีย 1 ก้อนชุด B อีก 1 ก้อน ข้อมูลหายหมดครับ เพราะ Mirror เสียทั้ง 2 ข้าง กรณีที่เสียแต่ชุดเดียวเมื่อเรานำ disk มาเปลี่ยนก้อนที่เสีย ก็จะมีการ synchronize ข้อมูลจากชุด B กลับไปให้ชุด A ทั้งชุดครับ ไม่ใช่แค่ก้อนเดียว อันนี้เป็นข้อด้อยอีกอันที่เพิ่มโอกาสการเสียหายของข้อมูลในกรณีเกิดมี disk ในชุด B เสีย ก็จบอีกเหมือนกันครับ ข้อมูลหายหมด
        RAID 0+1 นี้เหมาะสำหรับระบบที่ต้องการทั้ง performance ในการอ่าน-เขียนและการป้องกันข้อมูลเนื่องจาก disk เสียเช่น Database

ข้อดี

     1  performance ในการอ่าน-เขียนดีมาก เมื่อเทียบกับ RAID level อื่นยกเว้น RAID0

     2  มีการป้องกันข้อมูลเนื่องจาก disk เสียหาย

ข้อด้อย

     1  สามารถมี disk เสียข้ามชุด Mirror ได้แค่ 1 ก้อน (ในชุด RAID0 เดียวกันเสียกี่ก้อนก็ได้ แต่ข้ามชุดเสียได้ก้อนเดียว)
     2  หลังจากนำ disk มาเปลี่ยนก้อนที่เสียต้องทำการ synchronize ข้อมูลกลับทั้งชุด เพิ่มความเสี่ยงที่ diskจะเสียเพิ่ม
     3  พื้นที่ disk หลังจากทำ RAID0+1แล้วเหลือพื้นที่เพียงครึ่งเดียวของพื้นที่ disk ทั้งหมด



RAID 1+0

       เป็นการผสมระหว่าง RAID 0 และ RAID 1 คล้ายกับ RAID 0+1 แต่ขั้นตอนการสร้างต่างกัน และ RAID 1+0 นี้จะมีการป้องกันข้อมูลจาก disk เสียได้ดีกว่า RAID 0+1 ตรงที่ จำนวน disk ใน RAID1+0 สามารถเสียได้ตามจำนวนคู่ของคู่ mirror ฟังแล้วยังอาจจะไม่เข้าใจ มาดูวิธีการสร้างก่อนดีกว่าครับ

         จากรูปตัวอย่าง RAID 1+0 ชุดนี้ใช้ disk ทั้งหมด 6 ก้อน โดยแบ่งเป็น 3 คู่ เพื่อทำเป็น RAID1 (Mirror) ก่อน จากนั้นนำคู่ RAID1 ทั้ง 3 คู่มาสร้างเป็น RAID0 อีกครั้ง ก็จะได้ RAID1+0    ทีนี้ย้อนกลับไปตรงที่กรณี disk เสียสามารถเสียได้ตามจำนวนคู่ของคู่ mirror คืออะไร จากรู้จะเห็นว่า มี mirror 3 คู่ ดังนั้น ก้อนใดก้อนหนึ่งใน Mirror เสียก็ยังมีอีกก้อนทำงานแทนได้อยู่ ดังนั้น RAID 1+0 ในตัวอย่างก็จะเสียได้ 3 ก้อน แต่ข้อแม้คือ ต้องอยู่คนละคู่ mirror กันถ้าอยู่ในคู่ mirror เดียวกัน ก็ไม่สามารถกู้ข้อมูลชุดนั้นกลับมาได้ RAID0 ก็จะเสียไป ข้อมูลหายหมดครับ  และข้อดีอีกอย่างคือ กรณี disk ก้อนใดเสีย แล้วเรานำก้อนใหม่มาเปลี่ยน จะมีการ synchronize ข้อมูลกลับเฉพาะในคู่ mirror ของตัวเอง ไม่ใช่ทั้งชุดเหมือนใน RAID 0+1 (ไม่ได้โจมตี RAID 0+1 นะครับ)

          RAID 1+0 นี้เหมาะสำหรับระบบที่ต้องการทั้ง performance ในการอ่าน-เขียนและการป้องกันข้อมูลเนื่องจาก disk เสียเช่น Database


ข้อดี
       1 Performance ในการอ่าน-เขียนดีมากเมื่อเทียบกับ RAID level อื่นยกเว้น RAID0
       2  มีการป้องกันข้อมูลจากเนื่องจาก disk เสียหาย โดยจำนวน disk ที่เสียหายได้เท่ากับจำนวนคู่ของ Mirror แต่ห้ามเสียในชุด Mirror เดียวกัน และเมื่อมีการเปลี่ยน disk ที่เสียออกแล้ว จะ synchronize ข้อมูลเฉพาะในคู่ Mirror ที่เสียเท่านั้น

ข้อด้อย
       1  สามารถมี disk เสียข้ามชุด Mirror ได้แค่ 1 ก้อน (ในชุดMirror เดียวกันเสียได้ก้อนเดียว ส่วนในชุด RAID0 เสียได้ตามจำนวนคู่ Mirror)
       2  พื้นที่ disk หลังจากทำ RAID1+0แล้วเหลือพื้นที่เพียงครึ่งเดียวของพื้นที่ disk ทั้งหมด


RAID 1+0+0

       โอ้ว... อะไรจะขนาดนั้น   Nested RAID level นี้เรียกได้หลายชื่อครับ เช่น RAID1+0 + RAID0 หรือ plaid RAID (plaid แปลว่า ผ้าลายสก๊อต) เป็นการต่อยอดจาก RAID 1+0 อีกทีครับ โดยการนำ Software RAID มาสร้าง RAID 0 ครอบ RAID1+0 ที่สร้างจาก Hardware RAID ตั้งแต่ 2 ชุดขึ้นไปครับ แล้วแต่ว่าจะเอามาต่อเป็น RAID0 กันกี่ controller  มักจะใช้ในกรณีที่ Hardware RAID มีข้อจำกัดเรื่องปริมาณ disk ที่แต่ละ controller จะรับได้แต่ disk ที่ต้องใช้เกินกว่าที่ controller ชุดเดียวจะรับได้



         จากรูปตัวอย่าง RAID 1+0+0 ชุดนี้ใช้ disk ทั้งหมด 8 ก้อน แบ่งทำ RAID1+0 2 ชุด  แต่ละชุดมี controller ของตัวเอง (อันนี้แค่ตัวอย่างนะครับ ในทางปฏิบัติจริง controller แต่ละตัวจะมี disk เยอะกว่านี้มาก, ก็จนว่าเกิน limit ของ controller น่ะครับ ไม่งั้นคงไม่ต้องลงทุนซื้อทั้ง hardware RAID และ software RAID หรอกนะครับ)  แล้วก็นำแต่ละชุดมาสร้าง RAID0 อีกที การป้องกันข้อมูลก็เหมือนกับ RAID1+0 ครับ คือมี disk เสียได้ตามจำนวนคู่ Mirror แต่ห้ามเสียที่คู่ Mirror เดียวกัน ไม่งั้นเจ๊งทั้งระบบครับ ไม่ใช่แค่ RAID1+0 ชุดใดชุดหนึ่งนะครับ หมดทั้งระบบเลยครับเพราะใช้ RAID0 ครอบบนสุด RAID1+0 ชุดใดเสีย ข้อมูลก็เสียยกชุด

          RAID 1+0+0 นี้เหมาะสำหรับระบบที่ต้องการทั้ง performance ในการอ่าน-เขียนสูงมากๆและการป้องกันข้อมูลเนื่องจาก disk เสียเช่น Database ขนาดใหญ่มากๆๆๆๆ


ข้อดี
       1 Performance ในการอ่าน-เขียนดีมากเมื่อเทียบกับ RAID level อื่นเนื่องจากมีcontroller หลายตัว และมีการกระจายข้อมูลแบบ RAID0
       2  มีการป้องกันข้อมูลจากเนื่องจาก disk เสียหาย โดยจำนวน disk ที่เสียหายได้เท่ากับจำนวนคู่ของ Mirror แต่ห้ามเสียในชุด Mirror เดียวกัน และเมื่อมีการเปลี่ยน disk ที่เสียออกแล้ว จะ synchronize ข้อมูลเฉพาะในคู่ Mirror ที่เสียเท่านั้น

ข้อด้อย
       1  สามารถมี disk เสียข้ามชุด Mirror ได้แค่ 1 ก้อน (ในชุดMirror เดียวกันเสียได้ก้อนเดียว ส่วนในชุด RAID0 เสียได้ตามจำนวนคู่ Mirror)
       2  พื้นที่ disk หลังจากทำ RAID1+0+0แล้วเหลือพื้นที่เพียงครึ่งเดียวของพื้นที่ disk ทั้งหมด
       3  ต้องใช้ Software RAID ครอบ Hardware RAID อีกที ค่าใช้จ่ายสูงขึ้น



RAID 0+3

        เป็น Nested RAID ที่รวมข้อดีของ RAID 0 เรื่องความเร็วในการอ่าน-เขียน และ RAID 3  เรื่องการป้องกันข้อมูลเนื่องจาก disk เสีย (ย้อนกลับไปดูเรื่อง RAID3 ได้ที่ Standard RAID level แบบ single level ) เมื่อนำ RAID0 มาใช้ร่วมด้วยจึงช่วยเพิ่ม performance ขึ้นได้บ้าง
        ขั้นตอนการสร้าง RAID0+3 จะแบ่ง disk เป็นชุดๆ เพื่อสร้างเป็น RAID 0 ก่อนจากนั้น นำ RAID0 แต่ละชุดมาสร้างเป็น RAID3 ครอบอีกครั้ง


            จากรูปจะเห็นว่าใช้ disk ทั้งหมด 6 ก้อน แบ่งเป็น 3 ชุด แต่ละชุดนำไปสร้างเป็น RAID0 ก่อนจากนั้นจึงมาสร้างเป็น RAID3 อีกครั้ง พื้นที่ที่ได้นั้นจะเหลือเท่ากับ disk 4 ก้อน หายไป 2 ก้อนเนื่องจากต้องนำ RAID0 1ชุด (เท่ากับ disk 2 ก้อน) ไปสร้างเป็น parity disk  RAID0+3 นี้สามารถมี disk เสียได้ก้อนเดียว (ก้อนเดียวจริงๆ ไม่ว่าจะใช้ RAID0 กี่ชุดเพราะ disk เสีย 1 ก้อน RAID0 ก็จะเสียไปด้วย ก็เสมือน disk ใน RAID3 เสียไป 1 ก้อน)
            RAID0+3 ต้องใช้ Hardware RAID ที่มีประสิทธิภาพสูง (High-end) ในการสร้าง เนื่องจากมีความซับซ้อน  จำนวน disk ที่ใช้ขั้นต่ำคือ 6 ก้อน ส่วนจะมากน้อยเท่าไหร่ก็ขึ้นกับจำนวน disk ที่ใช้สร้าง RAID0 และจำนวนชุดของ RAID0 ที่นำมาสร้าง RAID3 ตามสูตรนี้ครับ
  
  จำนวนdisk   =  (จำนวนdiskที่ใช้ทำ RAID0) X (จำนวนชุดของRAID0ที่จะนำมาสร้าง RAID3)

ส่วนพื้นที่ที่จะได้หลังจากทำ RAID0+3

พื้นที่ = (ขนาดของdiskที่เล็กที่สุด) X (จำนวนdiskที่ใช้ทำRAID0) X [(จำนวนชุดของRAID0ที่เอามาสร้างRAID3) - 1]


ข้อดี

      1 มีการป้องกันข้อมูลเนื่องจาก disk เสีย
      2 ประสิทธิภาพในการอ่านและเขียนดีขึ้นเมื่อเทียบกับ RAID3
      3 พื้นที่ของ disk ที่ได้หลังทำ RAID แล้ว ยังมากกว่าการทำ RAID0+1 หรือ RAID1+0

ข้อด้อย

      1  เนื่องจากมี RAID 0 เป็นส่วนประกอบของ Array ย่อยที่นำมาสร้าง RAID 3 หากมี disk เสีย และทำการเปลี่ยน disk แล้ว ต้องทำการ rebuild RAID3 ใหม่ โอกาสที่ disk ใน RAID0 ชุดอื่นจะเสียก็มีได้ ซึ่งจะทำให้ RAID3 เสียไปด้วย


RAID 3+0

        หลักการคล้ายกับของ RAID0+3 แต่สลับกันตรงขั้นตอนการสร้างโดยจะแบ่ง disk เป็นชุดๆ มาสร้างเป็น RAID3 ก่อน จากนั้นจึงนำมาสร้างเป็น RAID0 อีกครั้ง




         จากรูปจะเห็นว่า RAID3+0 ชุดนี้สร้างขึ้นมาจาก disk 6 ก้อน แล้วแบ่งเป็น 2 ชุดเพื่อทำ RAID3 ก่อน จากนั้นจึงนำมาสร้าง RAID0 ครอบอีกครั้ง  RAID3+0 สามารถรองรับ disk เสียได้เท่ากับจำนวนชุดของ RAID3 เพราะในชุดของ RAID3แต่ละชุดรองรับ disk เสียได้ 1 ก้อน  พื้นที่ที่ได้ก็เท่ากับ RAID0+3 คือหายไป 2 ก้อนเนื่องจากมี RAID3 2 ชุด แต่ละชุดต้องใช้ parity disk 1 ก้อน จำนวน disk ขั้นต่ำที่ใช้สร้าง RAID3+0 คือ 6 ก้อน ส่วนจะมากน้อยเพียงใด คำนวณได้ตามนี้ครับ


   
  จำนวนdisk   =  (จำนวนdiskที่ใช้ทำ RAID3) X (จำนวนชุดของRAID3ที่จะนำมาสร้างRAID0)


ส่วนพื้นที่ที่จะได้หลังจากทำ RAID3+0

พื้นที่ = (ขนาดของdiskที่เล็กที่สุด) X [(จำนวนdiskที่ใช้ทำRAID3) - 1] X (จำนวนชุดของRAID3ที่เอามาสร้างRAID0)

ข้อดี

      1 มีการป้องกันข้อมูลเนื่องจาก disk เสีย
      2 พื้นที่ของ disk ที่ได้หลังทำ RAID แล้ว ยังมากกว่าการทำ RAID0+1 หรือ RAID1+0

ข้อด้อย

      1  เนื่องจากเป็น RAID3 แม้จะมีการแบ่งข้อมูลด้วย RAID0 แล้วก็ตาม แต่ก็ยังมีคอขวดด้านการคำนวณ parity อยู่



RAID 0+5

        Nested RAID level นี้ไม่ค่อยมีใครพูดถึงเท่าไหร่ครับ แต่จะข้ามไปพูดถึง RAID5+0 แทน ก็คงเพราะเรื่อง RAID ที่เป็นส่วนประกอบภายใน เพราะใช้ RAID0 เป็นชุดๆ มาประกอบเป็น RAID5 ยิ่ง disk มากความเสี่ยงที่ disk จะเสียในชุด RAID0 แต่ละชุดก็มีมาก ซึ่งถ้า disk ที่เสียอยู่คนละชุด RAID0 ก็เป็นอันจบเห่ครับ เพราะ RAID5 รองรับ disk เสียได้แค่ก้อนเดียว ดังนั้นถ้า RAID0 เสียมากกว่า 1 ชุดข้อมูลก็เสียหายหมดครับ เอาเป็นว่าทราบไว้เป็นหลักการแล้วกันครับ
       ขั้นตอนการสร้าง ก็คือ นำ disk มาแบ่งเป็นชุดๆ แล้วแต่ว่าจะให้ RAID0 ประกอบด้วย disk กี่ก้อน แต่ให้ได้อย่างน้อย 3 ชุด รวมแล้ว disk ขึ้นต่ำที่ต้องใช้ก็ 6 ก้อน (RAID0 อย่างน้อย 2ก้อนต่อชุด, RAID5 ต้องมีอย่างน้อย 3 ก้อนจึงจะสร้างได้) เมื่อสร้างเป็น RAID0 แล้วก็นำ RAID0 แต่ละชุดมาสร้างเป็น RAID5

ข้อดี
      1  มีการป้องกันข้อมูลเนื่องจาก disk เสีย รองรับ disk เสียได้ 1 ก้อน ของ RAID0+5 ทั้งชุด
      2  performance ในการอ่านดีมาก แต่เรื่องการเขียนเทียบแล้วดีกว่า RAID5 เล็กน้อย

ข้อด้อย
      1  กรณีมี disk เสีย แล้วได้ทำการเปลี่ยน disk ใหม่แล้ว จะมีการ rebuild RAID5 ใหม่ทั้งชุด เพิ่มโอกาสที่ disk เสียเพิ่มใน RAID0 ชุดอื่นได้
      2  มีความซับซ้อนและมีค่าใช้จ่ายสูง




RAID 5+0

        เป็นการต่อยอดของ RAID5 เพื่อลดปัญหาเรื่อง performance โดยนำ RAID5 2 ชุดขึ้นไปมาสร้างเป็น RAID0 เพื่อเพิ่ม I/O และด้วยจำนวน RAID5 ที่เพิ่มขึ้น ก็เพิ่มการป้องกันข้อมูลจาก disk เสียได้ด้วย คือ RAID5+0 สามารถรองรับ disk เสียได้ตามจำนวนชุดของ RAID5 คือ RAID5 แต่ละชุดมี disk เสียได้ 1 ก้อน  ถ้าเกินข้อมูลก็จะเสียหายทั้งหมด ไม่สามารถกู้คืนมาได้  Nested RAID level นี้คล้ายกับวิธีของ RAID3+0 แต่ที่ RAID level แรกต่างกัน

        ในทางปฏิบัติ เราสามารถสร้าง RAID5+0 ด้วยการผสมระหว่าง Hardware RAID กับ Software RAID คือใช้ Hardware RAID สร้าง RAID5 หลายๆ ชุด จากนั้นนำ RAID5 แต่ละชุดมาสร้างเป็น RAID0 ด้วย Software RAID ได้ โดยอาจเป็น Software RAID ที่มากับ OS เลยก็ได้

         จากรูปตัวอย่างเป็นการสร้าง RAID5+0 จาก disk 9 ก้อน แบ่งเป็น 3 ชุดเพื่อสร้างเป็น RAID5 ก่อน จากนั้นนำทั้ง 3 ชุดมาสร้างเป็น RAID0 (ขั้นต่ำต้องใช้ RAID5 2 ชุด เพื่อสร้าง RAID0)  RAID5+0 จากตัวอย่างนี้รองรับ disk เสียได้ 3 ก้อน เพราะมี RAID5 3 ชุด เสียได้ชุดละก้อน ถ้ามีชุดใดชุดหนึ่งเสียมากกว่า 1 ก้อน RAID5+0 ทั้งชุดก็จะเสียไปด้วย
         จำนวน disk ขั้นต่ำที่ใช้สร้าง RAID5+0 คือ 6 ก้อน ส่วนจะต้องใช้มากเพียงใด คำนวณได้ตามนี้ครับ

   
  จำนวนdisk   =  (จำนวนdiskที่ใช้ทำ RAID5) X (จำนวนชุดของRAID5ที่จะนำมาสร้างRAID0)


ส่วนพื้นที่ที่จะได้หลังจากทำ RAID5+0

พื้นที่ = (ขนาดของdisk) X [(จำนวนdiskที่ใช้ทำRAID5) - 1] X (จำนวนชุดของRAID5ที่เอามาสร้างRAID0)



ข้อดี
      1  มีการป้องกันข้อมูลเนื่องจาก disk เสีย รองรับ disk เสียได้ตามจำนวนชุดของ RAID5
      2  performance ในการอ่านดีมาก แต่เรื่องการเขียนเทียบแล้วดีกว่า RAID5 เล็กน้อย
      3  กรณีมี disk เสีย แล้วได้ทำการเปลี่ยน disk ใหม่แล้ว จะมีการ rebuild RAID5 ใหม่เฉพาะชุดที่เสีย (ไม่ต้อง rebuild ใหม่ทั้งชุด RAID5+0)

ข้อด้อย
      1  มีความซับซ้อนและมีค่าใช้จ่ายสูง



RAID 1+5

        Nested RAID level นี้เน้นเรื่องความปลอดภัยของข้อมูลเนื่องจาก disk เสีย เป็นอย่างมากจะเห็นได้ว่า นอกจากจะ Mirror กันแล้วยังนำมาทำ RAID5 อีก (ป้องกันกันแบบสุดๆ เลยทีเดียว) ด้วยเหตุนี้ RAID1+5 สามารถรองรับ disk เสียได้ตามจำนวนชุดของ Mirror + 1 ก้อน ที่บวกอีก 1 เพราะคู่ Mirror สามารถเสียไปเลยได้ 1 คู่ และคู่ Mirror ที่เหลือเสียอย่างละ 1 ก้อน ก็ยังสามารถใช้ความสามารถของ RAID5 กู้ข้อมูลคืนมาได้ สุดยอดเลยใช่มั้ยล่ะครับ  แต่นั่นล่ะครับ ก็ต้องแลกมาด้วยจำนวน disk ที่ต้องใช้เพิ่มขึ้นอย่างมาก Controller เป็นระดับ High-end โดยที่ performance ไม่ได้เพิ่มขึ้นเท่าไหร่ ดูจะลดลงด้วยซ้ำครับ  แต่ถ้าเน้นเรื่องการป้องกันข้อมูลจาก disk เสียแล้ว RAID1+5 ทำได้ดีมากๆ

           ดูที่รูป RAID15 นะครับ  เริ่มต้นสร้างด้วยการแบ่ง disk ออกเป็นคู่ๆ อย่างน้อย 3 คู่ นำแต่ละคู่มาสร้างเป็น RAID1 ก่อน จากนั้นนำ RAID1 ทั้งหมดมาสร้าง RAID5  จากรูปในตัวอย่างใช้ disk ทั้งหมด 10 ก้อน นำมาสร้าง Mirror  5 คู่ แล้วเอา 5 คู่นี้มาสร้างเป็น RAID5 ครอบอีกที พื้นที่ที่ได้ก็จะเท่ากับ disk แค่ 4 ก้อน 4 ก้อนจริงๆ ครับ ไม่ใช่ 4 คู่เพราะทำเป็น Mirror ก็จะเสมือนเหลือแค่ 5 ก้อนแล้ว แล้วยังนำมาทำ RAID5 อีก ก็หายไปอีก 1 ก้อน เหลือแค่ 4 ก้อน  แต่เรื่องการป้องกันข้อมูลจาก disk เสียนี้ทำได้ดีมากครับ  สมมุติว่า Mirror คู่บนสุดเสียไปเลย ยังมี RAID5 ครอบอยู่ ยังทำงานได้ เกิดโชคร้าย  Mirror คู่อื่นๆ เสียอีกคู่ละ 1 ก้อน ก็ยังทำงานได้ เพราะยังเหลือ Mirror อีก 1 ข้าง  สรุปแล้ว RAID1+5 จากตัวอย่างสามารถรองรับ disk เสียได้ 6 ก้อนเลยทีเดียว
           มาดูถึงจำนวน disk ขั้นต่ำที่ต้องใช้  ก็คือ 6 ก้อน แต่จะเห็นพื้นที่หลังทำ RAID1+5 เท่ากับ 2 ก้อน   ถ้าใช้มากกว่าจำนวน disk ขั้นต่ำสามารถคำนวณได้จาก

จำนวนdisk = (จำนวนคู่ Mirror X 2)

ส่วนพื้นที่ที่ได้หลังจากทำ RAID1+5 แล้ว

พื้นที่  = (sizeของdisk) X (จำนวนคู่Mirror - 1)

ข้อดี
       1  มีการป้องกันข้อมูลเนื่องจาก disk เสียที่ดีมาก
       2  ในกรณี disk เสีย และได้ทำการเปลี่ยน disk แล้ว จะมีการ synchronize ข้อมูลเฉพาะคู่ Mirror ที่เสีย


ข้อด้อย

       1  ใช้ disk จำนวนมากในการสร้าง แต่ได้พื้นที่กลับมาน้อยกว่าครึ่งหนึ่งของพื้นที่ทั้งหมด
       2  เนื่องจากมีความซับซ้อนต้องใช้ Hardware RAID ที่มีประสิทธิภาพสูง (High-end)

RAID 5+1

        คล้ายกับ RAID1+5 คือเน้นเรื่องการป้องกันข้อมูลจาก disk เสียได้ดีมากๆ แต่สลับขั้นตอนกัน โดยนำ disk มาแบ่งครึ่งแล้วแต่ละชุดมาสร้างเป็น RAID5 ก่อน จากนั้นจึงนำ RAID5 แต่ละชุดมาสร้างเป็น RAID1 อีกที  เรื่องการป้องกันข้อมูลเสียหายเนื่องจาก disk เสียทำได้ดีพอสมควร คือสามารถรองรับdisk เสียได้เท่ากับจำนวน disk ที่ใช้สร้าง RAID5 + 1  คือ RAID5 เสียทั้งชุดได้เลย 1 ชุด และยังเสียข้ามชุดได้อีก 1 ก้อน 

           จากรูปจะเห็นว่าใช้ RAID5 ที่สร้างจาก disk 3 ก้อน 2 ชุดมาสร้างเป็น RAID1  สมมุติว่าชุดด้านซ้ายเสีย 2 ก้อน ชุดด้านขวาจะเสียได้อีกก้อนเดียว ไม่เช่นนั้นข้อมูลจะเสียหายทั้งหมด จากตัวอย่างสามารถรองรับ disk เสียได้ 4 ก้อนเลยทีเดียว  
           มาดูถึงจำนวน disk ขั้นต่ำที่ต้องใช้  ก็คือ 6 ก้อน แต่จะเห็นพื้นที่หลังทำ RAID5+1 เท่ากับ 2 ก้อน   ถ้าใช้มากกว่าจำนวน disk ขั้นต่ำสามารถคำนวณได้จาก


จำนวนdisk = (จำนวนdiskที่ใช้สร้างRAID5 X 2)


ส่วนพื้นที่ที่ได้หลังจากทำ RAID5+1 แล้ว


พื้นที่  = (sizeของdisk) X (จำนวนdiskที่ใช้สร้างRAID5 - 1)



            ในทางปฏิบัติ เราสามารถสร้าง RAID5+1 ด้วยการผสมระหว่าง Hardware RAID กับ Software RAID คือใช้ Hardware RAID สร้าง RAID5 หลายๆ ชุด จากนั้นนำ RAID5 แต่ละชุดมาสร้างเป็น RAID1 ด้วย Software RAID ได้ โดยอาจเป็น Software RAID ที่มากับ OS เลยก็ได้ และยังสามารถแยก Controller กันแล้วค่อยมาทำ  Duplex แทนการ Mirror

ข้อดี
      1  มีการป้องกันข้อมูลเนื่องจาก disk เสีย รองรับ disk เสียได้ตามจำนวนชุดของ RAID5
      2  performance ในการอ่านดีมาก แต่เรื่องการเขียนเทียบแล้วใกล้เคียงกับ RAID5
      3  กรณีมี disk เสีย แล้วได้ทำการเปลี่ยน disk ใหม่แล้ว จะมีการ rebuild RAID5 ใหม่เฉพาะชุดที่เสีย (ไม่ต้อง rebuild ใหม่ทั้งชุด RAID5+1)


ข้อด้อย
      1  มีความซับซ้อนและมีค่าใช้จ่ายสูง



RAID 53

        จริงๆ แล้วเป็นชื่อเรียกทางการค้ามากกว่าครับ เพราะหลักการทำงานนั้นเหมือนกับ RAID0+3 หรือ RAID3+0 แล้วแต่ว่าผู้ผลิต Controller จะใช้รูปแบบไหนครับ




RAID 0+6

        Nested RAID level นี้ไม่เห็นว่ามีการพูดถึงนะครับ ความเห็นส่วนตัว ก็คงเพราะข้อด้อยของ RAID0 ที่ไม่มีการป้องกันข้อมูลเนื่องจาก disk เสีย ซึ่งเป็นข้อด้อยที่ต้องคิดให้หนัก  ก็เลยขอข้ามไปเป็น RAID6+0 เลยครับ



RAID 6+0

        Nested RAID level นี้เป็นการช่วยเรื่องข้อด้อยเรื่อง performance ในการเขียนของ RAID6 โดยรวมเอา RAID0 เข้ามาช่วย โดยยังคงรักษาข้อเด่นของ RAID6 เรื่องการป้องกันข้อมูลเนื่องจาก disk เสียไว้คือ RAID6 รองรับ disk เสียได้ชุดละ 2 ก้อน

       
        จากรูปตัวอย่างเป็นการสร้าง RAID6+0 จาก disk 8 ก้อน โดยแบ่งเป็น 2 ชุด แต่ละชุดสร้างเป็น RAID6 แล้วนำ RAID6 แต่ละชุดมาสร้างเป็น RAID0 อีกที  RAID6+0 ชุดในตัวอย่างนี้ สามารถรองรับ disk เสียได้ 4 ก้อน (RAID6 แต่ละชุดรองรับ disk เสียได้ชุดละ 2 ก้อน) 
        จำนวน disk ขั้นต่ำที่ใช้สร้าง RAID6+0 คือ 8 ก้อน เพราะ disk ขั้นต่ำที่ต้องใช้สร้าง RAID6 คือ 4 ก้อน และต้องมี RAID6 อย่างน้อย 2 ชุดมาสร้าง RAID0 ส่วนจะต้องใช้มากเพียงใด คำนวณได้ตามนี้ครับ

   
  จำนวนdisk   =  (จำนวนdiskที่ใช้ทำ RAID6) X (จำนวนชุดของRAID6ที่จะนำมาสร้างRAID0)


ส่วนพื้นที่ที่จะได้หลังจากทำ RAID6+0

พื้นที่ = (ขนาดของdisk) X [(จำนวนdiskที่ใช้ทำRAID6) - 2] X (จำนวนชุดของRAID6ที่เอามาสร้างRAID0)


          และก็เช่นกันครับ ในทางปฏิบัติ เราสามารถสร้าง RAID6+0 ด้วยการผสมระหว่าง Hardware RAID กับ Software RAID คือใช้ Hardware RAID สร้าง RAID6 หลายๆ ชุด จากนั้นนำ RAID6 แต่ละชุดมาสร้างเป็น RAID0 ด้วย Software RAID ได้ โดยอาจเป็น Software RAID ที่มากับ OS เลยก็ได้ ช่วยเพิ่ม performance และลดค่าใช้จ่ายได้


ข้อดี
      1  มีการป้องกันข้อมูลเนื่องจาก disk เสีย รองรับ disk เสียได้ตามจำนวนชุดของ RAID6 x 2
      2  performance ในการอ่านดีมาก แต่เรื่องการเขียนเทียบแล้วดีกว่า RAID6 เล็กน้อย
      3  กรณีมี disk เสีย แล้วได้ทำการเปลี่ยน disk ใหม่แล้ว จะมีการ rebuild RAID6 ใหม่เฉพาะชุดที่เสีย (ไม่ต้อง rebuild ใหม่ทั้งชุด RAID6+0)

ข้อด้อย
      1  มีความซับซ้อนและมีค่าใช้จ่ายสูง



RAID 1+6  RAID 6+1

        Nested RAID level  2 ตัวนี้ เห็นเขียนไว้ใน Wikipedia ครับ แต่ไม่มีคำอธิบาย แต่หลักการ น่าจะเหมือน RAID1+5 และ RAID5+1 ครับ  โดยมีข้อดีของการป้องกันข้อมูลเนื่องจาก disk เสีย 2 ชั้นเลยทีเดียว คือทั้ง RAID1 และ RAID6  แต่แน่นอนครับต้องแลกมาด้วย จำนวน disk ที่ต้องใช้ controller ที่ต้องมีประสิทธิภาพ  ก็ต้องมาพิจารณากันล่ะครับว่าคุ้มค่าหรือไม่



ก็ชักจะยาวเกินไปแล้วครับ เอาเป็นว่า มาต่อกันใน RAID คืออะไร ภาค 3 เรื่อง Non-Standard RAID กันดีกว่าครับ


ที่มา:

http://www.pcguide.com/ref/hdd/perf/raid/levels/mult.htm
http://en.wikipedia.org/wiki/RAID
http://www.overclockzone.com/spin9/raid/index.html
http://en.wikipedia.org/wiki/Standard_RAID_levels
http://en.wikipedia.org/wiki/Nested_RAID_levels
http://en.wikipedia.org/wiki/Non-standard_RAID_levels



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

แสดงความคิดเห็น