Wednesday, August 5, 2009

RAID

RAID: Redundant Array of Independent Disks

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

ในการจัดเก็บข้อมูล RAID จะทำการกระจายข้อมูลออกเป็นส่วนๆ หรือ Data Striping เป็นการแบ่งข้อมูลออกเป็นส่วนๆ แล้วนำแต่ละส่วนไปเก็บใน hard disk แต่ละตัว การทำ striping นี้จะช่วยให้การอ่าน หรือเขียนข้อมูลใน disk array มีประสิทธิภาพมากขึ้น เพราะแต่ละไฟล์จะถูกแบ่งเป็นส่วนๆ กระจายไปเก็บในส่วนที่ต่างกันของ hard disk หลายตัว โดย hard disk เหล่านั้นทำงานไปด้วยกันแบบขนาน (parallel) จึงทำให้การเข้าถึงข้อมูลนั้นเร็วกว่า hard disk แบบตัวเดียวและนำไปเก็บไว้ ณ ตำแหน่งต่างๆ ใน Hard disk แต่ละตัว

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

จุดประสงค์เบื้องต้นของ RAID

ในปัจจุบันนั้นแม้ CPU จะ มีความเร็วที่สูงขึ้นมาก แต่การที่ระบบคอมพิวเตอร์จะมีความเร็วสูงจริงๆ จะต้องประกอบไปด้วยปัจจัยหลายอย่างที่ดีพอๆกัน รวมถึงระบบปฏิบัติการหรือ OS ด้วย และอุปกรณ์ที่ถือว่าเป็นตัวถ่วงความเร็วของระบบคอมพิวเตอร์ตลอดมาก็คือ ฮาร์ดดิสก์ เพราะข้อมูลโปรแกรมที่ใช้ส่วนใหญ่จะเก็บไว้ในฮาร์ดดิสก์ โดยการโอนถ่ายข้อมูลระหว่างฮาร์ดดิสก์ กับหน่วยความจำนี้เองที่ทำให้ระบบถูกถ่วงช้าลงกว่าที่ควรจะเป็น แม้ปัจุจบันฮาร์ดิสก์จะมีความเร็วในการโอนถ่ายข้อมูลถึง 133 Mb/S แต่ เมื่อเทียบกับหน่วยความจำรุ่นใหม่ๆ แล้วก็ยังแล้วงกันมาก ดังนั้นหากต้องการให้คอมพิวเตอร์มีความเร็วสูงจริงๆ จะต้อง มีฮาร์ดดิสก์ที่สามารถโอนถ่ายข้อมูลได้อย่างรวดเร็วด้วย ในสมัยแรกเริ่ม การรวบรวมเอาดิสก์ขนาดเล็กและ ราคาไม่แพงมาต่อเข้าด้วยกันเพื่อให้มีขนาดและความสามารถทดแทนเหมือนดิสก์ ขนาดใหญ่ที่มีราคาแพงๆ ได้ ในปัจจุบันดิสก์ถูกใช้ในด้านการเพิ่มประสิทธิภาพและความน่าเชื่อถือ (reliability) ของระบบเนื่องจากดิสก์ขนาดใหญ่ขึ้นและราคาไม่แพง

ข้อมูลเบื้องต้นเกี่ยวกับ RAID

ระบบ RAID จะประกอบไปด้วย Hard disk หลายๆ ตัวรวมเป็นระบบ RAID ย่อยๆ 1 ระบบ แต่ Drive เหล่านั่น กลับถูกเก็บซ่อนจากผู้ใช้ เสมือนหนึ่งว่า คือ Hard disk เพียง Drive เดียว ดังนั้น จึงสามารถขยายความจุได้อย่างมหาศาล ถึงกว่า 1,000 GB ซึ่งตัว Drive เสมือนนี้ จะถูกสร้างและควบคุมโดยระบบปฏิบัติการ ซึ่งได้มีการติดตั้งโปรแกรมจัดการ RAID มาไว้ในตัว ตัวซอฟต์แวร์ ไม่ได้จัดการเฉพาะสร้างตัว Drive เสมือนเท่านั้น แต่ยัง คอยควบคุมการเข้าถึง Drive เหล่านี้ว่าจะเข้าถึงด้วยเส้นทาง และวิธีใดจึงจะเหมาะสม และรวดเร็วที่สุด ระบบ RAID จะสามารถตั้งค่าได้หลากหลายค่าเพื่อประสิทธิภาพ ที่แตกต่างกันไป ตั้งแต่ในเรื่องของ ความจุสูงสุด,หรือ แม้กระทั่ง ความทนทานต่อความผิดพลาด ก่อนอื่นจะต้องเข้าใจหลักฮาร์ดแวร์ก่อน นั่นคือ การที่จะรวมเอาฮาร์ดดิสก์หลายๆ ตัวมาไว้ได้นั้น ซึ่งจะต้องพึ่งพา ตัว RAID Controller Board ที่จะทำหน้าที่เป็นเสมือน โครงข่ายหลัก ที่ทำงานอยู่เบื้องหลัง และยังเป็นช่องสำหรับใส่ Disc เข้าไว้อีกด้วย และไม่ได้พึ่งพาเฉพาะ คำสั่งในการ input/output ในการระบุตำแหน่งของ Drive ต่างๆ ในช่องใส่เท่านั้น แต่ยังทำหน้าที่ให้ แต่ละ drive ย่อยๆ เหล่านี้เป็นอิสระต่อกัน นั่นหมายความว่า จะช่วยให้สามารถ ถอดเปลี่ยน หรือเคลื่อนย้าย Drive เหล่านี้ให้ราบรื่นยิ่งขึ้น นอกจากนี้ ตัว controller ยังคอยดูแลความมั่นคง ในการทำงาน ของ Drive แต่ละตัว หากพบปัญหา ว่า Drive ตัวไหนมีโอกาสได้รับความเสียหาย ยังสามารถโอนย้ายข้อมูลที่มีความเสี่ยงเหล่านั้น ไปอยู่ใน Drive อื่นที่ปลอดภัยกว่า เพื่อป้องกันปัญหา ข้อมูลสูญหาย (เรียกระบบนี้ว่า ความทนทานต่อความเสียหาย หรือ Fault Tolerance ) และต่อไปนี้ คือคำอธิบายถึง ระดับของ RAID ซึ่งจะขึ้นอยู่กับประสิทธิภาพการทำงานที่แตกต่างกัน

