วันพฤหัสบดีที่ 24 พฤศจิกายน พ.ศ. 2554

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

          จากที่ได้เขียนถึงเรื่อง RAID ภาคแรก Standard RAID  และ ภาค 2  Nested RAID ไปแล้ว คราวนี้มาพูดถึง Non-Standard RAID กันครับ

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

วันอังคารที่ 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



วันจันทร์ที่ 21 พฤศจิกายน พ.ศ. 2554

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

 RAID คืออะไร

       วันนี้มาพูดถึงเรื่องเทคโนโลยีหนึ่งที่ใช้กับ Hard Disk กัน  ยาวหน่อยครับ เพราะพยายามหาข้อมูลจาก web ต่างๆ ให้ครบถ้วน (ครบในปี 2554 แต่อนาคตก็ไม่ทราบว่าจะมีอะไรใหม่เพิ่มขึ้นนะครับ เทคโนโลยีก้าวไปไม่หยุดครับ)

       สมัยก่อนนั้นอุปกรณ์ Computer มีราคาแพงมากและแต่ละชิ้นก็ไม่ได้มีขนาดความจุ (Capacity)
ที่มากมายมหาศาลเท่าทุกวันนี้  เคยมีรุ่นพี่เค้าเล่าให้ฟังว่า สมัยก่อน (น่าจะซักปี 2520) ราคา RAM ตีซะ เม็ก (MB) ละพันบาท  คิดดูมี RAM ซัก 16MB ก็ โค-ตะ-ระ เท่แล้ว  แต่เดี๋ยวนี้ (2554) RAM 4GBไม่ถึงพันบาท  ไม่ต้องพูดถึง Hard Disk ที่เมื่อก่อนนี้ มี Hard Disk ก้อนละ 500 MB ก็เท่มากแล้ว ใครมี Hard Disk ก้อนละ 2GB อันนี้ต้องเป็นองค์กรใหญ่ระดับประเทศ แต่เดี๋ยวนี้เหรอ CD 1 แผ่นยังมีความจุ 700MB, DVD ยังมีความจุ 4.7GB  แล้วเลย (นี่ยังไม่พูดถึง Blueray นะเนี่ย)

        ฉะนั้น เมื่ออุปกรณ์แพง ก็ต้องหาวิธีว่าจะทำยังไงให้ใช้อุปกรณ์ได้คุ้มค่าที่สุดโดยได้เนื้อที่ความจุมากที่สุด ทีมนักวิจัยในมหาวิทยาลัยแคลิฟอร์เนีย วิทยาเขตเบิร์กเลย์ (University of California at Berkeley) เป็นทีมแรกๆ ที่ได้ทำการวิจัยเกี่ยวกับเรื่องนี้ (ในปีค.ศ.1987 หรือปีพ.ศ. 2530)  โดยใช้แนวคิดว่าจะเอาพื้นที่ของ Hard Disk หลายๆ ก้อน มาต่อกัน (หรือที่เรียกว่า Array) เพื่อให้พื้นที่เพิ่มขึ้นและยังเพิ่มความเร็วในการอ่าน-เขียน ข้อมูลลง Disk และยังสามารถป้องกันในกรณีมี Hard Disk เสียได้อีกด้วย จึงเป็นที่มาของแนวคิด Redundant Array of Inexpensive Disks,  RAID   นี่คือที่มาเริ่มแรกของคำว่า RAID แต่ปัจจุบันได้มีการเปลี่ยนจากคำว่า Inexpensive เป็น Independent แทน (คงเพราะว่า Inexpensive มันดูอนาถาไปมั้งครับ, ผู้เฒ่าเต่า)  ตัว I ใน RAID ก็เลยเรียกได้ 2 แบบ ไม่มีอันไหนผิด

       ในยุคเริ่มแรกของ RAID นั้นก็ยังถือว่าแพงเกินไปสำหรับผู้ใช้งานทั่วไป จึงมีใช้ในระดับองค์กรเท่านั้น  ส่วนใน พ.ศ. นี้(2554) ก็ได้มีผู้ผลิต Mainboard สำหรับ PC ใส่ความสามารถพิเศษด้าน RAID ลงใน Mainboard บางรุ่นของตัวเองแล้ว สำหรับผู้ใช้ที่เรียกได้ว่าเป็น Power user คือผู้ใช้ที่ต้องการความเร็ว ประสิทธิภาพ และการป้องกันข้อมูลเสียหายเนื่องจาก Disk เสีย ก็มองว่าข้อมูลที่มีอยู่มีมูลค่ามากกว่า Disk ที่ต้องเพิ่มขึ้นมา ก็ถือว่าคุ้มค่ามากที่เดียว

       เกริ่นออกทะเลมานาน ก็มาเข้าเรื่องกันดีกว่า ก่อนอื่นก็ต้องมารู้จักคำศัพท์ที่จะใช้กันก่อนเพื่อจะได้เข้าใจตรงกัน


  • Array : ความหมายในที่นี้หมายถึงชุดของ Disk ที่เอามาใช้ใน RAID ซึ่งจะมีการจัดการในรูปแบบเดียวกัน (แต่ถ้ามองกันในแนวคณิตศาสตร์ ก็คือ Array ได้เหมือนกันแต่ที่มอง disk แทนตัวเลข) แนวคิดเรื่อง Array นี้ใช้เป็นโครงสร้างพื้นฐานของ RAID ลองนึิกภาพของ Array ในคณิตศาสตร์นะครับ Array มีมิติ  Array ที่ใช้ใน RAID ก็มีมิติเหมือนกัน แล้วแต่ว่าจะใช้ RAID ประเภทไหน
  • RAID level :  เป็น level ของ RAID ที่จะสร้าง โดยแต่ละ level จะมีลักษณะการทำงาน การจัดเก็บข้อมูล การป้องกันข้อมูลเสียหาย เหมือนกันบ้าง ต่างกันบ้าง แล้วแต่ level เดี๋ยวค่อยมาดูกัน
  • Physical Drive : ก็คือ disk เป็นก้อนๆ ที่เราจะใช้ในการสร้าง RAID นี่ล่ะครับ
  • Physical Array : อันนี้เป็น Hardware ที่ใช้จัดเก็บ disk ที่เราจะสร้าง RAID ไม่ต้องคิดมากครับ มองง่ายๆ ในเครื่อง PC ของเรา มีช่องใส่ disk ที่เรียงๆ กัน ก็เป็น Array แล้ว แค่มี controller มาเสียบอีกทีก็เป็น Physical Array แล้ว หรืออีกแบบคือเป็น Array แบบแพงๆ ก็เป็นแบบในรูปครับ คือเป็น Hardware สำหรับใส่ disk โดยเฉพาะ
