พาริตี้ทำงานบนอาเรย์ RAID-5 ได้อย่างไร


31

ฉันต้องการสร้างอาร์เรย์ RAID ที่ดีเพียงเล็กน้อยสำหรับการสำรองข้อมูลโดยเฉพาะ ฉันต้องการที่จะมีพื้นที่ว่างประมาณ 2 - 4B เนื่องจากฉันมีนิสัยที่น่ารังเกียจเล็ก ๆ น้อย ๆ ในการแปลงข้อมูลทุกอย่างให้เป็นดิจิทัล ดังนั้นฉันต้องการที่เก็บข้อมูลจำนวนมากและความซ้ำซ้อนในกรณีที่ไดรฟ์ล้มเหลว ฉันจะสำรองข้อมูล/homeโฟลเดอร์ของคอมพิวเตอร์ 2-3 เครื่องโดยใช้หนึ่งใน "Time Machine" โคลนสำหรับ Linux อาร์เรย์นี้จะสามารถเข้าถึงได้ผ่านเครือข่ายท้องถิ่นของฉันผ่าน SSH

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

/---STORAGE---\    /---PARITY----\
|   DRIVE_1   |    |   DRIVE_4   |
|   DRIVE_2   |----|     ...     |
|   DRIVE_3   |    |             |
\-------------/    \-------------/

ดูเหมือนว่าไดรฟ์ 1-3 จะปรากฏขึ้นและทำงานเป็นไดรฟ์เดียวขนาดใหญ่ ( capacity * number_of_drives) และไดรฟ์สำรอง (สำรอง) ไดรฟ์เหล่านั้น สิ่งที่แปลกสำหรับฉันคือฉันมักจะเห็นไดรฟ์เก็บข้อมูล 3+ ในไดอะแกรมเพื่อไดรฟ์พาริตี้ 1 หรือ 2 ตัวเท่านั้น สมมติว่าเรากำลังเรียกใช้ไดรฟ์ 4 1TB ในอาเรย์ RAID-5, ที่จัดเก็บข้อมูล 3 ตัวและ Parity 1 อันเรามีพื้นที่เก็บข้อมูลจริง 3TB แต่มีเพียง 1TB เท่านั้น!

ฉันรู้ว่าฉันพลาดอะไรบางอย่างที่นี่มีคนช่วยฉันได้ไหม นอกจากนี้สำหรับกรณีการใช้งานของฉันจะดีกว่าอะไร RAID-5 หรือ RAID-6 ความอดทนต่อข้อผิดพลาดเป็นสิ่งที่สำคัญที่สุดสำหรับฉัน ณ จุดนี้เนื่องจากมันจะทำงานผ่านเครือข่ายสำหรับใช้ในบ้านเท่านั้นความเร็วไม่สำคัญอย่างมาก

คำตอบ:


30

มันเป็นเพียงแค่ XORs แต่ละบิตที่สอดคล้องกันจากแต่ละไดรฟ์ - หากคุณสูญเสียไดรฟ์ใด ๆ คุณสามารถสร้างข้อมูลที่หายไปได้อีกครั้ง

สำหรับพื้นหลัง:

A B (A XOR B)
0 0    0
1 1    0
0 1    1
1 0    1

สมมติว่า D เป็น XOR ของคอลัมน์อื่นจากนั้นตราบใดที่คุณสูญเสียไดรฟ์เพียงตัวเดียวคุณก็สามารถรู้ได้ว่าคุณทำอะไรหายไป

A B C D
1 0 0 1
0 1 0 1
1 1 0 0

บางครั้งบิตแถบจะถูกกระจายข้ามไดรฟ์ แต่แนวคิดจะเหมือนกัน

ดังนั้นสำหรับ RAID-5 ไม่ว่าจะมีไดรฟ์กี่ตัวคุณต้องการเพียง 1 ไดรฟ์เท่านั้นสำหรับพาริตี้ที่เท่ากันหรือใหญ่กว่าไดรฟ์ที่เล็กที่สุดในอาเรย์ที่คุณต้องการ RAID

RAID-5 สำหรับการใช้งานส่วนตัวน่าจะดีที่สุดเนื่องจากความซับซ้อนในการคำนวณต่ำกว่า RAID-6 มาก