ความเป็นมา

ในปี 1987 Patterson, Gibson และ Katz ซึ่งทำงานที่ University of California Berkeley ได้พิมพ์บทความเกี่ยวกับ A Case for Redundant Arrays of Inexpensive Disks (RAID) โดยกล่าวถึงชนิดของดิสก์อะเรย์ประเภทต่างๆ โดยเรียกชื่อย่อๆว่า RAID หลักการพื้นฐานของ RAID มา จากแนวคิดที่ว่า เมื่อเอาดิสก์ที่มีความจุน้อยหลายๆตัวมารวมกัน ประสิทธิภาพที่ได้จากการใช้งานจะมากกว่าใช้ดิสก์ขนาดใหญ่เพียงตัวเดียว โดยเมื่อเอาดิสก์มารวมกันแล้วคอมพิวเตอร์จะต้องเห็นว่าเป็นดิสก์ขนาดใหญ่ตัว เดียว (เป็น Logical Drive) ครั้นต่อมา RAID ก็เปลี่ยนคำจำกัดความเป็น Redundant Array of independent disks คือ ระบบเผื่อแบบอะเรย์ของดิสก์ที่เป็นอิสระต่อกัน คือ การนำฮาร์ดดิสก์หลายๆ ตัวมาต่อกัน เช่น 5 ตัว ข้อดีคือ ได้ความจุเพิ่มขึ้น แต่ถ้าตัวใดตัวหนึ่งพังก็จะเสียข้อมูลในฮาร์ดดิสก์ตัวนั้นไป แต่จะป้องกันได้มากกว่า ถ้าหากเพิ่มฮาร์ดดิสก์เข้าไป 3 ตัว แล้วใช้ระบบการจัดแบ่งเก็บข้อมูลในแต่ละตัว แต่ละตัว พร้อมกันแต่ในแต่ละตัวก็มีข้อมูลที่ซ้ำกัน หรือมีการเก็บ Parity ของ อีกตัวไว้ ถ้าเกิดเกิดพังไป ข้อมูลในตัวที่พังก็ยังคงมีเก็บ "สำรองเผื่อเสีย" ไว้ การแก้ไขทำได้โดยเปลี่ยนฮารด์ดิสก์ แล้วถ่าย ข้อมูลที่ฮาร์ดดิสก์ตัวที่พังไปที่ฝากไว้กับฮาร์ดดิสก์ตัวอื่นมาลง ทำให้สมบูรณ์แบบ ทั้งหมดนั้นเรียกว่าระบบ Fault Tolerance ก็คือ"ระบบที่คงทนต่อความเสียหาย" คือ แทนที่ว่าฮาร์ดดิสก์พังไปตัวหนึ่งก็ต้อง "Down" เซิร์ฟเวอร์ ทำให้ระบบต้องหยุดชะงัก เพื่อป้องกันความเสียหายดังกล่าว จะต้องสร้างระบบให้คงทนต่อความเสียหาย ฮาร์ดดิสก์พังไปแล้วหนึ่งตัว ระบบยังทำงานต่อไปเหมือนไม่มีอะไรเกิดขึ้น โดยวิธีการนี้ จะต้องใช้ RAID ซึ่งเป็นหัวใจของการสร้าง "ดิสก์ที่คงทนต่อความเสียหาย"
ปัจจุบันการนำ RAID มาใช้งานนั้น เกี่ยวกับเซิร์ฟเวอร์เป็นส่วนใหญ่ เมื่อระบบเครือข่ายถูกพัฒนาขึ้นใช้ ความสำคัญของหน่วยเก็บข้อมูล (Storage System) ก็ ทวีความสำคัญขึ้น เพราะในเซิร์ฟเวอร์นั้น ถ้าหากว่าฮาร์ดดิสก์ชำรุด ใช้งานไม่ได้ นอกจากจะสูญเสียข้อมูลที่เก็บไว้ในฮาร์ดดิสก์ไปทั้งหมดแล้ว ยังจะต้องเสียเวลาเพื่อรอให้การซ่อมแซมแล้วเสร็จ ซึ่งหมายถึงการสูญเสียโอกาสทางธุรกิจ