Physical Array
  • Logical Disk :  ก็คือ Physical Drive หรือ Physical Array ที่ผ่านการทำ RAID แล้ว ก็จะเป็นลักษณะเสมือนเป็น disk ก้อนหนึ่ง แต่ในนั้นประกอบด้วย disk อีกหลายๆ ก้อน เลยเรียก logical  บางครั้งก็เรียก  Logical Volume แล้วแต่ยี่ห้อของ RAID Controller
  • Logical Array : คล้ายๆ Logical Disk แต่ใช้กับการทำ RAID ที่มีลักษณะซับซ้อนมากๆ คือมีการแบ่ง Physical Array ไปใส่ให้กับ Logical Array หนึ่ง หรือรวมเอา Physical Array หลายๆ ตัวเข้ามาเป็น Logical Array เดียว
  • Mirror : ในด้านการทำ RAID ไม่ได้หมายถึงกระจกเป็นแผ่นๆ นะครับ แต่หมายถึงการป้องกันความเสียหายของข้อมูลเนื่องจาก disk เสียวิธีหนึ่ง คือ ให้ disk  2 ชุด มีข้อมูลเหมือนกันทุกประการหากมีก้อนใดก้อนหนึ่งเสีย ระบบยังทำงานต่อไปได้

  • Duplex : มีความคล้ายกับ Mirror มากคือ ให้ disk 2 ชุดมีข้อมูลเหมือนกัน แต่เพิ่มตรงที่ให้มี controller 2 ตัวด้วยครับ ป้องกันเรื่อง controller เสียด้วยครับ การทำ duplex นี้มักทำใน software RAID หรือ Hardware RAID แบบ external ดูรูปเทียบกับ Mirror แล้วจะเข้าใจครับ

  • Stripe : เป็นวิธีการจัดการกับข้อมูลโดย Controller จะแบ่งข้อมูลออกเป็นชุดๆ (ก็เลยเรียก striping แปลว่าเป็นแถบๆ) แล้วแบ่งไปเขียนลง Disk หลายๆ ก้อน พร้อมกันเพื่อเพิ่มความเร็วในการอ่านและเขียน

  • Parity : เป็นวิธีการป้องกันข้อมูลจากการที่ disk เสียวิธีหนึ่ง โดยจะนำข้อมูลมาคำนวณออกมาเป็นค่าค่าหนึ่ง ด้วยวิธีการทางตรรกศาสตร์ (ก็คือการ exclusive OR, XOR) เก็บไว้ เรียกว่า parity  หากมีความเสียหายเกิดขึ้นกับ disk โดยยังอยู่ในขอบเขตที่กำหนดของ RAID level นั้น เช่น RAID 5 disk เสียได้ 1 ก้อน จะสามารถกู้ข้อมูลกลับมาได้ แต่ถ้าเกินก็ไม่สามารถกู้คืนได้
  • RAID Controller :  เป็นตัวจัดการว่าจะให้ชุด RAID อ่านหรือเขียนข้อมูลอย่างไรสามารถเป็นได้ทั้ง Hardware และ Software 
    • Hardware RAID :  เป็นอุปกรณ์สำหรับจัดการกับ RAID โดยเฉพาะ ไม่ว่าจะเป็น จัดการเรื่องการแบ่งข้อมูลที่จะเขียนลง RAID การอ่านข้อมูลกลับ การกู้คืนข้อมูลในกรณีมี disk เสีย ฯลฯ   Hardware RAID แบ่งได้คร่าวๆคือ
      • แบบที่ฝังลงใน Mainboard หรือเป็น Card ที่เสียบเข้ากับ PCI บนเครื่องเหมาะกับการทำ RAID ที่ไม่ซับซ้อน และมี disk ไม่มาก
      • แบบ External   Hardware RAID ที่ดีมากๆ จะมีลักษณะคล้ายๆ คอมพิวเตอร์เครื่องหนึ่งเลยทีเดียว แต่ทำหน้าที่เฉพาะจัดการเรื่อง RAID ที่ซับซ้อนมากๆ ได้ อย่างรวดเร็วและมีประสิทธิภาพ ซึ่งราคาก็จะแพงตามความสามารถไปด้วย
    • Software RAID : เป็น software ที่พัฒนาขึ้นเพื่อจัดการกับเรื่อง RAID โดยเฉพาะ อาจแถมมากับ OS เลยก็ได้ เช่น Windows server, UNIX, Linux  มีข้อดีคือราคาถูกกว่า Hardware RAID  ง่ายในการจัดการกว่า เพียงแค่ติดตั้ง software ในเครื่อง server ที่ต้องการทำ RAID (หรือถ้ามากับ OS แล้วก็ไม่ต้องติดตั้ง)ก็สามารถจัดการ RAID ได้แล้ว แต่ก็มีข้อเสียคือ เกิดคอขวดเมื่อเครื่องที่ลง software RAID มี I/O น้อย  และ RAID บาง level ยังกินทรัพยากรของ CPU มากอีกด้วย  ดังนั้นหากระบบที่เราจะทำ RAID ต้องการ performance มาก ต้องพิจารณาเรื่องการใช้ software RAID ให้ดี

           กว่าจะได้คำศัพท์ที่ต้องใช้ครบ เล่นเอาเกือบแย่ คำศัพท์ที่ใช้ใน RAID ยังมีอีกเยอะครับ แต่เราเอาแค่พอให้อ่านแล้วเข้าใจก็พอครับ  ทีนี้มาดูว่า RAID แบ่งเป็นกี่ประเภทบ้างนะครับ ใน  Wikipedia แบ่ง RAID ออกเป็น 2 ประเภทครับ คือ