RAID-6 นั้นซับซ้อนกว่าการใช้Galois Fieldsเพื่อคำนวณพาริตี และนั่นสามารถคำนวณความเท่าเทียมกันทางภาษีได้ อย่างไรก็ตามคุณสามารถสูญเสียไดรฟ์ได้มากขึ้น แต่ถ้าคุณสร้างอาเรย์ของคุณใหม่ทันทีที่พบความล้มเหลวเพียงครั้งเดียวคุณควรจะติดกับ RAID-5


คำตอบที่ยอดเยี่ยม ฉันกำลังคิดเรื่องสเกลใหญ่เกินไปบนพื้นฐานของฮาร์ดดิสก์ที่สมบูรณ์จริง ๆ ไม่ใช่ระดับบิต ดังนั้น RAID-5 จึงใช้ไดรฟ์เฉพาะสำหรับพาริตี้หรือไดรฟ์ทั้งหมดสำหรับพาริตี้แทน ฉันสับสนในเรื่องนั้น
Naftuli Kay

2
ฉันเชื่อว่าวิธีการที่ทันสมัยคือการกระจายความเท่าเทียมในแนวทแยงมุมบนไดรฟ์ทั้งหมด สิ่งนี้มีผลในการเร่งเวลาอ่านให้เป็นพาริตี้บิตเนื่องจากคำขอ IO หลายคำขอสามารถส่งแบบขนานกับไดรฟ์ต่าง ๆ ได้ แต่อย่าอ้างถึงฉัน
แมตต์

มีสูตรทางคณิตศาสตร์ที่ฉันสามารถใช้เพื่อกำหนดความจุของxไดรฟ์และyGB ที่มีอยู่ในแต่ละไดรฟ์หรือไม่
Naftuli Kay

2
ใช่มันเป็น (ขนาดไดรฟ์ที่เล็กที่สุด) * (จำนวนไดรฟ์ในอาร์เรย์ - 1)
แมตต์

1
หากความเท่าเทียมกันเป็นเพียง XOR ของดิสก์อีกสองตัวคุณจะรู้ได้อย่างไรว่าดิสก์สองตัวใดที่เสียหาย จะไม่พลิกบนดิสก์อย่างใดอย่างหนึ่งจะทำให้ความเท่าเทียมกันในบิต?
Jay Sullivan

8

นี่คือสิ่งที่ฉันคิดว่าเป็นแผนภาพที่ดีกว่าเพื่อแสดงให้เห็นว่าแพริตีทำงานใน RAID4 และ RAID5 ได้อย่างไร

RAID4

Disk1  Disk2  Disk3  Disk4
----------------------------
data1  data1  data1  parity1
data2  data2  data2  parity2
data3  data3  data3  parity3
data4  data4  data4  parity4

RAID5

Disk1   Disk2   Disk3   Disk4
----------------------------
parity1 data1   data1   data1   
data2   parity2 data2   data2  
data3   data3   parity3 data3
data4   data4   data4   parity4

หรือดู SVG นี้ได้ที่ Wikipedia en.wikipedia.org/wiki/Standard_RAID_levels#/media/ …
Giuseppe Crinò

4

ฉันอยากจะแนะนำให้อ่านบทความ Wikipedia นี้เกี่ยวกับ Raid 5 และ Raid 6

http://en.wikipedia.org/wiki/Standard_RAID_levels#RAID_5_parity_handling

RAID 5 เขียนบล็อกพาริตีในแต่ละสตริปดังนั้นสตริป A ของดิสก์อาร์เรย์ 4 ตัวจะเขียนการตรวจสอบพาริตีบนดิสก์ที่ 4 ด้วยข้อมูลบนดิสก์ 1, 2 และ 3

สำหรับ Strip B บล็อกพาริตี้อยู่บนดิสก์ 3 โดยมีข้อมูลบนดิสก์ 1,2 และ 4 .. เป็นต้น

หากดิสก์ 4 ล้มเหลวข้อมูลสามารถกู้คืนได้สำหรับ Strip B เนื่องจากคุณทราบข้อมูลในดิสก์ 1 และ 2 และมีการตรวจสอบพาริตี้บนดิสก์ 3

ถ้า strip B มีพาริตีเป็น "2" และดิสก์ 1 มีข้อมูลเป็น "1" และข้อมูลดิสก์ 2 "0" ดังนั้นดิสก์ 4 จะต้องมีข้อมูลเท่ากับ "1" ดังนั้นดิสก์จะถูกเขียนด้วย data = "1"

ทั้งดิสก์สามารถสร้างใหม่ได้ด้วยวิธีนี้ RAID 6 ขยายสิ่งนี้โดยมี 2 บล็อกปาร์ตี้ต่อแถบ