ประเภทของ RAID

การ นำมาใช้งานนั้นบางประเภทนั้นมีข้อจำกัดทั้งทางด้านเทคนิค เช่นลักษณะการทำงานที่เหมือนกัน แต่เมื่อเปรียบเทียบทั้งทางด้านราคาและประสิทธิภาพของการทำงานแล้ว ทำให้ RAID บางประเภทเป็นเพียงแค่ทฤษฎีเท่านั้น ในทางเทคนิค สามารถจำแนกประเภทของ RAID ได้ ประมาณ 9 ประเภท แต่ในทางปฏิบัติที่สามารถนำมาใช้งานได้จริง มีประมาณ 7 ประเภท ได้แก่

RAID 0

RAID ระดับ 0 มุ่ง เน้นที่การเพิ่มประสิทธิภาพในการเข้าถึงข้อมูล เป็นสำคัญ แต่มีข้อเสียตรงที่ ไม่สามารถแก้ไขข้อบกพร่อง ของระบบในกรณี ที่เกิดการขัดข้องขึ้น ทำให้ข้อมูลอาจจะสูญหายไปได้ ( ไม่แก้ปัญหา Fault Tolerance ) ระบบ RAID O นี้ มีรูปแบบการทำงาน ที่เรียกว่า "striping" หรือ "แถบ" เนื่องจาก ระบบระบบ RAID 0 นี้ มีการจัดการ กับข้อมูลเป็นแนวยาว ในลักษณะของแถบ (ไม่ได้กระจายไปทั่ว อย่างระบบอื่น) ตัวอย่างเช่น สมมุติว่า ระบบ RAID 0 นั้นประกอบด้วย ดิสก์ 4 ตัว ต่อเชื่อมกัน แถบที่ 0, 1, 2 และ 3 ก็จะถูกจัดสรรออกไป ให้ดิสก์ที่ 0, 1, 2 และ 3 ตามลำดับ และสำหรับแถบต่อจากนั้น คือ แถบ 4, 5, 6, 7 ฯลฯ ก็จะหมุนวน สลับกลับไปที่ ดิสก์ตัวที่ 0 (แถบที่ 4), ดิสก์ตัวที่1 (แถบ5). ดิสก์ตัวที่ 2 (แถบ6), ดิสก์ตัวที่3 (แถบ7) ซึ่งปรากฏการ์นี้ จะเกิดหมุนเวียนกันไปเรื่อย จนกว่าข้อมูลจะหมดไป ในแต่ละชุด ๆ สาเหตุที่ ระบบ RAID 0 สามารถ เพิ่มประสิทธิภาพ ในการใช้งานข้อมูลคอมพิวเตอร์ได้ ก็เพราะ ระบบ RAID ช่วยให้ ผู้ใช้สามารถ เข้าถึงข้อมูล แต่ละแถบได้พร้อม ๆ กันทั้งหมด แม้ว่าข้อมูลเหล่านั้น จะถูกจัดเก็บไว้ บนคนละไดรฟ์ก็ตาม หรือพูดอีกนัยหนึ่งก็คือ RAID ช่วยให้มีความเร็วเพิ่มมากขึ้น ในการเข้าถึงข้อมูล เพราะ แทนที่ จะต้องอาศัยฮาร์ดดิสก์ (หรือไดรฟ์) เพียงตัวเดียว ในการระบายข้อมูล ซึ่งอาจทำให้ เกิดการทะลักและติดขัด ของข้อมูลได้ แต่ระบบระบบ RAID 0 นี้ จะสามารถทำให้ ข้อมูลถูกกระจายออกมา จากไดรฟ์ทุกไดรฟ์ ในระบบอย่างพร้อมเพรียงกัน จึงสามารถ เพิ่มความเร็วในการเข้าถึงข้อมูล ได้มากขึ้นหลายเท่าตัว อย่างไรก็ตาม ระบบ RAID 0 นี้ ก็มีข้อเสียตรงที่ว่า ไม่สามารถ รับประกันได้ว่า ข้อมูลจะสูญเสียไปหรือไม่ หากเกิดความผิดพลาดหรือขัดข้องขึ้นในระหว่างการทำงาน เนื่องจาก ไม่มีการก็อปปี้ข้อมูลเก็บไว้อย่างในระบบ RAID อื่น ๆ แต่อย่างไรก็ตาม ระบบ RAID ระดับ 0 นี้ มีข้อเสียในเรื่องของ การป้องกันความเสียหาย เนื่องจากจะเป็นการเพิ่มความเสี่ยง ของโอกาสข้อมูลสูญเสียไป นั่นเพราะว่า ไม่มี พื้นที่ไว้สำหรับ การเขียนข้อมูลซ้ำๆ กัน ( หรือการสำรองข้อมูล ) ถ้าหาก Drive หนึ่งทำงานไม่ได้ นั่นหมายความว่า ไม่มีทางที่จะเรียกชุดข้อมูล ที่ถูกแยกเก็บไปแต่ละ drive นั้นออกมาได้เลย ซึ่งแตกต่างกับ รูปแบบการทำงาน ของ RAID ระดับอื่นๆ