1  Standard level  คือ RAID level ที่เป็น open standard ไม่มีบริษัทใดเป็นเจ้าของ
     1.1 Single level
      1.2 Multiple level หรือ Nested level
2  Non-Standard level คือ RAID level ที่มีลิขสิทธิ์คิดค้นโดยบริษัทใดบริษัทหนึ่ง

มาดูกันที่ Standard level กันก่อนเลยครับ


1  Standard Level


    1.1  Single Level  : ก็คือ RAID ที่สร้างขึ้น level เดียว ไม่มีการไปรวมกับ RAID level อื่น (สังเกตจากเลขท้ายคำว่า RAID จะเป็นเลขตัวเดียว)

RAID 0

        เป็นการนำพื้นที่ของ Hard Disk ตั้งแต่ 2 ก้อนขึ้นไปมาต่อกันเป็น Array ขนาดของพื้นที่หลังทำ RAID 0 แล้วจะมีขนาดเท่ากับพื้นที่ของ Disk ทุกก้อนรวมกัน  ข้อมูลที่จะเขียนลง Disk จะถูกแบ่งออกเป็นชิ้นๆ แต่ละชิ้นจะมีขนาดที่แน่นอนตามขนาดของ "stripe size" ที่กำหนดไว้ (default
คือ 16 kb) แล้วเขียนลง Hard Disk แต่ละก้อนที่ใช้ทำ RAID 0 (จึงเรียกว่า Stripe)  แต่วิธีการนี้ไม่มีการป้องกันข้อมูลเสียหายเนื่องจาก Disk เสีย ถ้ามี Disk ก้อนใดเสีย ข้อมูลก็จะเสียหายทั้งหมด  จำนวน Disk ที่น้อยที่สุดที่สามารถสร้าง RAID 0 ได้ คือ 2 ก้อน
แต่มีการกล่าวกันว่าถ้าใช้ Disk  2 ก้อนก็จะมีความเสี่ยงที่ข้อมูลจะเสียหายเนื่องจาก Disk เสียเพิ่มเป็น 2 เท่า เมื่อเทียบกับ Disk ก้อนเดียวและยิ่งมีจำนวนก้อนที่มากขึ้นก็ยิ่งมีความเสี่ยงมากขึ้นด้วย




       จากรูปจะเห็นว่า RAID 0 ที่อยู่ในรูปใช้ Disk ทั้งหมด 4 ก้อนเมื่อมีข้อมูลเข้ามาที่ RAID 0 ข้อมูลจะถูกแบ่งออกเป็นชิ้นๆ ตามที่กำหนดไว้ในค่า "stripe size" แล้วนำแต่ละชิ้นไปเขียนลงใน Disk ที่ตำแหน่ง Block เดียวกันของ Disk แต่ละก้อนที่ใช้สร้าง RAID 0 คือ  เขียนชิ้น A ลงใน Block ที่ 1 ของ Disk ก้อนที่ 1 เขียนชิ้น B ลงใน Block ที่ 1 ของ Disk ก้อนที่ 2   เขียนชิ้น C ลงใน Block ที่ 1 ของ Disk ก้อนที่ 3 เขียนชิ้น D ลงใน Block ที่ 1 ของ Disk ก้อนที่ 4 เขียนชิ้น E ลงใน Block ที่ 2 ของ Disk ก้อนที่ 1 เขียนชิ้น F ลงใน Block ที่ 2 ของ Disk ก้อนที่ 2   ทำเช่นนี้สลับกันไปเรื่อยๆ จนกว่าจะครบทุกชิ้น โดยการเขียนนี้ จะเกิดขึ้นพร้อมกันทุกก้อน ความเร็วจึงเพิ่มขึ้นเป็น 4 เท่าของ Disk ก้อนเดียว

ข้อดี

    1 การอ่านและเขียนข้อมูลมีความเร็วมากขึ้น (Bandwidth หรือ I/O เพิ่มขึ้น) ตามจำนวน Disk ที่นำมาสร้าง RAID 0
    2 ได้พื้นที่เพิ่มขึ้นใกล้เคียงกับพื้นที่รวมของ Disk ทุกก้อนที่นำมาสร้าง RAID 0

ข้อด้อย

    1 ไม่มีการป้องกันข้อมูลกรณี Disk เสีย เมื่อมี Disk ก้อนใดก้อนหนึ่งใน RAID 0 เสีย ข้อมูลทั้งหมดใน RAID0 จะเสียหายด้วย

    2 ยิ่งมี Disk มากก็ยิ่งเพิ่มความเสี่ยงที่ข้อมูลจะเสียหายเนื่องจาก Disk เสีย


RAID 1

    RAID level นี้เรียกได้อีกอย่างว่า Mirroring  ต้องใช้ Disk  2 ก้อน ที่มีขนาดเท่ากัน ลักษณะการทำงานคล้ายการ copy ทุกสิ่งทุกอย่างของ Disk ก้อนหนึ่งไปยังอีกก้อนหนึ่ง อาจจะใช้ Hardware RAID หรือ Software RAID ก็ได้  เนื้อที่ที่ได้หลังจากทำ RAID 1 แล้วจะเหลือพื้นที่ของ disk แค่ก้อนเดียว เมื่อเทียบกับ RAID 0 ที่สร้างจาก disk 2 ก้อน ก็จะลดพื้นที่ลงครึ่งหนึ่งเลยทีเดียว แต่เมื่อมี disk ก้อนใดก้อนหนึ่งเสีย ก็จะมีการอ่านหรือเขียนบน disk ก้อนที่ไม่เสียหายและใช้ก้อนนั้นทำงานแทน เมื่อเราเปลี่ยน disk ที่เสียออกเอาก้อนใหม่มาใส่  ถ้าเป็น Hardware RAID ก็จะทำการ Duplicate ข้อมูลจากก้อนที่ทำงานอยู่มาใส่ก้อนใหม่ให้อัตโนมัติ ถ้าเป็น Software RAID เราก็ไปใช้คำสั่งให้ทำการ Duplicate ข้อมูล RAID 1 ก็จะกลับมาสมบูรณ์ เหมือนเดิม RAID level นี้ เหมาะกับงานที่ไม่ต้องการ performance และพื้นที่เพิ่มจากการทำ RAID แต่ต้องการป้องกันความเสียหายของข้อมูลเนื่องจาก Disk เสีย




