ระบบไฟล์ Composefs ที่เสนอสำหรับ Linux

Alexander Larsson ผู้สร้าง Flatpak ที่ Red Hat ได้เผยแพร่ตัวอย่างแพตช์ที่ใช้ระบบไฟล์ Composefs สำหรับเคอร์เนล Linux ระบบไฟล์ที่นำเสนอคล้ายกับ Squashfs และยังเหมาะสำหรับการเมานต์อิมเมจแบบอ่านอย่างเดียว ความแตกต่างเกิดขึ้นที่ความสามารถของ Composefs ในการแบ่งปันเนื้อหาของดิสก์อิมเมจที่ติดตั้งหลายตัวอย่างมีประสิทธิภาพ และรองรับการตรวจสอบความถูกต้องของข้อมูลที่อ่านได้ เนื่องจากพื้นที่ของแอปพลิเคชันที่ Composefs FS อาจเป็นที่ต้องการ การเมานต์อิมเมจคอนเทนเนอร์และการใช้ที่เก็บ OSTree ที่เหมือน Git จึงถูกเรียก

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

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

  • ดัชนีไบนารีที่มีข้อมูลเมตาของระบบไฟล์ ชื่อไฟล์ การอนุญาต และข้อมูลอื่นๆ ทั้งหมด ยกเว้นเนื้อหาจริงของไฟล์
  • ไดเร็กทอรีฐานที่เก็บเนื้อหาของไฟล์อิมเมจที่เมาท์ทั้งหมด ไฟล์จะถูกจัดเก็บโดยสัมพันธ์กับแฮชของเนื้อหา

ดัชนีไบนารีถูกสร้างขึ้นสำหรับแต่ละอิมเมจ FS และไดเร็กทอรีฐานจะเหมือนกันสำหรับอิมเมจทั้งหมด ในการตรวจสอบเนื้อหาของแต่ละไฟล์และภาพทั้งหมดภายใต้เงื่อนไขพื้นที่จัดเก็บที่ใช้ร่วมกัน สามารถใช้กลไก fs-verity ซึ่งเมื่อเข้าถึงไฟล์ ให้ตรวจสอบว่าแฮชที่ระบุในดัชนีไบนารีตรงกับเนื้อหาจริง (เช่น หากผู้โจมตี ทำการเปลี่ยนแปลงไฟล์ในไดเร็กทอรีฐานหรือข้อมูลเสียหายเนื่องจากความล้มเหลว การกระทบยอดดังกล่าวจะเปิดเผยความคลาดเคลื่อน)

ที่มา: opennet.ru

เพิ่มความคิดเห็น