รูปแบบการทำงาน RAID 0

RAID 1

มีรูปแบบการทำงาน ที่เรียกว่า "disc mirroring" ซึ่งสามารถ ปกป้องข้อมูล และแก้ไขข้อบกพร่อง เมื่อระบบเกิดปัญหา ได้ดีกว่าระบบ RAID 0 นอกจากนั้น ระบบ RAID 1 นี้ ยังมีความสามารถ ในการอ่านข้อมูลดีกว่า ระบบ RAID 0 ด้วย ในการทำงานของระบบ RAID 1 นี้ แต่ด้วยประสิทธิภาพ ที่เพิ่มขึ้น และความสามารถ ในด้านปกป้องปัญหาที่เข้ามานี้ คุณก็ต้องแลกมาด้วย เนื้อที่จัดเก็บข้อมูล ที่อาจจะลดน้อยลงไป ในการตั้งการทำงานของ RAID ระดับ 1 นี้ โปรแกรมจัดการการทำงาน จะสั่งให้ตัวควบคุมระบบ ทำการจัดเก็บข้อมูล สำรอง ข้ามไปตาม Drive ย่อยๆ ภายในระบบ RAID ของคุณ ( ภายใต้ Drive เสมือน 1 Drive จะ ประกอบไปด้วยตัวฮาร์ดดิสก์ย่อยๆ หลายตัวทำงานร่วมกัน ) ซึ่งเราอธิบายเพิ่มเติมได้ว่า ด้วยข้อมูลชุดเดียวกัน มันจะถูกทำการบันทึกซ้ำ ไปตาม Drive ต่างๆ ภายในระบบของคุณ และด้วยเหตุนี้นี่เอง เมื่อเกิดกรณี ข้อมูลใน drive หนึ่งๆ สูญหาย คุณก็ยังพอมีทาง ที่จะเรา้ข้อมูล ที่ทำการบันทึกซ้ำไว้ ที่ Drive อีกตัว กลับคืนมาได้ นอกจากนี้ ในการตั้งการทำงาน ของ RAID ระดับ 1 นี้ ยังสามารถกำหนดชุดของ Mirror set ให้มีมากกว่า 1 set ก็เป็นได้ อีกทั้ง แต่ละ Mirror set คุณ ยังสามารถ กำหนดขนาดความจุ ให้แตกต่างกันไปอีกด้วย ในขณะที่ความสามารถ ในการอ่านข้อมูล ก็สามารถเพิ่มขึ้นได้ ด้วยการที่ระบบ การบันทึกข้อมูลซ้ำนี้ จะกระจายการบันทึกข้อมูล ไปตาม Drive ย่อยๆ ภายในระบบ ซึ่งก็ทำให้ เมื่อมีการร้องขอข้อมูลมา จะช่วยลดปัญหา ความคับคั่ง ของการเขียนอ่านข้อมูล ที่อาจจะเกิดขึ้น หากมีการบันทึกข้อมูลนั้นๆ รวมอยู่บน Drive เดียวกัน ซึ่งเราอธิบายเพิ่มเติมได้ ด้วยการมี 3 คำร้องขอ ที่เรียกเข้ามายังระบบ โดยที่ คำร้องที่ 1 จะถูกเรียกไปอ่านที่ block 0 คำร้องที่ 2 จะถูกเรียกอ่านที่ block 1 ในขณะที่คำร้องที่ 3 จะถูกเรียกอ่านที่ block 2 นั่นหมายความว่า แต่ละ block ก็เปรียบเสมือนเป็นฮาร์ดดิสก์แต่ละตัว ที่ทำงานอยู่ภายใต้ระบบ RAID ( ที่รวม ฮาร์ดดิสก์หลายๆ ตัวนี้ให้เป็น Drive เพียง Drive หนึ่งเท่านั้น ) มันจึงสามารถ อ่านข้อมูลได้อย่างอิสระต่อกัน ซึ่งช่วยลดภาระ และลดเวลาในการเข้าถึงข้อมูล ได้เป็นอย่างดี




รูปแบบการทำงาน RAID 1

RAID 2