ข้อดี

    1  มีการป้องกันความเสียหายที่เกิดขึ้นกับข้อมูลเนื่องจาก disk เสีย

ข้อด้อย

    1 พื้นที่ที่ใช้ในการเก็บข้อมูลหลังทำ RAID แล้วลดลง ครึ่งหนึ่ง (จาก disk 2 ก้อน ทำ RAID แล้วเหลือพื้นที่ก้อนเดียว)
    2 ไม่เพิ่ม performance จากการทำ RAID (I/O หรือ Bandwidth เท่าเดิม)



RAID 2

        เรียกอีกอย่าง(ให้ยากๆ) ว่า Bit-level striping with Hamming code (ECC, Error Correcting Code)  การทำงานของ RAID 2 นี้จะมีการแบ่งข้อมูลออกเป็นชิ้นๆ ในระดับ bit (เลยทีเดียว) แล้วมีการคำนวณค่า redundant bit โดยใช้วิธี Hamming code ก่อนเขียนข้อมูลทีละ bit แยกกันลง ส่วนที่เป็น data disk (จากในรูปจะเห็นเป็นส่วนที่เป็นสีม่วง) และเขียนค่า redundant bit ที่คำนวณได้ลงในส่วนที่เรียกว่า ECC disk (ในรูปส่วนที่เป็นสีแดง)  และเมื่อมีการอ่านข้อมูล ก็จะมีการอ่านส่วน ECC ขึ้นมาคำนวณกลับด้วยว่าข้อมูลที่อ่านขึ้นมาไม่มี error ใดๆ   แต่ถ้ามี error เกิดขึ้น 1 bit ECC ก็ยังสามารถแก้กลับได้โดยอัตโนมัติ  แต่ปัจจุบันผู้ผลิตได้มีการรวมวิธี ECC นี้ไว้ภายใน Hard Disk เรียบร้อยแล้ว      
        เนื่องจากความยุ่งยากในการทำงานและต้องใช้ Disk จำนวนมากในการสร้าง RAID ทำให้ความนิยมของ RAID level นี้ลดลงจนไม่มีผู้ใดใช้แล้ว และยังมีข้อเสียที่ว่า เมื่อ ECC Diskเสีย ก็จะไม่สามารถอ่านหรือเขียนข้อมูลได้อีก เนื่องจากไม่สามารถตรวจสอบได้ว่า มี error bit หรือไม่


ข้อดี

       1  มีการคำนวณ ECC เพื่อป้องกันความผิดพลาดของข้อมูลในระดับ bit และสามารถแก้ไขข้อผิดพลาดได้เมื่อมีข้อผิดพลาด 1 bit

ข้อด้อย

       1 มีความยุ่งยากในการทำงานเนื่องจากต้องคำนวณข้อมูลออกมาเป็น ECC ก่อนจึงเป็นคอขวดในการเขียนและอ่าน
       2  ต้องใช้ Disk จำนวนมากในการสร้าง RAID level นี้ เช่น ถ้าต้องการพื้นที่ Disk 10 ก้อน ต้องเพิ่ม ECC disk 4 ก้อน รวมเป็น 14 ก้อน หรือถ้าต้องการพื้นที่ Disk 32 ก้อน ต้องเพิ่ม ECC disk 7 ก้อน รวมเป็น 39 ก้อน


RAID 3

       เรียกอีกอย่างว่า Byte-level striping with dedicated parity การทำงานของ RAID 3 จะแบ่ง (stripe) ข้อมูลออกเป็นส่วนๆ ในระดับ byte และจัดเป็นกลุ่มๆ กลุ่มละไม่เกิน 1024 byte ตามจำนวน disk ที่นำมาสร้าง RAID 3 แล้วเขียนลงใน disk  จากนั้นจะมีการคำนวณค่า parity ของข้อมูลชุดนั้น ใส่ลงใน disk อีก 1 ก้อนเพื่อทำเป็น parity disk เมื่อมี disk ก้อนใดก้อนหนึ่งเสียก็จะสามารถกู้คืนมาได้ แม้ก้อนนั้นจะเป็น parity disk ก็ตาม จึงไม่เกิด single point of failure เนื่องจาก parity disk แต่ RAID 3 ทั้งชุด จะมีdiskเสียในขณะใดขณะหนึ่งได้แค่ก้อนเดียว ถ้าเกินก็ไม่สามารถกู้ข้อมูลคืนมาได้
       แต่เนื่องจาก RAID 3 มีการเก็บ parity ไว้ใน disk แค่ก้อนเดียวจึงกลายเป็นคอขวดเพราะทุกครั้งที่มีการเขียนข้อมูล parity จะเขียนลงใน parity disk แค่ก้อนเดียว ถ้ามีการเขียนมากๆ
ก็จะทำให้ประสิทธิภาพลดลง  RAID 3 ต้องใช้ disk ในการสร้างต้องเป็น disk ที่มีขนาดเท่ากันอย่างน้อย 3 ก้อน และจำเป็นต้องใช้ Hardware RAID ในการสร้าง พื้นที่ที่ได้หลังจากสร้าง RAID แล้วจะหายไป 1 ก้อน เนื่องจากเอาไปทำ parity disk  เช่น ใช้ disk 5 ก้อน ก้อนละ 60GB จะได้พื้นที่ใช้งานเป็น 60GB (5 - 1) = 240GB (อีก 60GB เป็นก้อน parity disk)





ข้อดี

      1  มีการป้องกันความเสียหายเนื่องจาก disk เสีย (มีการคำนวณ parity ไปเก็บใน parity disk)
      2  ได้ใช้พื้นที่ของ disk รวมเป็น array หลังจากการทำ RAID

ข้อด้อย

      1 เกิดคอขวดขณะมีการเขียนข้อมูลเนื่องจากเขียน parity ลง parity disk ก้อนเดียว
      2  เสียพื้นที่ disk  เพื่อสร้าง parity disk, จำนวน disk ยิ่งน้อยยิ่งมีอัตราส่วนการเสียพื้นที่มาก