เกี่ยวกับพื้นที่สำหรับการจู่โจม 5 คุณเคยปล่อยดิสก์หนึ่งแผ่นที่มีค่าเท่ากับพาริตีเท่านั้นเพราะมันเขียนเฉพาะบน parity block ต่อแถบในขณะที่การจู่โจม 6 คุณจะทำดิสก์ 2 แผ่น แต่ยังสามารถทำดิสก์สองแผ่นให้หลวมได้ การโจมตี 5;)

บทความ Wikipedia อธิบายสิ่งนี้ดีกว่า!


3

RAID 5 ใช้หนึ่งไดรฟ์สำหรับพาริตี้โดยไม่คำนึงถึงจำนวนไดรฟ์ข้อมูลในอาเรย์ ซึ่งหมายความว่าจะมีประสิทธิภาพมากขึ้นในแง่ของพื้นที่ที่ใช้งานได้มีการเพิ่มไดรฟ์มากขึ้น

ความเท่าเทียมกันทำได้โดยการดำเนินการ XOR ข้ามบล็อกเดียวกันในแต่ละไดรฟ์ เนื้อหาของไดรฟ์ความเท่าเทียมกันจะมีการปรับดังกล่าวว่าไดรฟ์ทั้งหมดXOR ให้เป็นศูนย์ นี่หมายความว่า RAID 5 คือจำกัดโดยความจุที่น้อยที่สุดของไดรฟ์ทั้งหมดในอาเรย์

RAID 6 นั้นคล้ายกันยกเว้นว่าสามารถยอมรับความล้มเหลวของไดรฟ์สองตัวพร้อมกันได้ สิ่งนี้มีประโยชน์เนื่องจากกระบวนการ " กู้คืน " อาเรย์หลังจากความล้มเหลวของไดรฟ์เดียวอาจทำให้เกิดความเครียดมากพอที่จะทำให้ไดรฟ์ที่สองล้มเหลว


นั่นหมายความว่าฉันสามารถมีไดรฟ์ 4 2TB และมีพื้นที่จัดเก็บข้อมูลซ้ำซ้อน 6TB ได้หรือไม่
Naftuli Kay

@TK Kocheran พร้อม RAID 5 ใช่ โปรดทราบว่าการจัดเก็บข้อมูลที่มีประสิทธิภาพจะลดลงเล็กน้อยเนื่องจากระบบไฟล์ ตัวอย่างเช่น NAS ของฉันที่มีไดรฟ์ 4 2TB ใน RAID-Z1 (RAID 5 รุ่น ZFS) มีพื้นที่ใช้งาน 5.18TB
sblair

ใช่แน่นอน :) เกิดขึ้นอย่างนั้นเสมอ คำถามต่อไปคือระบบไฟล์ที่จะใช้ ...
Naftuli Kay

0

หากเป้าหมายของคุณคือการยอมรับข้อผิดพลาด RAID-6 จะให้ข้อมูลสำรองที่เพียงพอเพื่อแยกสองไดรฟ์ โดยทั่วไปแล้ว RAID-5 จะทนต่อความล้มเหลวของไดรฟ์เดียวเท่านั้น


อัตราส่วนของไดรฟ์ต่อพาริตี้ (ที่เก็บข้อมูลทั้งหมด) สำหรับ RAID-6 คือเท่าใด drive_size * (drive_count - 2)?
Naftuli Kay

1
เช่นเดียวกับการยอมรับข้อบกพร่องสำหรับไดรฟ์ที่สองที่ไม่ดีก่อนที่คุณจะสามารถแทนที่ไดรฟ์แรกมีสถานการณ์อื่น ๆ ที่ดีเยี่ยมและฉันเจอมากกว่าหนึ่งครั้ง: ไดรฟ์เสียมากในอาเรย์ RAID และ ไดรฟ์ใหม่ถูกสั่งซื้อ ผู้ชายสุ่มบางคนที่ไม่รู้อะไรเลยเกี่ยวกับอาร์เรย์ของ RAID จะเข้าไปในห้องเซิร์ฟเวอร์ด้วยไดรฟ์ใหม่อยู่ในมือจัดระเบียบตัวเลขและนำไดรฟ์ที่ไม่ถูกต้องออกจากอาร์เรย์เพื่อทดแทน ภายใต้ RAID5 อาเรย์ของคุณจะถูกขันที่นั่น RAID6 หมายความว่าคุณยังสามารถกู้คืนได้
camster342
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.