ใน RAID 2 นี้ ข้อมูลทั้งหมดจะถูกตัดแบ่งเพื่อจัดเก็บลง harddisk แต่ละตัวใน disk array โดยจะมี harddisk ตัวหนึ่งเก็บข้อมูลที่ใช้ตรวจสอบและแก้ไขข้อผิดพลาด (ECC - Error Checking and Correcting) ซึ่งเป็นการลดเปอร์เซ็นต์ที่ข้อมูลจะเสียหายหรือสูญเสียไป เมื่อมีการส่งข้อมูลไปบันทึกใน disk array จะเห็นได้ว่ามี harddisk ที่เอาไว้เก็บค่า ECC โดยเฉพาะ ถ้าเกิดการปรากฏว่า harddisk ตัวใดตัวหนึ่งเสียหาย ระบบก็จะสามารถสร้างข้อมูลทั้งหมดใน harddisk ตัวนั้นขึ้นมาได้ใหม่ โดยอาศัยข้อมูลจาก harddisk ตัวอื่นๆ และจากค่า ECC ที่เก็บเอาไว้ ซึ่งการทำ ECC นี้ส่งผลให้ harddisk ทั้งระบบต้องทำงานค่อนข้างมากทีเดียว และ RAID 2 นั้นจะเห็นได้ว่าต้องใช้ harddisk จำนวนมากในการเก็บค่า ECC ซึ่งทำให้ค่อนข้างสิ้นเปลือง



รูปแบบการทำงาน RAID 2

RAID 3

RAID 3 มีลักษณะที่คล้ายกับ RAID 2 แต่แทนที่จะตัดแบ่งข้อมูลในระดับ bit เหมือน RAID 2 ก็จะตัดเก็บข้อมูลในระดับ byte แทนและการตรวจสอบและแก้ไขข้อผิดพลาดของข้อมูล จะใช้ parity แทนที่จะเป็น ECC ทำให้ RAID 3 มีความสามารถในการอ่านและเขียนข้อมูลได้อย่างรวดเร็ว เพราะมีการต่อ harddisk แต่ละตัวแบบ stripe และใช้ harddisk ที่เก็บ parity เพียงแค่ตัวเดียวแต่ถ้านำ RAID 3 ไปใช้ในงานที่มีการส่งผ่านข้อมูลในจำนวนที่น้อยๆ ซึ่ง RAID 3 ต้องกระจายข้อมูลไปทั่วทั้ง harddisk จะทำให้เกิดปัญหาที่เรียกว่า คอขวด ขึ้นกับ harddisk ที่เก็บ parity เพราะไม่ว่าข้อมูลจะมีขนาดใหญ่ขนาดไหน RAID 3 ต้องเสียเวลาไปสร้างส่วน parity ทั้งสิ้น ยิ่งข้อมูลมีขนาดเล็กๆ แต่ parity ต้องสร้างขึ้นตลอด ทำให้ข้อมูลถูกจัดเก็บเสร็จก่อนการสร้าง parity ทั้งระบบต้องมารอให้สร้าง parity เสร็จก่อน จึงจะทำงานต่อไปได้




รูปแบบการทำงาน RAID 3

RAID 4

RAID มีแนวคิด ที่คล้ายคลึงกับ RAID ระดับ 3 แต่จะเน้นความสำคัญ ไปที่ประสิทธิภาพ การทำงานของ application ที่ต่างกันไป ตัวอย่างเช่น โปรแกรม Database TP ที่ต้องเกี่ยวข้องกับ ไฟล์ขนาดใหญ่ ที่มีความต่อเนื่องกัน และยังมีอีกความต่าง นั่นคือ ระดับความลึกของแถบข้อมูล ที่ RAID ระดับ 4 จะมีขนาดใหญ่กว่า ซึ่งโดยปกติ ขนาดในระดับ 2 block ซึ่งจะช่วยให้ โปรแกรมจัดการ RAID สามารถทำงานร่วมกับ disc แต่ละตัว ได้อย่างเป็นอิสระต่อกัน มากกว่า RAID ระดับ 3 ซึ่งจะช่วยให้ การจัดเก็บข้อมูล และการเรียกอ่านข้อมูลที่มีขนาดใหญ่ สามารถทำได้รวดเร็วยิ่งขึ้น
แต่อย่างไรก็ตาม สิ่งที่จะตามมา จากการใช้งาน RAID ระดับ 4 นั้นก็คือ ปัญหาการติดขัดของข้อมูล ใน Drive ที่ใช้ในการจัดเก็บ ค่า parity เอาไว้ ซึ่งต้องการหลักการทำงาน ที่ยุ่งยากกว่ากันมาก และนี่ก็เป็นเหตุผลสำคัญ ที่ทำให้ RAID ระดับนี้ ไม่ได้รับความนิยม มากนัก



รูปแบบการทำงาน RAID 4

RAID 5

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




รูปแบบการทำงาน RAID 5

RAID 6

RAID 6 อาศัยพื้นฐานการทำงานของ RAID 5 เกือบทุกประการ แต่มีการเพิ่ม parity block เข้าไปอีก 1 ชุด เพื่อยอมให้ทำการ Hot Swap ได้พร้อมกัน 2 ตัว (RAID 5 ทำการ Hot Swap ได้ทีละ 1 ตัวเท่านั้น หาก harddisk มีปัญหาพร้อมกัน 2 ตัว จะทำให้เสียทั้งระบบ) เรียกว่าเป็นการเพิ่ม Fault Tolerance ให้กับระบบ โดย RAID 6 เหมาะกับงานที่ต้องการความปลอดภัยและเสถียรภาพของข้อมูลที่สูงมากๆ