RAID 4

       เรียกอีกอย่างว่า Block-level striping with dedicated parity  มีลักษณะคล้าย RAID 3 แล้วพัฒนาในด้านลักษณะการหั่น(stripe) ข้อมูล โดย RAID 4 จะหั่นข้อมูลในระดับ block  เพื่อเพิ่ม performance  และ data disk แต่ละก้อนทำงานเป็นอิสระต่อกัน (independent)  ช่วยเพิ่มความเร็วในการเขียนมากขึ้น แต่ยังคงมีการคำนวณ parity และเก็บไว้ใน parity disk ก้อนเดียวอยู่  ด้าน performance เมื่อเทียบกับ RAID 3 แล้วถือว่ามี performance ดีกว่า แต่ก็ยังติดเรื่องคอขวดของการเขียน parity และเช่นกัน ถ้ามี disk เสีย 1 ก้อนแม้จะเป็น parity disk RAID 4 ก็ยังคงสามารถกู้ข้อมูลกลับคืนมาได้

       จำนวน disk ที่ใช้สร้าง RAID 4 ต้องใช้ disk ที่มีขนาดเท่ากัน อย่างน้อย 3 ก้อน และพื้นที่ก็จะหายไป 1 ก้อนเนื่องจากนำไปใช้เป็น parity disk และจำเป็นต้องใช้  Hardware RAID ในการสร้าง





ข้อดี

      1  มีการป้องกันความเสียหายเนื่องจาก disk เสีย (มีการคำนวณ parity ไปเก็บใน parity disk) เช่นเดียวกับ RAID 3
      2  ได้ใช้พื้นที่ของ disk รวมเป็น array หลังจากการทำ RAID
      3  มีการเขียนข้อมูลแบบ Block ทำให้เพิ่มความเร็วในการเขียน

ข้อด้อย

      1 ยังคงเกิดคอขวดขณะมีการเขียนข้อมูลเนื่องจากเขียน parity ลง parity disk ก้อนเดียว
      2  เสียพื้นที่ disk  เพื่อสร้าง parity disk,จำนวน disk ยิ่งน้อยยิ่งมีอัตราส่วนการเสียพื้นที่มาก


RAID 5

       เป็น RAID ที่ได้รับความนิยมมากในบรรดา RAID ทั้งหลาย เรียกอีกอย่างว่า block-level striping with distributed parity เป็นการปรับปรุงเรื่องคอขวดของ RAID 4 โดยกระจาย parity ไปไว้ใน disk ทุกก้อนแทนการเอาไว้ใน parity disk แค่ก้อนเดียว
       จำนวน disk ที่ใช้สร้าง RAID 5 ต้องใช้ disk ที่มีขนาดเท่ากัน อย่างน้อย 3 ก้อน และพื้นที่ก็จะหายไป 1 ก้อนเสมอ (ไม่ว่าจะใช้กี่ก้อนก็เสียพื้นที่ 1 ก้อนเสมอ) เนื่องจากใช้เป็น parity  สามารถใช้  Hardware RAID หรือ Software RAID ในการสร้างได้ แต่ Software RAID จะต้องใช้ CPU ในการคำนวณมาก ทำให้มีผลกับ performance โดยรวมของระบบ  Software RAID จึงไม่เหมาะกับระบบที่ต้องมีการอ่านและเขียนกันตลอดเวลา เช่น Database   ส่วน Hardware RAID ในปัจจุบัน พัฒนาขึ้นมากจนสามารถรองรับระบบที่ต้องมีการอ่านและเขียนแบบ Database ได้ดีมากแล้ว และยิ่งถ้าเป็น SAN หรือ external storage ก็ยิ่งสามารถรองรับได้ดี (แต่ราคามันไม่รองรับกับกระเป๋าเราเท่าไหร่ครับ)

        สิ่งที่ต้องคำนึงถึงอีกอย่างของ RAID 5 คือ มี parity เพียงชุดเดียว แม้จะกระจายไปใน disk ทุกก้อนก็ตาม RAID 5 จะสามารถกู้ข้อมูลคืนมาได้เมื่อมี disk เสียในขณะใดขณะหนึ่งแค่ก้อนเดียว ถ้าเกินก็ไม่สามารถกู้คืนได้  และยิ่งถ้ามีจำนวน disk ที่ใช้สร้าง RAID 5 มาก ก็ยิ่งเพิ่มโอกาสที่จะทำให้ disk เสียมากกว่า 1 ก้อนได้มาก ลองคิดดูว่ามี disk เสีย 1 ก้อน แล้วเราเปลี่ยน disk ก้อนใหม่ใส่  ขณะกำลัง rebuid ข้อมูลกลับไปใส่ใน disk ก้อนใหม่ ปรากฎว่ามี disk อีกก้อนเสีย ข้อมูลก็จะเสียหายจนไม่สามารถกู้คืนมาได้ เพราะ ก้อนใหม่ก็ยัง rebuild ไม่เสร็จ ก้อน ที่เก็บ data + parity ยังมาเสียอีก ทำให้คำนวณ data + parity กลับไปใส่ให้ก้อนใหม่ไม่ได้

       จากรูปแสดงให้เห็น file ขนาดต่างๆ ที่เก็บลงใน disk แบบ RAID 5 ที่ใช้ disk จำนวน 4 ก้อน และใช้ stripe size ขนาด 16KB
         
        สีแดง : เป็น file ขนาด 4KB               
     สีน้ำเงิน : เป็น file ขนาด 20KB
     สีเขียว : เป็น file ขนาด 100KB
     สีชมพู : เป็น file ขนาด 500KB               
     สีเทา : เป็นส่วนของ parity

ข้อดี

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

ข้อด้อย

      1  เนื่องจากยังคงมีการคำนวณ parity จึงต้องใช้ความสามารถของ Hardware หรือ Software RAID มาก
      2  เสียพื้นที่ disk  เพื่อสร้าง parity, จำนวน disk ยิ่งน้อยยิ่งมีอัตราส่วนการเสียพื้นที่มาก


