Linux 6.2 จะมีการปรับปรุง RAID5 และ RAID6 ใน Btrfs

ลินุกซ์เคอร์เนล

ลินุกซ์เคอร์เนล

ล่าสุดมีการเปิดเผยว่า มีการเสนอการปรับปรุง Btrfs เพื่อรวมไว้ในเคอร์เนล Linux 6.2 เพื่อแก้ไขปัญหารูเขียนในการใช้งาน RAID 5/6

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

หากคุณพยายามสร้าง RAID ใหม่ในสถานการณ์นี้ บล็อกที่เกี่ยวข้องกับบล็อกที่สมัครอาจเสียหายเนื่องจากสถานะของบล็อก RAID ไม่ซิงค์กัน ปัญหานี้เกิดขึ้นในอาร์เรย์ RAID1/5/6 ที่ไม่มีมาตรการพิเศษเพื่อต่อสู้กับผลกระทบนี้

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

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

ในกรณีของ btrfs ปัญหานี้มีความเกี่ยวข้องมากกว่าหากการเขียนที่เกิดขึ้นมีขนาดเล็กกว่าแถบ ในกรณีนี้ ระบบไฟล์ต้องดำเนินการอ่าน-แก้ไข-เขียน (RMW)

หากพบบล็อกที่กำลังเขียน การดำเนินการ RMW อาจทำให้เกิดความเสียหายที่จะตรวจไม่พบ โดยไม่คำนึงถึงผลตรวจสอบ นักพัฒนาได้ทำการเปลี่ยนแปลงซึ่งการดำเนินการ RMW จะตรวจสอบผลรวมการตรวจสอบของบล็อกก่อนที่จะดำเนินการนี้ และหากจำเป็น การกู้คืนข้อมูลจะทำการตรวจสอบผลรวมการตรวจสอบหลังจากเขียน

น่าเสียดายที่ในสถานการณ์ที่มีการเขียนขอบไม่สมบูรณ์ (RMW) สิ่งนี้จะสร้างโอเวอร์เฮดเพิ่มเติมเพื่อคำนวณผลรวมตรวจสอบ แต่เพิ่มความน่าเชื่อถืออย่างมาก สำหรับ RAID6 ตรรกะดังกล่าวยังไม่พร้อม

นอกจากนี้ เราสามารถสังเกตคำแนะนำเกี่ยวกับการใช้ RAID5/6 จากนักพัฒนา ซึ่งสาระสำคัญคือใน Btrfs โปรไฟล์สำหรับการจัดเก็บข้อมูลเมตาและข้อมูลอาจแตกต่างกัน ในกรณีนี้ คุณสามารถใช้โปรไฟล์ RAID1 (มิเรอร์) หรือแม้แต่ RAID1C3 (สำเนา 3 ชุด) สำหรับข้อมูลเมตา และ RAID5 หรือ RAID6 สำหรับข้อมูล

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

ด้วย โปรดทราบว่าสำหรับ SSD บน Btrfs ในเคอร์เนล 6.2 la การดำเนินการแบบอะซิงโครนัสของการดำเนินการ "ละทิ้ง" (ทำเครื่องหมายบล็อกว่างที่ไม่สามารถจัดเก็บทางกายภาพได้อีกต่อไป) จะเปิดตามค่าเริ่มต้น

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

สุดท้ายนี้ หากสนใจอยากทราบข้อมูลเพิ่มเติม สามารถเข้าไปดูรายละเอียดได้ที่ ลิงค์ต่อไปนี้


แสดงความคิดเห็นของคุณ

อีเมล์ของคุณจะไม่ถูกเผยแพร่ ช่องที่ต้องการถูกทำเครื่องหมายด้วย *

*

*

  1. รับผิดชอบข้อมูล: AB Internet Networks 2008 SL
  2. วัตถุประสงค์ของข้อมูล: ควบคุมสแปมการจัดการความคิดเห็น
  3. ถูกต้องตามกฎหมาย: ความยินยอมของคุณ
  4. การสื่อสารข้อมูล: ข้อมูลจะไม่ถูกสื่อสารไปยังบุคคลที่สามยกเว้นตามข้อผูกพันทางกฎหมาย
  5. การจัดเก็บข้อมูล: ฐานข้อมูลที่โฮสต์โดย Occentus Networks (EU)
  6. สิทธิ์: คุณสามารถ จำกัด กู้คืนและลบข้อมูลของคุณได้ตลอดเวลา