รูปแบบการทำงาน RAID 6

RAID 7

RAID 7 อาศัยพื้นฐานการทำงานของ RAID 4 โดยเพิ่มคุณสมบัติบางอย่างเข้าไป เพื่อทำให้ harddisk แต่ละตัวทำงานอิสระต่อกัน ไม่จำเป็นต้องรอให้ harddisk ตัวใดตัวหนึ่งทำงานเสร็จก่อน (ซึ่งทำให้เกิดปัญหาคอขวดใน RAID 4) โดยการส่งข้อมูลแต่ละครั้ง จะทำการส่งผ่าน X-Bus ซึ่งเป็นบัสที่มีความเร็วสูง RAID 7 ยังมีหน่วยความจำแคชหลายระดับในตัว RAID Controller เพื่อแยกการทำงานให้อิสระต่อกัน โดยจะมี Real-Time Operating System อยู่ภายในส่วนที่เรียกว่า Array Control Processor ทำหน้าที่ควบคุมการส่งข้อมูลบนบัส

RAID 7 เหมาะสำหรับใช้ในองค์กรขนาดใหญ่ เชื่อมต่อได้สูงสุดถึง 12 host 48 drives และราคาของระบบ RAID 7 ค่อนข้างที่จะสูงมาก ด้วย RAID 7 เป็นลิขสิทธิ์เฉพาะของบริษัท Storage Computer Corporation ทำให้ผู้ใช้งาน RAID 7 ไม่สามารถปรับเครื่องหรือ Hardware ได้เลย ทำให้ RAID 7 ไม่ค่อยได้รับความนิยมเท่าที่ควร






รูปแบบการทำงาน RAID 7

RAID 1+0 (RAID 10)

RAID 10 หรือ RAID 0+1 เป็นการผสมผสานระหว่าง RAID 0 และ RAID 1 เข้าด้วยกัน ทำให้การเข้าถึงข้อมูลเป็นไปได้อย่างรวดเร็ว และมีการทำ mirror ข้อมูล (backup ข้อมูล) ไปด้วย ข้อเสียของ RAID 10 คือการเพิ่มจำนวน harddisk ในอนาคตเป็นไปได้ยาก เพราะ harddisk แต่ละตัวมี mirror เป็นของตัวเอง ยิ่งเพิ่ม harddisk เพื่อใช้งานก็ต้องเพิ่ม harddisk เพื่อ backup ไปด้วย เหมาะสำหรับ Server ที่ต้องการความเร็วในการเข้าถึงข้อมูลค่อนข้างมาก และไม่ต้องการความจุมาก



รูปแบบการทำงาน RAID 1+0 (RAID 10)



ทางเลือกในด้าน Interface สำหรับระบบ RAID

1. SCSI : ถือเป็นอินเตอร์เฟซ ความเร็วสูง ซึ่งจะช่วยให้ การถ่ายโอนข้อมูล เป็นไปอย่างรวดเร็วยิ่งขึ้น โดยที่อินเตอร์เฟซ SCSI แบบล่าสุด เรียกว่า Ultra2 SCSI ซึ่งมีความเร็ว 80 Mbyte / วินาที และใช้เทคโนโลยี LVD ในการจัดการ กับระดับแรงดันไฟฟ้า ในสายเคเบิ้ล (ความยาวสูงสุดต้องไม่เกิน 12 เมตร) และยังช่วยเพิ่มประสิทธิภาพ ของอุปกรณ์ต่อพวง ให้สูงขึ้นด้วย (จะต้องไม่เกิน 15 อุปกรณ์ ต่อการ์ดควบคุมหนึ่งตัว)

2. Fibre Channel-Arbitrated Loop (FC-AL) : เป็นอินเตอร์เฟซ อีกรูปหนึ่ง สำหรับต่อเชื่อมกับระบบ RAID ซึ่งได้รับการยอมรับว่า มีประสิทธิภาพสูงสุด ในบรรดาอินเตอร์เฟซ สำหรับ RAID ทั้งหมดด้วย ทั้งนี้ FC-AL มีความเร็ว ในการถ่ายโอนข้อมูล สูงสุด 200 Mbyte / วินาที และยังสามารถ ต่อเชื่อมสายได้ไกลถึง 10 กิโลเมตร ซึ่งนับว่าไกลกว่า อินเตอร์เฟซแบบอื่น นับร้อยนับพันเท่า นอกจากนั้น อินเตอร์เฟซแบบนี้ ยังช่วยให้สามารถพ่วงอุปกรณ์ หรือฮาร์ดไดรฟ์ได้มากถึง 126 ตัว ต่อการ์ดควบคุมเพียงหนึ่งตัว (ในขณะที่ อินเตอร์เฟซ SCSI แบบธรรมดา สามารถพ่วง ได้แค่เจ็ดตัว และอินเตอร์เฟซ Ultra2 SCSI สามารถพ่วงได้แค่ 15 ตัวเท่านั้น)