RAID 6

       พัฒนาจาก RAID 5 โดยเพิ่ม parity อีก 1 ชุด จึงเรียกอีกอย่างว่า block-level striping with double distributed parity การทำงานคล้าย RAID 5  แต่เพิ่ม parity ขึ้นมาอีก 1 ชุด (รวมเป็น 2 ชุด) โดยใช้วิธีคำนวณต่างกันไป และมอง parity ชุดแรกเสมือนเป็นข้อมูล  เก็บกระจายไปใน disk ทุกก้อนที่ใช้สร้าง RAID  วัตถุประสงค์ของ RAID 6 ก็เพื่อเพิ่มการป้องกัน disk เสียให้มากขึ้น คือ RAID 6 สามารถรองรับ disk เสียได้พร้อมกัน 2 ก้อน โดยยังสามารถกู้ข้อมูลคืนมาได้  แต่ก็ต้องแลกด้วย performance ที่ลดลงอย่างเห็นได้ชัด เพราะต้องคำนวณ parity ถึง 2 ชุด แต่ถ้ามีจำนวน disk เพิ่มขึ้นจะช่วยให้ performance เพิ่มขึ้นเล็กน้อย

       จำนวน disk ที่ใช้สร้าง RAID 6 ต้องใช้ disk ที่มีขนาดเท่ากัน อย่างน้อย 4 ก้อน และพื้นที่ก็จะหายไป 2 ก้อนเสมอ (ไม่ว่าจะใช้กี่ก้อนก็เสียพื้นที่ 2 ก้อนเสมอ) เนื่องจากใช้เป็น parity 2 ชุด ต้องใช้  Hardware RAID รุ่นใหม่ๆ ในการสร้าง ส่วน Software RAID จะต้องใช้ CPU ในการคำนวณมาก ทำให้มีผลกับ performance โดยรวมของระบบจึงไม่นิยมใช้  หรือข้ามไปใช้ SAN หรือ external storage ก็จะทำให้ performance ดีขึ้นได้บ้าง
       ด้วยเหตุที่ต้องสูญเสียพื้นที่ disk และ ต้องใช้ Hardware RAID ที่มีประสิทธิภาพสูงมาก จึงมีการหันไปใช้วิธีลูกผสม แทนการใช้ RAID 6 เช่น RAID 1+0 เป็นต้น


        จากรูปแสดงให้เห็น file ขนาดต่างๆ ที่เก็บลงใน disk แบบ RAID 6 ที่ใช้ disk จำนวน 4 ก้อน และใช้ stripe size ขนาด 16KB
         
        สีแดง : เป็น file ขนาด 4KB              
     สีน้ำเงิน : เป็น file ขนาด 20KB              
     สีเขียว : เป็น file ขนาด 100KB               
     สีชมพู : เป็น file ขนาด 500KB               
     สีเทา : เป็นส่วนของ parity จะเห็นว่ามี parity 2 ชุด


ข้อดี

       1  เพิ่มการป้องกันข้อมูลเนื่องจาก disk เสียหายโดยสร้างเป็น parity 2 ชุด

ข้อด้อย

       1  ต้องใช้ความสามารถของ Hardware RAID อย่างมากในการคำนวณ parity ทั้งสองชุด performance จึงลดลงอย่างเห็นได้ชัด
       2  เสียพื้นที่สำหรับเป็น parity จำนวนมาก ทำให้ต้นทุนสูง จำนวน disk ยิ่งน้อยยิ่งมีอัตราส่วนการเสียพื้นที่มาก


Standard RAID ก็มีประมาณนี้ครับ เดี๋ยวค่อยมาว่าต่อเรื่อง Nested RAID และ Non-Standard RAID

ที่มา :
http://www.pcguide.com/ref/hdd/perf/raid/levels/single.htm
http://en.wikipedia.org/wiki/RAID
http://www.overclockzone.com/spin9/raid/index.html
http://www.ensthai.com/tip_trick/page/overall_raid.php
http://www.nextproject.net/contents/default.aspx?00030
http://en.wikipedia.org/wiki/Standard_RAID_levels

วันศุกร์ที่ 11 พฤศจิกายน พ.ศ. 2554

