อุปกรณ์บล็อกบันทึก
JBDหรือjournaling block deviceคือ เลเยอร์ การบันทึกข้อมูล แบบบล็อกทั่วไป ในเคอร์เนล Linuxที่เขียนโดยStephen TweedieจากRed Hat JBD ไม่ขึ้นอยู่กับระบบไฟล์ext3 , ext4และOCFS2เป็นที่ทราบกันว่าใช้ JBD [ 1 ] [ 2 ]
JBD มีอยู่สองเวอร์ชัน คือ JBD และ JBD2 JBD ถูกสร้างขึ้นพร้อมกับ ext3 ในปี 1998 [ 3 ] JBD2 แยกออกมาจาก JBD ในปี 2006 พร้อมกับ ext4 โดยมีเป้าหมายเพื่อรองรับหมายเลขบล็อก 64 บิต (ตรงข้ามกับ 32 บิตเท่านั้นใน JBD) ส่งผลให้ขนาดวอลุ่มสูงสุดใน ext4 เพิ่มขึ้นเป็น 1 EiBเมื่อเทียบกับ 16 TiBใน ext3 (โดยสมมติว่าบล็อกมีขนาด 4 KiB) [ 4 ] JBD2 สามารถใช้งานร่วมกับเวอร์ชันก่อนหน้าได้ OCFS2 ตั้งแต่ Linux 2.6.28 เป็นต้นไปใช้ JBD2 [ 5 ] JBD เวอร์ชันเก่าถูกลบออกพร้อมกับไดรเวอร์ ext3 เฉพาะใน Linux 4.3 (2015) [ 6 ]
โครงสร้าง JBD
แฮนเดิลอะตอม
แฮนเดิลอะตอมิกโดยพื้นฐานแล้วคือชุดของการเปลี่ยนแปลงระดับต่ำทั้งหมดที่เกิดขึ้นระหว่างการอัปเดตอะตอมิกระดับสูงครั้งเดียวในระบบไฟล์ แฮนเดิลอะตอมิกรับประกันว่าการอัปเดตระดับสูงจะเกิดขึ้นหรือไม่ เพราะการเปลี่ยนแปลงจริงในระบบไฟล์จะถูกบันทึกหลังจากบันทึกแฮนเดิลอะตอมิกในบันทึกเท่านั้น[ 2 ]
ธุรกรรม
เพื่อให้เกิดประสิทธิภาพและประสิทธิผล JBD จะรวมแฮนเดิลอะตอมิกหลายรายการเข้าไว้ในธุรกรรมเดียว ซึ่งจะถูกบันทึกในบันทึกประจำวันหลังจากเวลาที่กำหนดผ่านไป หรือเมื่อไม่มีพื้นที่ว่างเหลืออยู่ในบันทึกประจำวันสำหรับบันทึกนั้นอีกต่อไป
ธุรกรรมนี้มีสถานะหลายประการ: [ 2 ]
- กำลังทำงาน - หมายความว่าธุรกรรมยังคงดำเนินอยู่และสามารถรับแฮนเดิลเพิ่มเติมได้
- ล็อคอยู่ - ไม่รับมือจับใหม่ แต่มือจับที่มีอยู่ยังทำไม่เสร็จ
- Flush - รายการธุรกรรมเสร็จสมบูรณ์และกำลังถูกบันทึกในสมุดบัญชี
- Commit - การทำธุรกรรมจะถูกบันทึกในสมุดบันทึก และการเปลี่ยนแปลงจะถูกนำไปใช้กับระบบไฟล์
- เสร็จสิ้น - รายการธุรกรรมได้รับการบันทึกในสมุดบันทึกและอุปกรณ์บล็อกเรียบร้อยแล้ว สามารถลบออกจากสมุดบันทึกได้
การกู้คืน
โดยพิจารณาจากสถานะการทำธุรกรรม JBD สามารถระบุได้ว่าธุรกรรมใดบ้างที่ต้องเล่นซ้ำ (หรือนำไปใช้ใหม่) กับระบบไฟล์[ 2 ]
แหล่งที่มา
- ↑ "API การบันทึกข้อมูลของ Linux" . เอกสารประกอบเคอร์เนล Linux .
- 1 2 3 4 Kedar Sovani (20 มิถุนายน 2549). "Linux: อุปกรณ์บล็อกแบบบันทึกการเปลี่ยนแปลง" . KernelTrap . เก็บถาวรจากต้นฉบับเมื่อ 26 กันยายน 2550
- ↑ Stephen C. Tweedie (พฤษภาคม 1998). "การบันทึกระบบไฟล์ ext2fs ของ Linux" (PDF) . รายงานการประชุม LinuxExpo ครั้งที่ 4, Durham, NC . สืบค้นเมื่อ23 มิถุนายน 2007 .
- ↑ Mingming Cao (9 สิงหาคม 2549). "การแยกโครงสร้างไฟล์ ext4 และ JBD2" (รายชื่อผู้รับจดหมาย). รายชื่อผู้รับจดหมายของเคอร์เนล Linux
- ↑ "Linux 2.6.28" . kernelnewbies.org . 2008.
- ↑ Corbet, Jonathan. "rm -r fs/ext3" . LWN.net .