ประโยชน์จาก RAID
เอื้อ ประโยชน์ในการรวมเอาพื้นที่จากฮาร์ดดิสก์หลายๆ ตัวเข้ารวมกันเป็น "ก้อน" ก้อนเดียว ใช้ประโยชน์จากการ "เข้าถึง" ของฮาร์ดดิสก์แต่ละตัว ซึ่งหมายถึง จะแบ่งข้อมูลออกเป็นบล๊อคย่อยๆ แล้วแยกกันไปเขียน (อ่าน) ลงบนฮาร์ดดิสก์แต่ละตัว ทำให้ย่นระยะเวลาทำงาน และลดระยะเวลาคอย (Wait State) มีระบบ "เผื่อเสีย" โดยการทำ "Mirroring" หรือ Parity คือ ถ้าตัวหนึ่งเสีย อีกสลับตัวที่สำรองไว้ขึ้นมาทำงานโดยอัตโนมัติ เพื่อให้มั่นใจว่าระบบนั้นจะคงทนต่อความเสียหาย ระบบดำเนินการต่อไปได้ โดยไม่ต้องถูกขัดจังหวะจากการเสียเวลาซ่อมแซม พูดง่ายๆ ฝรั่งเขาว่า disk access will still continue normally with the failure transparent to the host system คือ การใช้งานดิสก์ยังคงเกิดขึ้นอย่างปกติ ตัวที่เสีย ระบบคอมพิวเตอร์ก็จะมองผ่านไปส่วนประกอบของ RAID RAID Controller ตัวควบคุมระบบ RAID นั้นใช้ได้ทั้งซอฟต์แวร์และฮาร์ดแวร์ หรือใช้รวมกันก็ได้ ซอฟต์แวร์เช่น Windows NT 4.0 สนับสนุน RAID ระดับ 0 ,1 (Striping , Mirroring) และฮาร์ดแวร์จากผู้ผลิตรายต่างๆ ซึ่งมีอยู่มากหลากหลาย เช่น Asustek , Adaptec , DCT ,MTI ซึ่งฮาร์ดแวร์เหล่านั้นมีราคาอยู่ในระหว่างสองหมื่นถึงเป็นล้านบาท กรณีใช้ซอฟต์แวร์เป็น RAID Controller จะมีข้อจำกัดคือ ระดับที่สนับสนุน คือ 0, 1 (Striping , Mirroring) นั้นยังไม่ครอบคลุมระดับ Data Protection ในเรื่องของพาริตี้ ซึ่งมีใน RAID ระดับ 3,5 และ ใช้กำลังจากโปรเซสเซอร์ ทำให้โปรเซสเซอร์มีเวลาจะไปประมวลผลงานอื่นๆ น้อยลง การใช้ซอฟต์แวร์ควบคุม มีข้อดีคือ ราคาถูกกว่า ไม่ต้องการอุปกรณ์เพิ่มเติมมากนัก ส่วนฮาร์ดแวร์ โดยมากจะได้รับการออกแบบที่ดี แต่ฮาร์ดแวร์ก็มีข้อแตกต่างระหว่างยี่ห้อต่างๆ คือ ประสิทธิภาพในการทำงานแตกต่างกันออกไป การติดตั้งยากกว่าซอฟต์แวร์ควบคุม และราคาการลงทุนค่อนข้างสูงกว่า เพราะต้องการอุปกรณ์เพิ่มเติม ไม่ว่าจะเป็นฮาร์ดดิสก์ เคสสำหรับฮาร์ดดิสก์ โดยเฉพาะระบบ "Hot Swap" แต่ผลของการลงทุนก็คุ้มค่า (เกี่ยวกับ Hardware RAID Controller ดูข้อมูลเพิ่มเติมได้จาก รู้จักกับ Raid Controller) ฮาร์ดดิสก์ที่นำมาต่อเป็น Array (Physical Drive) คือฮาร์ดดิสก์ที่นำมาต่อเข้าเพื่อใช้กับระบบที่จะใช้ RAID จำนวนของฮาร์ดดิสก์นั้น ขึ้นอยู่กับระดับของ RAID ที่เลือกใช้งาน ไดรฟ์อะไหล่ (Spare Drive) เป็นฮาร์ดดิสก์ที่นำมาติดตั้งไว้เป็น "อะไหล่" เผื่อว่าฮาร์ดดิสก์ตัวอื่นๆ ที่ใช้ในระบบ RAID เกิด ชำรุดเสียหาย โดยปกติเมื่อไดรฟ์ตัวใดตัวหนึ่งในระบบเกิดเสียหาย ไดรฟ์ที่เป็น "อะไหล่" จะถูกสลับเข้าไปใช้งานแทนที่โดยอัตโนมัติทันที

ไดรฟ์ชำรุด (Failed Drive)
ฮาร์ดดิสก์ที่ชำรุดเสียหาย เช่นมี Bad Sector หรือตัวระบบกลไกการทำงานเสียหาย หรือไม่ตอบสนองต่อการทำงานของ Host SCSI ไดรฟ์พวกนี้ถือเป็น "ไดรฟ์ชำรุด" จะต้องเอาออกและเปลี่ยนไดรฟ์ดีเข้าไปใหม่ ไดรฟ์ตรรกะ (Logical Drive) เหมือนกับระบบดอสธรรมดา คือ ไม่ใช่ไดรฟ์จริง เป็นเพียงไดรฟ์สมมุติ แต่ใน RAID ไดรฟ์ตรรกะนั้น เกิดจากการรวมเอาไดรฟ์อื่นๆ มารวมกัน ให้เกิดความจุสูงขึ้น