บล็อก คืออะไร

               ก่อนจะเริ่มทำบล็อก (Blog) เราก็ต้องมาทำความรู้จักกันก่อนว่าสิ่งที่เราจะทำนั้นมันคืออะไร  จากที่ใช้ google search ยิ่งหาก็ยิ่งเจอ ยิ่งเจอก็ยิ่งไม่เข้าใจ ว่ามันแตกต่างจาก Webboard (ฝรั่งเค้าเรียก Forum) หรือ Web Diary อย่างไร ต้องหาเพิ่มเพื่อที่จะได้ความกระจ่าง อ่านไปอ่านมาก็เลยสรุปมาจาก หลายๆ เว็บพอเป็นอันเข้าใจ ได้ตามนี้ครับ

        แล้ว Blog มันคืออะไรล่ะครับ   จาก link ที่ผมอ่านมา แล้วเอามาสรุปสั้นๆ กวนๆ ก็คือเว็บรูปแบบหนึ่ง (ที่มีการเขียนความคิดเห็นหรือสิ่งที่ตัวเองสนใจลง แล้วเผยแพร่ให้สาธารณชนได้อ่าน (ได้เสพ ได้ซึมซับ ฯลฯ))  แต่ถ้าจะให้อธิบายยาวๆ เลยก็ต้องไล่เรียงที่มาที่ไปกันก่อนครับ  Blog แผลงมาจาก คำว่า Weblog ซึ่งก็มาจากคำ 2 คำคือ
  • Web (ถ้าแปลจาก google translate แปลว่าไยแมงมุม ซึ่งมันก็คือที่มาของ World Wide Web (www)นั่นล่ะครับ) กับคำว่า
  • Log (มีหลายความหมายครับ เช่น ท่อนซุง, ลอการิทึม, หน่วยวัดปริมาตรของฮิบบรู (จาก http://ardictionary.com/Log/4351)  และ ความหมายที่คิดว่าตรงที่สุดน่าจะเป็น การบันทึกเหตุการณ์ที่เกิดขึ้นจากการทดลอง การเดินเรือหรือเครื่องบิน ในช่วงเวลาที่กำหนด  เมื่อเอามาแปลให้สอดคล้องกับ IT ก็แปลว่าการบันทึกเหตุการณ์ที่เกิดขึ้นในช่วงเวลาหนึ่งๆ นั่นเอง  เฮ่ๆๆ แต่ออกตัวไว้ก่อนนะครับ เป็นความคิดของผมเอง อย่าเพิ่งเชื่อจนกว่าจะได้หาข้อมูลมาสรุปเอง)

แล้วทีนี้คำว่า Blog ออกมาได้ไง จากความเข้าใจ น่าจะเป็นไปได้ 2 แบบครับคือ
  • การออกเสียงของฝรั่งที่มีการออกเสียงควบระหว่างพยางค์ก็เลยควบเสียงตัว B กับเสียงตัว L ก็เลยออกมาเป็น web-blog พูดไปพูดมาก็เลยลงอีกเหลือแค่คำว่า  Blog
  • ตามแนวจินตนาการอันเจิดของคน IT ครับ ไม่อยากให้มันจำเจ มองคำว่า Weblog มองไปมองมาก็เลยแยกออกเป็น 2 คำซะเลยว่า  We blog  (แปลตรงๆ ว่า พวกเราทำการบล็อก)  จากนั้น คำว่า Blog ก็เลยกลายเป็นคำกิริยาไป (ซะงั้น)  แล้วยังมาขยายต่ออีก ว่าคำนามของกิริยา Blog คือผู้ทำการ blog ก็จะกลายเป็น Blogger  ไป  

แล้วคำว่า Blog กับ Blogger ก็ได้รับความนิยมขึ้นมาใช้จนติดปากกันในปัจจุบัน ที่มาที่ไปก็จบด้วยประการฉะนี้นี่เอง
        แต่ก็ยังไม่รู้ว่าแล้ว Blog มันคืออะไรล่ะ  ถ้าเอามาจากความหมายสั้นๆ ด้านบนมาขยายความ  Blog ก็เป็นเว็บรูปแบบหนึ่งที่เราไม่จำเป็นต้องมีความรู้ในการสร้างเว็บ เนื่องจากมี Blog Software (บางทีก็เรียก Blogware) เป็นตัวจัดการให้ และยังมี template หรือลูกเล่นอื่นๆ แล้วแต่ Software หรือผู้ให้บริการ Blog แค่เราเป็นคนใส่เนื้อหา (Content) ที่เราต้องการเผยแพร่ โดยมีวัตถุประสงค์ที่แน่นอน เช่นเรื่อง Technology, เรื่องการเมือง, เรื่องหนัง ฯลฯ (หรือไม่เผยแพร่ก็ได้ เอาไว้อ่านเอง) ลงในพื้นที่ที่เค้ากำหนดให้เราเขียน (หรือเรียกว่า สร้าง Blog) แล้ว software ก็จะจัดเนื้อหานั้นๆจะมีการเรียงลำดับเวลาการเขียนโดยแสดงข้อมูลล่าสุดก่อน
ในแต่ละ page จะแสดงกี่หัวข้อก็ขึ้นกับ Blog ค่ายนั้นๆ หรือการปรับแต่งของเจ้าของ Blog (หรือที่เรียกว่า Blogger)  Blog นี้ยังสามารถใส่ ภาพ link หรือแม้แต่ Video ลงไปด้วยได้ (ที่พบบ่อยๆ คือเอา video ไปฝากใน Youtube แล้วเอา Link จากปุ่ม Share ใต้ video มาแบะ ใน Blog)
          ข้อเด่นอีกอย่างของ Blog คือมีส่วนที่ให้ผู้ที่เข้ามาอ่านสามารถเสนอข้อคิดเห็นได้ด้วย โดยจะอยู่ใน Comment ด้านล่างของหัวข้อนั้นๆ (แล้วมันต่างกับ Webboard หรือ Forum ยังไงล่ะ...เดี๋ยวค่อยมาว่ากัน)  ความนิยมใน Blog ก็มีมาขึ้นเรื่อยๆ  เนื่องจาก Blogger สามารถเสนอข้อคิดเห็น สิ่งที่อยากบอกให้โลกรู้ (ก็พอเรา publish หัวข้อของเราแล้ว ใครก็ตามในโลกนี้ ที่สามารถใช้ Internet ได้(หรือแม้แต่นอกโลกถ้ามีสัญญาณ Internet นะ) แล้ว search หัวข้อของเราเจอก็สามารถอ่านได้ (ถ้าอ่านภาษาไทยออกนะหรือจะขั้นเทพ publish เป็นภาษาอังกฤษก็ สวด-ยวด เลยครับ)) หรือบันทึกต่างๆ ที่ได้ไปประสบพบมา ประสบการณ์ที่อยากบันทึกไว้ (กันลืมก็มี) หรือแม้แต่บริษัทห้างร้านต่างๆ ก็สามารถใช้ Blog ในการประชาสัมพันธ์ห้างร้าน สินค้าหรือกิจกรรมที่บริษัทนั้นๆ ได้ทำ

แล้ว Blog ต่างอะไรกับ Online Diary หรือ Web Diary ล่ะ

          search ข้อมูลมาอ่านแล้วงงครับ ไม่รู้ว่ามันต่างกันยังไง เพราะคนที่ใช้ Web Diary อยู่ก็บอกว่า Blog เป็น Diary รูปแบบนึงเท่านั้น ส่วนคนที่ใช้ Blog ก็บอกว่า Diary เป็นรูปแบบนึงของ Blog  เพราะทั้งคู่สามารถ publish หรือไม่ publish ก็ได้ จะบอกว่า Diary เป็นการบันทึกประจำวัน  ก็เห็น Blog หลายๆ อันเป็นการบันทึกประจำวันเหมือนกัน  แต่ถ้าจะให้เดานะครับ ก็เป็นเรื่องวัตถุประสงค์ มากกว่า เพราะ Blog มีวัตถุประสงค์ของการ Blog ค่อนข้างแน่นอน  ส่วน Web Diary วันนี้อยากเผยแพร่อะไรก็เขียนไปได้เลย (เหมือนสมุด Diary ที่บันทึกว่าวันนี้ไปทำอะไรมาบ้างเป็นต้น)   อันนี้ไม่ทราบจริงๆ ครับ ผู้รู้ขอความรู้เพิ่มเติมด้วยครับ

แล้ว Blog ต่างอะไรกับ Webboard หรือ Forum ล่ะ

          ความแตกต่างหลักๆ ของ Blog กับ Webboard หรือ Forum ก็คือ ความรู้สึกเป็นเจ้าของหัวข้อที่ตั้งขึ้นของ Blogger หรือผู้ Post   เปรียบเทียบแบบนี้ครับ  
  • Blog ก็เหมือนคอนโดฯ หรือหอพักที่เราเป็นผู้มาซื้อคอนโดฯ หรือผู้เช้าหอพัก แล้วเราก็แต่งห้องที่เราได้สิทธิ์ ไม่ว่าจะเอาเฟอร์นิเจอร์ รูป ของแต่งห้องมาจัด เพื่อให้ห้องของเราออกมาสวยงามตามความพอใจของเรา แล้วให้คนอื่นเข้ามาดูห้องเรา คนที่ชอบก็ชม หรือขอเอาแนวคิดไปทำบ้าง ส่วนคนที่ไม่ชอบก็ออกความเห็นต่างๆ นานา  (เรายังไม่ใช่เจ้าของห้องที่แท้จริงเพียงแต่ได้สิทธิ์ในการจัดการห้องเท่านั้น ส่วนเจ้าของคอนโดฯ หรือเจ้าของห้องเช่า ที่แท้จริงก็คือผู้ให้บริการ Blog เช่น www.blogger.com ที่เราใช้บริการอยู่นั่นแล)    
  •               เอาอีกตัวอย่าง  เปรียบ Blogger เหมือนครูที่สอนในห้องเรียน(แบบฝรั่งนะครับ) ครูก็สอนๆๆ ไป พอสอนจบก็ให้นักเรียน (ก็คือสมาชิกของ Blog นั้นๆ) มาถกกันเรื่องหัวข้อที่สอนไปแล้ว (ครูก็ไม่ใช่เจ้าของห้องเรียนที่แท้จริงเป็นผู้ที่ได้สิทธิ์ในการเผยแพร่หัวข้อต่างๆ เจ้าของห้องที่แท้จริงก็คือเจ้าของโรงเรียน) 
  • ส่วน Webboard หรือ Forum เปรียบเสมือนห้องประชุม เราเป็นผู้ post ก็คือเป็นผู้เสนอกระทู้ (หรือเรียกว่าวาระการประชุม)  แล้วให้ผู้เข้าร่วมประชุม(ก็คือสมาชิกของ Webboard นั้นๆ) เสนอความคิดเห็น โดยจะเห็นว่าเราไม่ใช่เจ้าของห้องประชุม แค่เราเข้ามาใช้ห้องประชุมเพื่อเสนอวาระเท่านั้น 

แล้ว Micro-blog  คืออะไรล่ะ 

                โอ้ว ยิ่งอ่านยิ่งเจอครับ สรุปง่ายๆ ครับ Micro-blog ก็คือ Blog ประเภทหนึ่งครับ แต่เป็น Blog ที่จำกัดจำนวนตัวอักษรในการเขียนในแต่ละหัวข้อของแต่ละคนครับ ถ้ามีจำนวนตัวอักษรที่เกินจากที่กำหนดไว้ต้องไปสร้าง link เพื่อ link ไปยังหน้าที่ Blogger ทำไว้ ผู้ติดตาม (Follower) ถ้าอยากติดตามต่อต้อง click link ที่ Blogger เขียนไว้เข้าไปอ่านอีกทีครับ Micro-blog ที่กำลังดังสุดๆ ตอนนี้ก็คือ Twitter ไงครับ เห็นภาพเลยใช่ม้า 

แล้วฺ Blog ต่างอะไรกับ Facebook ล่ะ 

          ในความเห็นผมนะครับ facebook เหมือน Online Diary ครับที่เขียนบอกเล่าความรู้สึก  เหตุการณ์ที่เจอในแต่ละวัน หรือบางคนอาจจะเป็นแต่ละชั่วโมง แต่ละนาทีเลยก็ได้   แต่ต่างกับ Online Diary ตรงที่ว่า ในหน้า Wall ของ Facebook จะมีทุกความรู้สึกหรือ comment ของเพื่อนเราทั้งหมด ที่มีอยู่ ณ เวลานั้น หรือในหน้านั้น จนกว่าจะหมดหน้า 


สรุปแล้ว ทั้งหมดนี้เป็นความเข้าใจของผมเองนะครับที่รวบรวมจาก link ต่างๆ ที่มีผู้มาให้ความรู้ ให้ความเห็น  แล้วผมก็มาเขียนในแบบของผมเอง ถ้ามีผิดพลาดประการใดขอท่านผู้อวุโสโปรดชี้แนะด้วยครับ


ที่มา:
บล็อกคืออะไร
      http://www.basicstep.net/what-is-a-blog/
      http://keng.com/2005/09/30/what-is-blog/
      http://www.gotoknow.org/blogs/posts/3
      http://th.wikipedia.org/wiki/บล็อก
      http://km.ra.mahidol.ac.th/mod/forum/discuss.php?d=471
      http://www.oknation.net/blog/print.php?id=66



Blog ต่างกับ Online Diary หรือ Web Diary อย่างไร
    http://http://th.wikipedia.org/wiki/ไดอารีออนไลน์
    http://www.inboxjournal.com/articles/difference-between-diary-journal-and-blog.php   
    http://www.blogpulse.com/papers/2005/fujiki.pdf    --- อันนี้ศึกษากันเป็นบทความทางวิชาการจริงจังเลยทีเดียว  


Blog ต่างกับ Webboard หรือ Forum อย่างไร
          http://lisahwarren.hubpages.com/hub/What-is-the-difference-between-a-blog-and-a-forum  
          http://www.web-strategist.com/blog/2008/01/28/understanding-the-difference-between-forums-blogs-and-social-networks/
          http://www.nevon.net/nevon/2004/10/blog_vs_forum_w.html
          http://software.intel.com/en-us/blogs/2007/01/26/whats-the-difference-between-a-blog-and-a-forum/
          http://www.differencebetween.net/technology/difference-between-forum-and-blog/  


Micro-blog  คืออะไร