ZFS: Mirror vs. RAID-Z


14

ฉันวางแผนที่จะสร้างไฟล์เซิร์ฟเวอร์โดยใช้ OpenSolaris และ ZFS ที่จะให้บริการหลักสองประการ - เป็นเป้าหมาย iSCSI สำหรับเครื่องเสมือน XenServer & เป็นเซิร์ฟเวอร์ไฟล์โฮมทั่วไป ฮาร์ดแวร์ที่ฉันกำลังดูประกอบด้วยตัวควบคุม SATA 4 พอร์ต, 2x ไดรฟ์สำหรับบูตขนาดเล็ก (หนึ่งตัวสำหรับคอนโทรลเลอร์แต่ละตัว) และไดรฟ์ขนาดใหญ่ 4x ตัวสำหรับการจัดเก็บ สิ่งนี้อนุญาตให้มีพอร์ตว่างหนึ่งพอร์ตต่อตัวควบคุมสำหรับการอัปเกรดอาร์เรย์ตามถนน

ที่ฉันสับสนเล็กน้อยคือวิธีการตั้งค่าไดรฟ์จัดเก็บข้อมูล สำหรับการแสดงการทำมิเรอร์นั้นดูเหมือนจะเป็นราชา ฉันมีเวลายากที่จะเห็นประโยชน์ที่จะได้รับจากการใช้ RAIDZ ในการมิรเรอร์ ด้วยการตั้งค่านี้ฉันสามารถเห็นสองตัวเลือก - สองมิร์เรอร์พูลในหนึ่งแถบหรือ RAIDZ2 ทั้งสองควรป้องกันความล้มเหลวของไดรฟ์ 2 ตัวและ / หรือตัวควบคุมหนึ่งล้มเหลว ... ประโยชน์เพียงอย่างเดียวของ RAIDZ2 ก็คือไดรฟ์ 2 ตัวใด ๆ ที่อาจล้มเหลว การจัดเก็บควรเป็น 50% ของความจุในทั้งสองกรณี แต่ก่อนอื่นควรมีประสิทธิภาพที่ดีขึ้นใช่ไหม?

อีกสิ่งหนึ่งที่ฉันพยายามจะทำคือการใช้อาร์เรย์ที่มิเรอร์พร้อมอุปกรณ์มากกว่าสองชิ้น เพื่อความสมบูรณ์ของข้อมูลถ้ามีจะเป็นประโยชน์ของ RAIDZ ผ่านทางสามทางหรือไม่ ตั้งแต่ ZFS รักษาความสมบูรณ์ของไฟล์ RAIDZ นำอะไรมาสู่ตาราง ... ความสมบูรณ์ของ ZFS ไม่ตรวจสอบค่าของพาริตี้ของ RAIDZ

คำตอบ:


14

คำตอบง่ายๆคือการสะท้อนบางสิ่งบางอย่างนั้นแทบจะไม่มีพลังในการประมวลผลเลยมันแค่เขียนลงดิสก์ครั้งที่สอง สำหรับ RAID-Z2 คุณจะต้องคำนวณ parity block ใหม่ทั้งหมดซึ่งแม้ว่าขนาดเล็กจะสามารถชะงัก CPU ได้เมื่อคุณต้องเขียนข้อมูลจำนวนมากอย่างรวดเร็ว

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

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


แต่ใน ZFS บล็อกความเท่าเทียมกันของ RAIDZ ให้อะไรคุณ มันให้ความสมบูรณ์ของข้อมูลเพิ่มเติมนอกเหนือจาก ZFS ที่มีอยู่แล้วหรือไม่? หรือมันเป็นสิ่งจำเป็นสำหรับไดรฟ์สองตัวที่จะตาย? หากเป็นประโยชน์เพียงอย่างเดียวในสถานการณ์จำลองสามทางไม่มีประโยชน์ใด ๆ ของ RAIDZ เหนือกระจกใช่มั้ย
John Clayton

1
RAID-Z อนุญาตให้หนึ่งไดรฟ์ตาย - ถ้าคุณมี 10 ไดรฟ์คุณจะได้รับข้อมูล 9 ไดรฟ์ ด้วย RAID-Z2 คุณสามารถมีสองไดรฟ์ตายและมี 8 ไดรฟ์มูลค่าของข้อมูล ด้วยกระจกเงาคุณสามารถมีไดรฟ์ได้ครึ่งหนึ่ง แต่มีเพียงหนึ่งชุดเท่านั้น ฉันสงสัยว่าคุณรู้เรื่องนี้อยู่แล้ว แต่นี่เป็นกรณีของไดรฟ์ 4 ตัวที่ให้สองวิธีในการแก้ปัญหาสองไดรฟ์ - RAID-Z2 และโหมดมิเรอร์ ไม่มีค่าเผื่อความสมบูรณ์ของข้อมูลเพิ่มเติมที่เป็น "ประโยชน์" ในสถานการณ์ปกติ
dotwaffle