Logical Volume
ความหมายคือ เมื่อต้องการ "ก้อน" ของฮาร์ดดิสก์ที่มีความจุมากขึ้น ทำได้โดยการนำเอา "Logical Drive" มารวมเข้าด้วยกันเป็น Logical Volume นั้นเอง การจัดการ RAID เมื่อกล่าวถึงการจัดการ RAID ก็เสมือนว่าเรากำลังคุยกันเกี่ยวกับเทคโนโลยี "การจัดเก็บข้อมูล" หรือ Storage Technology ซึ่งมีสองส่วนด้วยกันคือ การเลือกระดับของ RAID ที่เหมาะสมกับการใช้งาน และการจัดการกับไดรฟ์ที่เสียหาย

การเลือกระดับ RAID ที่เหมาะสม
RAID แต่ละระดับมีความเหมาะสมเกี่ยวกับการใช้งาน และความต้องการฮาร์ดแวร์ ซอฟต์แวร์ ฮาร์ดดิสก์แตกต่างกัน การ จัดการกับไดรฟ์เสีย ไม่ได้หมายถึงว่า ฮาร์ดดิสก์เสียแล้ว แล้วจะจัดการอย่างไร แต่หมายถึง จะทำอย่างไรกับ "ระบบเผื่อเสีย" หาฮาร์ดดิสก์มาสำรองหรือเปิดไว้รอ หากคิดที่จะมีระบบ "เผื่อเสีย" ก็ต้องลงทุนบ้าง สำหรับ RAID ก็เช่นเดียวกัน ต้องลงทุนซื้อไดรฟ์มาไว้ เรียกว่าเป็น Spare Drive ซึ่งมีทั้ง Global Spare Drive และ Local Spare Drive เป็นสองกลุ่ม ความแตกต่างคือ Local Spare Drive จะเป็นอะไหล่สำหรับ Local Drive เพียงตัวเดียว แต่ Global Spare Drive นั้นเป็นอะไหล่สำรองสำหรับ Local Drive 2 ก้อนขึ้นไป การระบุว่าไดรฟ์ไหนเสีย และการวิเคราะห์อาการเสีย เป็นเทคนิคการออกแบบ RAID Controller ที่ผู้ผลิตรายต่างๆ ต่างก็แข่งขันกันพัฒนา เพราะโดยคุณสมบัติการออกแบบฮาร์ดดิสก์แบบ SCSI แล้ว เป็นไปได้ยากที่ RAID Controller จะตรวจสอบว่าไดรฟ์ไหนเสีย แต่ระบบการตรวจสอบที่เกิดจากการพัฒนาร่วมกันของผู้ผลิต RAID และผู้ผลิตฮาร์ดดิสก์ ที่มีชื่อเทคโนโลยีว่า SAF-TE ก็ ทำให้การวิเคราะห์ และวินิจฉัยอาการเสียของฮาร์ดดิสก์เป็นไปได้ง่ายขึ้น การจัดการกับไดรฟ์เสีย ยังมีระบบสนับสนุนหรืออำนวยความสะดวก ซึ่งทำงานสอดคล้องกับระบบ RAID Controller อีกส่วนหนึ่งคือ Hot Plug Drive, Hot Swap Drive Bay ซึ่งหมายถึงการเปลี่ยนฮาร์ดดิสก์โดยอไม่ต้องปิดสวิตช์คอมพิวเตอร์ก่อน และเมื่อเปลี่ยนแล้วนอกจากสามารถใช้งานได้ทันทีแล้ว หากใช้ระบบ RAID ก็สามารถ "Rebuild" คือ สร้างระบบ RAID ในฮาร์ดดิสก์ก้อนใหม่ได้ทันที

Reference:
1. http://www.overclockzone.com/spin9/raid/index.html
2. บริษัทซีเกท เทคโนโลยี (ประเทศไทย) จำกัด
http://www.pcgallery.co.th/webfiles/pub/listpage.php?topic_id=24&topic=RAID%20%E0%B8%84%E0%B8%B7%E0%B8%AD%E0%B8%AD%E0%B8%B0%E0%B9%84%E0%B8%A3%20?
3.http://www.thaijaidee.com/forum/index.php?PHPSESSID=e25f07a2567e2a23d08d6512993147f2&topic=2010.msg44378
4.http://www.pantown.com/board.php?id=19779&area=3&name=board1&topic=3&action=view
5. http://www.baanmaha.com/community/showthread.php?t=21487
6. http://www.dld.go.th/ict/article/hard/hw22.html
7. http://www.antthai.com/home/article/RAID_Tech(1).htm

credit: http://www.vcharkarn.com/vblog/41095/1

No comments: