ถ้าเอ่ยถึงคำว่า "RAID" คนธรรมดาทั่วไปที่เคยผ่านเกมแนว Massively Multiplayer Online Role-Playing Game (MMORPG) มาก่อน น่าจะคิดไปถึงการรวมตัวของเพลเยอร์จำนวนมากเพื่อไป RAID (การจู่โจม) พวกเวิร์ลบอส หรือทำสงครามระหว่างกิลด์ แต่นั่นไม่ใช่ RAID ที่เราจะหยิบยกมาเล่าให้บทความนี้นะ
ในวงการคอมพิวเตอร์ก็มีการทำ RAID เช่นกัน แน่นอนว่ามันไม่ได้หมายถึงการที่ผู้ใช้จำนวนมากไปรุมโจมตีคอมพิวเตอร์ แต่จะเป็นเรื่องเกี่ยวกับระบบการทำงานของฮาร์ดไดร์ฟ มาทำความเข้าใจเกี่ยวกับการเอาฮาร์ดไดร์ฟมาทำ RAID กันหน่อยดีกว่า
RAID ย่อมาจากคำว่า "Redundant Array of Inexpensive Disks" หรือ "Redundant Array of Independent Disks" มันเป็นเทคโนโลยีจำลองไดร์ฟเก็บข้อมูลขนาดใหญ่ ด้วยการนำฮาร์ดไดร์ฟ (Hard Drive) ขนาดเล็ก ที่สามารถเป็นได้ทั้ง ฮาร์ดดิสก์ไดร์ฟ (Hard Disk Drive - HDD) หรือจะเป็น อุปกรณ์เก็บข้อมูลแบบ SSD จำนวนหลายตัวมาต่อรวมกันเป็นไดร์ฟใหม่อย่างน้อยหนึ่งตัว
ยกตัวอย่างเช่น การนำฮาร์ดไดร์ฟความจุ 20 TB. จำนวน 50 ตัว มาทำ RAID เพื่อจำลองเป็นไดร์ฟที่มีความจุ 1 PB หนึ่งตัว, ไดร์ฟขนาด 500 TB. จำนวนสองตัว หรือไดร์ฟขนาด 250 TB. จำนวน 4 ตัว
โดยวัตถุประสงค์ของการทำ RAID นั้นก็เพื่อช่วยในการสำรองข้อมูล ไม่ก็เพิ่มประสิทธิภาพในการทำงานของไดร์ฟ หรือทั้งคู่ก็ได้ ซึ่งแนวคิดในการทำ RAID นั้นเป็นขั้วตรงข้ามของระบบ "Single Large Expensive Disk" (SLED) ที่พึ่งพาฮาร์ดไดร์ฟความจุสูงคุณภาพดีเพียงตัวเดียว
ในระบบ RAID การเก็บบันทึกข้อมูลจะถูกกระจายลงในฮาร์ดไดร์ฟแต่ละตัวที่อยู่ในระบบด้วยหลากหลายวิธี จะเรียกว่า "RAID Level" โดยขึ้นอยู่กับระดับความซ้ำซ้อน และประสิทธิภาพที่ต้องการ ความแตกต่างของรูปแบบการกระจายข้อมูลลงในไดร์ฟจะถูกเรียกว่า "RAID" ตามด้วย "ตัวเลข" ตัวอย่างเช่น RAID 0, RAID 1, RAID 5 ฯลฯ โดยจะแตกต่างกันที่ความเสถียรภาพ, ความจุ และประสิทธิภาพ
นิยามของการทำ RAID ถูกใช้เป็นครั้งแรกในปี ค.ศ. 1987 (พ.ศ. 2530) โดย David Patterson, Randy Katz และ Garth A. Gibson พวกเขาได้เผยแพร่บทความที่มีเนื้อหาว่า "ด้วยการทำ Redundant Arrays of Inexpensive Disks (RAID) โดยใช้ฮาร์ดไดร์ฟราคาถูก 3 ตัวทำงานร่วมกัน มันจะได้ผลลัพธ์ที่มีประสิทธิภาพสูงกว่าฮาร์ดไดร์ฟที่ดีที่สุดในเวลานั้นได้ และมีเสถียรภาพที่มั่นใจได้มากกว่าการใช้ฮาร์ดไดร์ฟเพียงตัวเดียว"
RAID ทำงานด้วยการกระจายข้อมูลลงบนฮาร์ดไดร์ฟหลายตัวที่ทำงานร่วมกันอยู่ในระบบ และอนุญาตให้มีการ Input/Output แบ่งงานเพื่อทำสองสิ่งพร้อมกันได้อย่างสมดุล เพื่อเพิ่มประสิทธิภาพ เพราะการที่มีฮาร์ดไดร์ฟหลายตัวทำงานร่วมกัน จะช่วยลดค่าเฉลี่ยของโอกาสที่ระบบจะทำงานผิดพลาดได้
แม้ภายในระบบ RAID จะประกอบไปด้วยฮาร์ดไดร์ฟหลายตัว แต่ระบบปฏิบัติการของคอมพิวเตอร์ก็จะมองเห็นมันเป็นไดร์ฟเพียงตัวเดียวเท่านั้น
การกระจายไฟล์ลงในฮาร์ดไดร์ฟจะมีอยู่หลายรูปแบบขึ้นอยู่กับความต้องการของผู้ใช้งาน แต่ที่นิยมจะมีอยู่ 3 รูปแบบ ประกอบไปด้วย
การทำ RAID ในรูปแบบต่าง ๆ
ภาพจาก : https://www.diskpart.com/articles/raid-hard-drive.html
การทำ RAID นั้นคือการนำฮาร์ดไดร์ฟ หลาย ๆ ตัวมาเชื่อมต่อเพื่อทำงานเหมือนเป็นฮาร์ดไดร์ฟตัวเดียว ในการจะพ่วงฮาร์ดไดร์ฟให้เชื่อมต่อหากันได้ เราจำเป็นต้องอาศัย "ตัวควบคุมการทำงานของ RAID (RAID Controller)" ในการควบคุม ซึ่งมีอยู่ 2 แบบนั่นก็คือ ตัวควบคุมด้วยฮาร์ดแวร์ (Hardware RAID) และ ตัวควบคุมด้วยซอฟต์แวร์ (Software RAID)
Hardware RAID เป็นอุปกรณ์ทางกายภาพ (Physical Product) ที่ภายในมีระบบประมวลผลที่สามารถปรับแต่งได้ตามความต้องการของผู้ใช้ได้ อาจจะเป็นชุดควบคุม (Controller) หรือ RAID Card
โดย Hardware RAID จะทำงานแบบอิสระแยกจากตัวระบบปฏิบัติการใดๆ ซึ่งการทำงานของมันจะไม่สร้างภาระให้กับทรัพยากรของระบบคอมพิวเตอร์ และมีอิสระในการปรับแต่งระบบได้ค่อนข้างเยอะกว่า Software RAID
ข้อเสียของ Hardware RAID ต้องซื้อฮาร์ดแวร์เพิ่ม ซึ่งราคาก็ไม่ถูก ทำให้ต้นทุนของระบบสูงพอสมควร
RAID Controller Card ของ Highpoint-tech SSD7540 ราคา $1,099 (ประมาณ 41,475 บาท)
ภาพจาก : https://www.highpoint-tech.com/product-page/ssd7540
Software RAID เป็นระบบ RAID ที่ใช้ ซอฟต์แวร์ (Software) ในการทำงานล้วน ๆ โดยไม่ต้องพึ่งพาฮาร์ดแวร์เสริมมาช่วยในการทำงาน โดยมันจะแบ่งทรัพยากรของคอมพิวเตอร์ที่มีอยู่แล้วมาใช้ในการทำ RAID แทน ด้วยการตั้งค่าผ่านการทำงานของไดร์ฟผ่านซอฟต์แวร์ RAID ที่มีให้เลือกอยู่หลายตัว เช่น AOMEI Partition Assistant Professional, Stablebits DrivePool, Paragon Hard Disk Manager ฯลฯ
ระบบปฏิบัติการเวอร์ชันส่วนใหญ่ในยุคนี้ รองรับการทำ Software RAID ได้เกือบทุกตัว ไม่ว่าจะเป็น macOS จาก Apple, Windows จาก Microsoft รวมไปถึง Linux เวอร์ชันต่าง ๆ
ภาพจาก : https://documentation.suse.com/sles/15-SP2/html/SLES-all/cha-raid.html
Hardware RAID | Software RAID |
มีระบบประมวลผลในตัว ทำงานเป็นอิสระจากระบบปฏิบัติการ | ใช้ทรัพยากรคอมพิวเตอร์ในการทำงานผ่านตัวระบบปฏิบัติการ |
ประสิทธิภาพดี และต้องลงทุนสูง | ลงทุนต่ำ เพราะไม่ต้องใช้ Hardware RAID controller |
ประสิทธิภาพไม่คงที่ หากมีการใช้ไดร์ฟแบบ SSD ร่วมกับ HDD | สามารถใช้งาน RAID 0 และ RAID 1 ได้โดยไม่รู้สึกส่งผลต่อการทำงานของตัวระบบปฏิบัติการ |
หากไดร์ฟมีปัญหา สามารถถอดเปลี่ยนได้อย่างง่ายดาย | ต้องสั่งหยุดระบบ RAID ก่อน ถึงสามารถเปลี่ยนได้ |
กรณีที่ตัว RAID controller เสีย ควรจะใช้ซื้อรุ่นเดิมมาเปลี่ยน เพื่อป้องกันการทำงานที่ผิดปกติ | ติดตั้ง Software RAID ในระบบปฏิบัติการตัวใดตัวหนึ่งก็พอ ระบบปฏิบัติการอื่นก็สามารถเข้ามาใช้งานได้ |
อุปกรณ์ RAID นั้นมีอยู่หลายเวอร์ชัน โดยมันถูกเรียกว่า "Level" เดิมที RAID ถูกแบ่งออกเป็น 6 Level ประกอบไปด้วย RAID 0, RAID 1, RAID 2, RAID 3, RAID 4 และ RAID 5 แต่ภายหลังก็มีการพัฒนาเพิ่มขึ้นออกมาอีกหลายเวอร์ชัน ซึ่งสามารถแบ่งได้ 3 ประเภท คือ Standard RAID Level, Nested RAID Level และ Nonstandard RAID Level
อย่างไรก็ตาม RAID Lvel ที่นิยมใช้งานกัน จะประกอบไปด้วย RAID Level 0, 1, 4, 5, 6 และ 10
RAID 0 เป็นการทำงานแบบ Striping (ทำให้เป็นริ้วๆ หรือชิ้นเล็กๆ) นั่นหมายความว่า ข้อมูลจะถูกย่อยให้เป็นก้อนข้อมูลขนาดเล็ก (Block) ก่อนที่จะกระจายไปเก็บบนฮาร์ดไดร์ฟทุกตัวในระบบ เมื่อระบบต้องการใช้งานข้อมูลดังกล่าว มันจะดึงข้อมูลจากทุกฮาร์ดไดร์ฟมารวมกันเป็นข้อมูลเดิม โดยการทำแบบนี้จะทำให้ความเร็วในการอ่าน/เขียนข้อมูล เร็วขึ้นกว่าเดิมมาก
มันจึงเป็นตัวเลือกที่ดีสำหรับผู้ที่เน้นประสิทธิภาพในการทำงานเป็นหลัก อย่างไรก็ตาม ข้อเสียของ RAID 0 คือแทบจะไม่มีการทำสำเนาข้อมูลเลย หากมีฮาร์ดไดร์ฟตัวใดตัวหนึ่งหยุดทำงานไป ข้อมูลทั้งหมดdHจะเกิดความเสียหาย จนไม่สามารถเรียกดูข้อมูลได้อีกต่อไป แถมยังกู้คืนกลับมายากอีกด้วย
ภาพจาก : https://www.techtarget.com/searchstorage/definition/RAID
RAID 1 ใช้หลักการทำงานแบบ Mirroring (แบบเงา) ข้อมูลจะถูกทำสำเนาเก็บแยกลงบนฮาร์ดไดร์ฟคนละตัว หากไดร์ฟตัวหนึ่งเกิดความเสียหาย ก็ยังสามารถเรียกข้อมูลจากไดร์ฟสำรองได้ ในส่วนของประสิทธิภาพในการอ่านข้อมูลก็ถือว่าทำได้ดี เพราะมันก็ใช้เทคนิคย่อยข้อมูลกระจายออกเป็น Blocks เหมือนกับ RAID 0
อย่างไรก็ตาม ในการเขียนข้อมูล RAID 1 จะทำได้ช้ากว่า RAID 0 เนื่องจากต้องมีการทำสำเนาไฟล์ด้วย นอกจากนี้ การเก็บสำเนาไฟล์เอาไว้ถือว่าเป็นการสิ้นเปลืองพื้นที่เช่นกัน ทำให้อัตราต้นทุนต่อพื้นที่สูงขึ้น
ภาพจาก : https://www.techtarget.com/searchstorage/definition/RAID
RAID 2 เป็นมาตรฐาน RAID ที่มีประสิทธิภาพในการอ่านเขียนข้อมูลสูงมาก โดยตัวควบคุม (Controller) พิเศษที่จะคอยประสานทิศทางการหมุนของฮาร์ดไดร์ฟให้เท่ากัน เพื่อให้สามารถเข้าถึงตำแหน่งข้อมูลของข้อมูลที่ถูกกระจายอยู่ได้ในเวลาเดียวกัน
นอกจากนี้ การ Stripe ข้อมูลให้กลายเป็น Block ก็เป็นการย่อยให้เล็กลงในระดับบิต (Bit-level striping) และมีการตรวจสอบข้อผิดพลาด (Error Checking and Correcting - ECC) ด้วยการใช้รหัสแฮมมิง (Hamming Code) เข้ามาช่วยในการตรวจสอบข้อมูล
อย่างไรก็ตาม RAID 2 ไม่ได้รับความนิยมมากนัก เนื่องจากใช้วิธีการย่อย และทำสำเนาไฟล์ที่แตกต่างไปจากมาตรฐาน RAID อื่น ๆ อีกทั้งตัว RAID Controller ที่ใช้ในการประสานการทำงานของดิสก์นั้นมีราคาแพงมาก แถมการติดตั้งก็มีความซับซ้อน ทำให้แทบจะไม่มีใครใช้งาน RAID 2 เรามักจะเห็นมันได้แค่ในฮาร์ดไดร์ฟแบบ ECC เท่านั้น
ภาพจาก : https://www.techtarget.com/searchstorage/definition/RAID
RAID 3 มีหลักการทำงานที่คล้ายคลึงกับ RAID 2 ต้องใช้ Controller ในการประสานทิศทางการหมุนของฮาร์ดไดร์ฟให้เท่ากัน แต่ว่า RAID 3 จะย่อยไฟล์ออกเป็น Block ในระดับไบต์ (Byte-level Striping) ก่อน จากนั้นก็ทำไฟล์ Parity (ไฟล์ที่สำรองโครงสร้างของข้อมูลเพื่อไว้ใช้กู้คืนไฟล์ที่เสียหายได้) เก็บไว้ที่ฮาร์ดไดร์ฟตัวหนึ่งในระบบ เพื่อสำรองข้อมูลเอาไว้ให้ใช้กู้คืนไฟล์ในภายหลังได้
โดยข้อจำกัดของระบบนี้คือ การอ่าน และเขียนข้อมูลของไดร์ฟทั้งหมดจะเกิดขึ้นในเวลาเดียวกัน หากมีการสั่งอ่าน/เขียนข้อมูลใหม่เกิดขึ้นจะต้องรอคิวให้คำสั่งเดิมทำงานเสร็จเสียก่อน ระบบนี้จึงเหมาะกับการทำงานของผู้ใช้เพียงคนเดียว และไม่ใช่งานที่ต้องสั่งอ่าน/เขียนบ่อยครั้งนัก
ภาพจาก : https://www.techtarget.com/searchstorage/definition/RAID
รูปแบบการทำงานของ RAID 4 จะคล้ายกับ RAID 0 คือมีการย่อยไฟล์ออกเป็น Block กระจายไปเก็บบนทุกไดร์ฟที่อยู่ในระบบ RAID แต่จะเพิ่มการทำไฟล์ Parity ขึ้นมาแยกไปเก็บไว้ที่ไดร์ฟตัวหนึ่งด้วย หากไดร์ฟไหนเกิดข้อผิดพลาดขึ้นมาก็สามารถสร้างข้อมูลใหม่กลับคืนมาได้ ซึ่งเป็นวิธีการที่ประหยัดพื้นที่มากกว่าการสำรองข้อมูลแบบ RAID 1
อย่างไรก็ตาม ระบบนี้จะเขียนข้อมูลได้ค่อนข้างช้า เนื่องจากการสำรองไฟล์จะเกิดขึ้นที่ไดร์ฟเพียงตัวเดียว ทำให้เกิดปัญหาคอขวดขึ้น ซึ่งสามารถแก้ไขได้ด้วยการทำ RAID 5
ภาพจาก : https://www.techtarget.com/searchstorage/definition/RAID
RAID 5 มีความใกล้เคียงกับ RAID 4 แต่แตกต่างกันตรงแทนที่จะเก็บสำเนาไฟล์ Parity เอาไว้ที่ไดร์ฟเพียงตัวเดียว มันจะกระจายเก็บไปเก็บไว้บนทุกไดร์ฟเลย ทำให้มีข้อดีคือ ไม่เกิดปัญหาคอขวด และลดโอกาสที่จะสูญเสียข้อมูลจากการที่ไดร์ฟมีปัญหา เพราะทุกไดร์ฟจะมีการสำรองข้อมูลเอาไว้
การจะทำ RAID 5 จะต้องมีฮาร์ดไดร์ฟอย่างน้อย 3 ตัว แต่ส่วนใหญ่จะแนะนำให้ใช้อย่างน้อย 5 ตัว ด้วยเหตุผลด้านประสิทธิภาพ
อย่างไรก็ตาม ในระบบที่ต้องมีการเขียนข้อมูลตลอดเวลา RAID 5 ไม่ใช่ตัวเลือกที่ดีนัก เพราะทุกครั้งที่มีการเขียนไฟล์ มันจะต้องทำไฟล์ Parity ด้วยทุกรอบ ซึ่งเป็นการเสียเวลาส่งผลต่อสุขภาพ และในการกู้ไฟล์ที่ผิดพลาด จะใช้เวลาในการสร้างใหม่ค่อนข้างนาน
ภาพจาก : https://www.techtarget.com/searchstorage/definition/RAID
RAID 6 ออกแบบมาเพื่อแก้ไขปัญหาของ RAID 5 ด้วยการเพิ่มจำนวน Block สำหรับเก็บไฟล์ Parity ขึ้นเป็น 2 Blocks เพื่อเพิ่มประสิทธิภาพในการกู้คืนระบบทำได้ดียิ่งขึ้น อย่างไรก็ตาม มันก็มีข้อเสียตรงที่ RAID 6 จะมีประสิทธิภาพในการเขียนข้อมูลได้ช้ากว่า RAID 5
ภาพจาก : ภาพจาก : https://www.techtarget.com/searchstorage/definition/RAID
ในระบบ RAID Level ไม่จำเป็นต้องมีเพียงชนิดเดียวเสมอไป บางระบบสามารถมีหลาย Level รวมอยู่ในระบบเดียว โดยจะเรียกว่า Nested RAID ตัวอย่างเช่น
การผสมผสานระหว่าง RAID 1 และ RAID 0 จะเรียกว่า RAID 10 ที่ข้อมูลจะมีการทำสำเนาเหมือน RAID 1 และตัวสำเนาจะถูกกระจายออกไปเหมือน RAID 0
ภาพจาก : https://www.techtarget.com/searchstorage/definition/RAID
มีความคล้ายคลึงกับ RAID 1+0 แต่จะแตกต่างกันตรงที่ลำดับการทำงาน แทนที่จะทำสำเนาก่อนแล้วค่อยกระจาย เปลี่ยนเป็นการกระจายก่อน แล้วค่อยทำสำเนา
RAID 03 ยังรู้จักกันในชื่ออื่นด้วยว่า RAID 53 หรือ RAID 5+3 โดยจะใช้การกระจายข้อมูลแบบ RAID 0 แล้วนำมาเก็บข้อมูลแบบ RAID 3 วิธีการนี้จะทำให้ได้ประสิทธิภาพที่สูงกว่า RAID 3 แต่ก็แลกมาด้วยต้นทุนที่สูงขึ้น
เป็นการผสมผสานระหว่างการทำสำเนาไฟล์ Parity ของ RAID 5 และกระจายออกไปเก็บเหมือน RAID 0 เพื่อเพิ่มประสิทธิภาพในการทำงานของ RAID 5 โดยที่ไม่ลดคุณสมบัติในการปกป้องข้อมูล
Nonstandard RAID Level เป็นระบบที่แตกต่างไปจากมาตรฐาน RAID ทั่วไป โดยมันถูกพัฒนาขึ้นมาโดยบริษัท หรือองค์กรโดยมีกรรมสิทธิ์คุ้มครองอยู่ ตัวอย่างเช่น
ทำงานอยู่บนพื้นฐานของ RAID 3 และ RAID 4 แต่เพิ่มระบบ Caching เข้าไป มีการใช้ Real-time embedded OS เป็น Controller
RAID level ชนิดนี้จะทำให้ตัว RAID controller สามารถตัดสินใจว่าควรจะเก็บไฟล์ Parity ด้วยวิธีการไหน ระหว่าง RAID 3 และ RAID 5 โดยขึ้นอยู่กับว่ามันเป็นไฟล์ข้อมูลแบบไหน RAID Level ที่สามารถทำหน้าที่เขียนข้อมูลได้เหมาะสมกว่า
เป็น Level ที่พัฒนาขึ้นมาโดย ลีนุกซ์ (Linux) โดยมันรองรับการสร้างทั้ง Nested RAID Level และ Nonstandard RAID Level รวมถึงรองรับการทำ RAID 0, RAID 1, RAID 4, RAID 5 และ RAID 6 ด้วย
การทำ RAID อาจไม่ใช่เรื่องจำเป็นสำหรับผู้ใช้งานคอมพิวเตอร์ทุกคน ลองมาอ่านตัวอย่างสถานการณ์ที่การทำ RAID เป็นเรื่องที่เหมาะสมกันสักหน่อย
|
แอดมินสายเปื่อย ชอบลองอะไรใหม่ไปเรื่อยๆ รักแมว และเสียงเพลงเป็นพิเศษ |