ดังนั้นเพื่อให้ชัดเจนประโยชน์ของ RAIDZ เหนือกระจกก็คือการป้องกันเพิ่มเติมเล็กน้อยจากความล้มเหลวของฮาร์ดแวร์? RAIDZ1 และกระจกเงาพร้อมไดรฟ์ X นั้นเทียบเท่ากันใช่หรือไม่
John Clayton

5
พาริตี้ของ RAID-Z เป็นชุดตรวจสอบที่สร้างขึ้นภายในของ ZFS การตรวจสอบทั้งหมดจะทำให้แน่ใจว่าข้อมูลที่อ่านจากดิสก์นั้นถูกต้อง มันถูกออกแบบมาให้ตรวจสอบอย่างรวดเร็วด้วยค่าใช้จ่ายเล็กน้อย พาริตี้ของ RAID-Z ให้คุณคือความสามารถในการสร้างข้อมูลที่เสียหายในกรณีที่สูญเสียไดรฟ์ (หรือ 2 สำหรับ RAID-Z2) แต่การคำนวณเพื่อสร้างข้อมูลพาริตีนี้นั้นมี CPU มากเกินกว่าการตรวจสอบบล็อกอย่างง่ายและจะต้องคำนวณบนแถบทั้งหมดแม้ว่าคุณจะเขียนบล็อก 4KB เท่านั้น
afrazier

4
@ John Clayton: ระดับของความซ้ำซ้อนขึ้นอยู่กับวิธีการกำหนดค่าที่เก็บข้อมูลของคุณ คุณสามารถสร้างมิเรอร์แบบ N ทางซึ่งหมายความว่าความจุข้อมูลของคุณมีขนาดเท่ากับหนึ่งไดรฟ์ แต่คุณสามารถสูญเสียไดรฟ์ N-1 โดยไม่สูญเสียข้อมูลใด ๆ ตัวอย่างเช่นหากคุณมีมิเรอร์แบบ 3 ทางไดรฟ์ทั้ง 3 ตัวจะมีข้อมูลเดียวกันและคุณอาจสูญเสียไดรฟ์ 2 ตัวโดยไม่สูญเสียข้อมูลใด ๆ ข้อแตกต่างคือการเพิ่มไดรฟ์ลงในกระจกเงา N-way ช่วยเพิ่มความซ้ำซ้อน (แต่ความจุของคุณจะมีขนาดเท่ากับ 1 ไดรฟ์เสมอ) ในขณะที่การเพิ่มไดรฟ์ไปยัง Raidz2 จะเพิ่มความจุ
ปล้น

18

RAID-Z กำจัดบทลงโทษการเขียนส่วนใหญ่และปัญหาด้านความสมบูรณ์ของข้อมูลที่โวลุ่ม RAID 5/6 ต้องทนทุกข์ทรมานโดยเสียเวลา CPU โดยทั่วไประบบจะมีรอบของ CPU ในการสำรองดังนั้นการใช้เวลา CPU เพื่อปรับปรุงประสิทธิภาพของ IO และความถูกต้องของข้อมูลคือการประนีประนอมที่ดีกับการทำมิเรอร์

นี่คือคำอธิบายโดยละเอียดของ RAID-Zที่อาจตอบคำถามอื่น ๆ

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


1
ต้องให้คำตอบกับ dotwaffle เพราะเขาช่วยให้ฉันเข้าใจความแตกต่างทางเทคนิค คำแนะนำที่ดีเกี่ยวกับการใช้งานที่ตั้งใจแม้ว่า ... จริง ๆ แล้วทำให้ฉันหยุดและคิด
John Clayton

1
สิ่งสำคัญที่ควรทราบคือในขณะที่ RAIDZ เผยแพร่ปัญหาการลงโทษในการเขียนแต่ก็แนะนำปัญหาการอ่านเนื่องจากการทำงานพร้อมกันที่เพิ่มขึ้นสำหรับการดำเนินการอ่านแต่ละครั้ง
the-wabbit
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.