คู่มือโดยละเอียดเกี่ยวกับการย้าย storage pool ของ ZFS จากการตั้งค่า RAIDZ1 ไปยัง RAIDZ2 ได้สร้างการถกเถียงอย่างหนักในชุมชนระบบจัดเก็บข้อมูล โดยผู้ใช้งานมีการโต้เถียงกันเรื่องความปลอดภัยและความเป็นไปได้ของวิธีการย้ายข้อมูลต่างๆ
กระบวนการย้ายข้อมูลนี้เกี่ยวข้องกับการอัปเกรดจากระบบ RAIDZ1 แบบ single-parity (คล้ายกับ RAID5) ไปเป็นการตั้งค่า RAIDZ2 แบบ dual-parity (คล้ายกับ RAID6) ซึ่งสามารถรับมือกับการเสียหายของฮาร์ดดิสก์พร้อมกันได้สูงสุด 2 ตัว แทนที่จะเป็นเพียง 1 ตัว การอัปเกรดนี้ให้การป้องกันข้อมูลที่ดีกว่า แต่มาพร้อมกับความซับซ้อนที่เพิ่มขึ้นและความเสี่ยงที่อาจเกิดขึ้นระหว่างการเปลี่ยนแปลง
ตารางเปรียบเทียب RAIDZ
การกำหนดค่า | จำนวนไดรฟ์ที่ต้องการ | ไดรฟ์ Parity | ความล้มเหลวของไดรฟ์ที่รองรับได้ | ประสิทธิภาพการจัดเก็บ |
---|---|---|---|---|
RAIDZ1 | อย่างน้อย 3 ตัว | 1 ตัว | ไดรฟ์เสีย 1 ตัว | ~75% (3 ไดรฟ์) |
RAIDZ2 | อย่างน้อย 4 ตัว | 2 ตัว | ไดรฟ์เสีย 2 ตัว | ~67% (4 ไดรฟ์) |
RAIDZ3 | อย่างน้อย 5 ตัว | 3 ตัว | ไดรฟ์เสีย 3 ตัว | ~60% (5 ไดรฟ์) |
วิธีการย้ายข้อมูลที่ถกเถียงกัน
แนวทางเดิมที่อธิบายไว้เกี่ยวข้องกับการทำให้ RAIDZ1 pool เสื่อมสภาพชั่วคราวโดยการถอดดิสก์หนึ่งตัวออกเพื่อสร้าง RAIDZ2 pool เริ่มต้น วิธีการนี้ช่วยให้ผู้ใช้สามารถย้ายข้อมูล 24TB ได้โดยไม่ต้องใช้พื้นที่จัดเก็บเพิ่มเติมมากมาย อย่างไรก็ตาม เทคนิคนี้ได้รับการวิพากษ์วิจารณ์อย่างรุนแรงจากสมาชิกในชุมชนที่โต้แย้งว่าสร้างช่วงเวลาความเสี่ยงที่ยอมรับไม่ได้
จุดประสงค์ทั้งหมดของการมี raid คือไม่ให้ระบบตกอยู่ในสถานะที่ไม่มีการสำรองข้อมูลเลย ไดรฟ์มีแนวโน้มที่จะเสียหายมากขึ้นระหว่างกระบวนการ resilvering เนื่องจากหัวอ่านต้องเคลื่อนที่ผ่านพื้นผิวแม่เหล็กทั้งหมดเพื่อสร้างอาร์เรย์ใหม่
กระบวนการนี้ใช้วิธีแก้ปัญหาที่สร้างสรรค์รวมถึง fake disk ที่สร้างขึ้นเป็น sparse file ซึ่งทำหน้าที่เป็นตัวแทนชั่วคราวระหว่างการย้ายข้อมูล แม้ว่าจะเป็นเทคนิคที่ชาญฉลาด แต่แนวทางนี้ทำให้ pool เดิมอยู่ในสถานะเสื่อมสภาพโดยไม่มีการป้องกันแบบสำรองระหว่างช่วงเวลาการย้ายข้อมูล
หมายเหตุ: sparse file ประกอบด้วยข้อมูลที่ส่วนใหญ่เป็นข้อมูลว่างและใช้พื้นที่จัดเก็บจริงเฉพาะเมื่อมีการเขียนข้อมูลลงไป ทำให้เป็นตัวแทนที่มีประสิทธิภาพสำหรับวัตถุประสงค์ในการย้ายข้อมูล
แนวทางทางเลือกที่ปลอดภัยกว่า
สมาชิกในชุมชนได้เสนอวิธีการทางเลือกหลายแบบที่รักษาการสำรองข้อมูลไว้ตลอดกระบวนการย้าย แนวทางที่ได้รับการสนับสนุนอย่างกว้างขวางที่สุดคือการซื้อไดรฟ์เพิ่มเติมเพื่อหลีกเลี่ยงการทำให้ pool เดิมเสื่อมสภาพทั้งหมด วิธีการนี้มีค่าใช้จ่ายประมาณ 120 ดอลลาร์ สหรัฐ สำหรับไดรฟ์ 8TB แต่ช่วยขจัดความเสี่ยงของการสูญเสียข้อมูลทั้งหมดระหว่างการย้าย
กลยุทธ์อื่นที่แนะนำคือการสร้าง RAIDZ2 pool ใหม่ด้วย fake disk ชั่วคราว คัดลอกข้อมูลในขณะที่ pool ทั้งสองยังคงทำงานอยู่ จากนั้นจึงเปลี่ยน fake disk ด้วยไดรฟ์จริงจาก pool เดิมหลังจากการย้ายข้อมูลสำเร็จแล้วเท่านั้น แนวทางนี้ให้การสำรองข้อมูลแบบคู่ระหว่างกระบวนการย้ายส่วนใหญ่
การเปรียบเทียบวิธีการ Migration
• วิธี Degraded Migration
- ต้นทุน: ไม่จำเป็นต้องมีไดรฟ์เพิ่มเติม
- ความเสี่ยง: ไม่มีการสำรองข้อมูลระหว่าง migration
- เวลา: ช่วงเวลา migration ประมาณ 6-8 ชั่วโมง
- ความปลอดภัยของข้อมูล: พึ่งพาการสำรองข้อมูลเท่านั้น
• วิธีการใช้ไดรฟ์เพิ่มเติม
- ต้นทุน: ประมาณ 120 ดอลลาร์ สหรัฐ สำหรับไดรฟ์ 8TB
- ความเสี่ยง: รักษาการสำรองข้อมูลแบบเต็มรูปแบบ
- เวลา: ระยะเวลา migration ใกล้เคียงกัน
- ความปลอดภัยของข้อมูล: ไม่มีสถานะ degraded
• วิธี Dual Pool
- ต้นทุน: ไดรฟ์เพิ่มเติมสำหรับ pool ใหม่
- ความเสี่ยง: การสำรองข้อมูลแบบคู่ในช่วงส่วนใหญ่ของกระบวนการ
- เวลา: ใช้เวลานานกว่าแต่ปลอดภัยกว่าในการ migration
- ความปลอดภัยของข้อมูล: ระดับการป้องกันสูงสุด
ข้อพิจารณาด้านประสิทธิภาพและการปฏิบัติจริง
การถกเถียงเผยให้เห็นข้อมูลเชิงลึกที่สำคัญเกี่ยวกับลักษณะประสิทธิภาพของ RAIDZ เมื่อไดรฟ์เสียหายในการตั้งค่า RAIDZ ระบบต้องทำการคำนวณ parity เพื่อสร้างข้อมูลที่หายไปใหม่ ซึ่งอาจต้องอ่านข้อมูลจากไดรฟ์ที่เหลืออยู่ทั้งหมด สิ่งนี้สร้างคอขวดด้านประสิทธิภาพและความเครียดที่เพิ่มขึ้นต่อไดรฟ์ที่รอดชีวิตระหว่างการทำงานในสถานะเสื่อมสภาพ
การใช้งาน ZFS สมัยใหม่มีข้อได้เปรียบเหนือ hardware RAID controller แบบดั้งเดิม ระบบให้ความสำคัญกับการดำเนินงานของผู้ใช้มากกว่ากระบวนการสร้างใหม่ และต้องการเพียงการกู้คืน data block จริงแทนที่จะสแกนพื้นผิวไดรฟ์ทั้งหมด การสร้างใหม่ทั่วไปของ RAIDZ2 pool ที่เต็ม 75% ด้วยไดรฟ์ 10x14TB จะเสร็จสิ้นในประมาณ 18 ชั่วโมง โดยมีอัตราความเร็วเฉลี่ย 160MB/s
การประเมินความเสี่ยงและแนวปฏิบัติที่ดีที่สุด
การถกเถียงเน้นย้ำถึงความตึงเครียดพื้นฐานระหว่างการเพิ่มประสิทธิภาพต้นทุนและความปลอดภัยของข้อมูล แม้ว่าแนวทางการย้ายข้อมูลแบบเสื่อมสภาพจะประหยัดเงินในการซื้อฮาร์ดแวร์เพิ่มเติม แต่มันสร้างช่วงเวลาที่การเสียหายของไดรฟ์เพิ่มเติมเพียงตัวเดียวอาจส่งผลให้ข้อมูลสูญหายทั้งหมด ผู้เชี่ยวชาญด้านการจัดเก็บข้อมูลเน้นว่าอัตราการเสียหายของไดรฟ์เพิ่มขึ้นระหว่างการดำเนินการสร้างใหม่เนื่องจากภาระงานที่หนัก
สำหรับผู้ใช้ที่พิจารณาการย้ายข้อมูลที่คล้ายกัน ความเห็นพ้องต้องกันสนับสนุนการลงทุนในไดรฟ์เพิ่มเติมเพื่อรักษาการสำรองข้อมูลตลอดกระบวนการ ต้นทุนที่ค่อนข้างเล็กของไดรฟ์เพิ่มเติมให้ความอุ่นใจอย่างมากเมื่อเปรียบเทียบกับผลที่ตามมาที่อาจเกิดขึ้นจากการสูญเสียข้อมูล โดยเฉพาะอย่างยิ่งเมื่อพิจารณาว่าไดรฟ์ใหม่อาจมีอัตราการเสียหายที่สูงกว่าระหว่างช่วงเริ่มต้นใช้งาน
การถกเถียงเน้นย้ำว่าแม้จะมีโซลูชันทางเทคนิคที่สร้างสรรค์สำหรับการย้ายข้อมูลการจัดเก็บ แต่แนวทางที่ปลอดภัยที่สุดมักจะเกี่ยวข้องกับการยอมรับต้นทุนฮาร์ดแวร์เพิ่มเติมเล็กน้อยเพื่อรักษาระดับการสำรองข้อมูลที่เหมาะสมตลอดกระบวนการทั้งหมด