Computer >> คอมพิวเตอร์ >  >> ระบบ >> Linux

Linux Inodes ทำงานอย่างไร

Linux Inodes ทำงานอย่างไร

หากคุณใช้ Linux มานานพอ คุณจะเห็นคำว่า “inodes” เป็นสิ่งที่จะปรากฏขึ้นเป็นครั้งคราว แต่ไม่ส่งผลต่อสิ่งที่คุณกำลังทำ ที่นี่เราจะอธิบายว่าไอโหนดคืออะไรและทำงานอย่างไร

ไอโหนดคืออะไร

ในห้องสมุด หนังสือทุกเล่มจัดตามประเภท ชื่อผู้แต่ง หรือกลุ่มอายุของผู้ฟัง หากคุณต้องการค้นหาหนังระทึกขวัญของ “บ็อบบี้ แดเนียลส์” คุณจะต้องเดินไปที่ส่วนระทึกขวัญโดยตรง และเริ่มค้นหาชื่อผู้แต่งที่ขึ้นต้นด้วยตัว “B” เช่นเดียวกับไลบรารี ไฟล์ทั้งหมดในระบบ Linux ได้รับการจัดระเบียบเพื่อการดึงและใช้งานอย่างมีประสิทธิภาพ Inode เป็นเอนทิตีที่ช่วยในการจัดเรียงไฟล์ภายในระบบ Linux

ไฟล์เมตาดาต้าคืออะไร

สมมติว่าเรามีไฟล์ชื่อ “sample.txt” ที่มีข้อมูล “hello”

Linux Inodes ทำงานอย่างไร

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

Linux Inodes ทำงานอย่างไร

ระบบไฟล์คืออะไร

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

พาร์ติชั่นบนระบบ Linux มักถูกฟอร์แมตด้วย EXT4 ระบบไฟล์อื่นๆ เช่น B-Tree File System (BTRFS), Reiser File System, ZFS และอื่นๆ ก็พร้อมให้ใช้งานเช่นกัน

เชื่อมโยงพวกเขาทั้งหมดเข้าด้วยกัน

Inode คือโครงสร้างข้อมูลบน Ext4 ซึ่งเก็บข้อมูลเมตาทั้งหมดสำหรับไฟล์

Linux Inodes ทำงานอย่างไร

แน่นอนว่าจะมีไฟล์จำนวนมากในระบบไฟล์ ตามที่คุณเดา ทุกไฟล์จะมีไอโหนดเป็นของตัวเอง เพื่อระบุไอโหนดที่ไม่ซ้ำกัน แต่ละไอโหนดจะมีหมายเลข

การนับเลขไอโหนดจะเป็นอย่างไร

หมายเลขไอโหนดบนระบบไฟล์เริ่มต้นจาก 1 ไอโหนดสิบตัวแรกสงวนไว้สำหรับการใช้งานระบบ ไฟล์ผู้ใช้มีข้อมูลเมตาที่เก็บไว้จาก inode 11 inodes ทั้งหมดถูกซ้อนกันอย่างเรียบร้อยในตาราง Inode

Linux Inodes ทำงานอย่างไร

หนึ่งรายการในตารางไอโหนดจะมีขนาด 256 ไบต์ สำหรับไฟล์ Linux จะจัดระเบียบข้อมูลเมตาทั้งหมดอย่างชาญฉลาดภายใน 256 ไบต์! นอกจากนี้ inode สำหรับไฟล์ยังมีข้อมูลเกี่ยวกับตำแหน่งที่ข้อมูลของไฟล์อยู่ในระบบไฟล์ โปรดจำไว้ว่า – เฉพาะข้อมูลเมตาของไฟล์เท่านั้นที่ถูกเก็บไว้ในไอโหนด

จำนวน inodes ทั้งหมดในระบบไฟล์ขึ้นอยู่กับพื้นที่ว่างและจำนวนไฟล์ที่สามารถจัดเก็บไว้ในพาร์ติชั่น

ไอโหนดมีการจัดสรรและจัดสรรคืนอย่างไร

เมื่อผู้ใช้เพิ่มไฟล์ลงในระบบไฟล์ที่จัดรูปแบบใหม่ ไอโหนดที่เริ่มต้นจาก 11 จะได้รับการจัดสรรเพื่อเก็บข้อมูลเมตาของไฟล์

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

ให้เราพิจารณาแปดบิตในไอโหนดบิตแมปเพื่อแสดงสถานะการจัดสรรของไอโหนด 11 ถึง 18 ดังแสดงในตารางด้านล่าง ค่า 1 ในบิตแมปหมายความว่าไอโหนดได้รับการจัดสรร เช่น ใช้เพื่อเก็บข้อมูลเมตาสำหรับไฟล์ ค่า 0 ในบิตแมปหมายความว่าไอโหนดไม่ได้ใช้งานอยู่ในขณะนี้ ในที่นี้ เราจะเห็นว่า inode 17 ถูกใช้งานอยู่

Linux Inodes ทำงานอย่างไร

ในกรณีที่ไฟล์ที่มีข้อมูลเมตาในไอโหนด 17 ถูกลบ สถานะบิตแมปที่สอดคล้องกันจะกลายเป็น 0 แสดงว่าไฟล์อื่นใช้งานได้ฟรี

Linux Inodes ทำงานอย่างไร

วิธีดูหมายเลขไอโหนดของไฟล์

มีสองวิธีในการทำเช่นนี้

อันแรกใช้ ls คำสั่งด้วย –i สวิตซ์ ตามด้วยชื่อไฟล์ ฟิลด์แรกในเอาต์พุตคือหมายเลขไอโหนดที่มีข้อมูลเมตาของ “sample.txt”

Linux Inodes ทำงานอย่างไร

สามารถรับข้อมูลเดียวกันได้โดยใช้ stat คำสั่งตามด้วยชื่อไฟล์

Linux Inodes ทำงานอย่างไร

หากต้องการดูจำนวน inodes ทั้งหมดที่มีสำหรับพาร์ติชัน df คำสั่งสามารถใช้ได้กับ -i สวิตช์

Linux Inodes ทำงานอย่างไร

ในพาร์ติชั่น “/dev/sda4” มีไอโหนด 404754480 ให้ใช้ โดยในจำนวนนี้ใช้ไอโหนดเพียง 359044 ตัวเท่านั้น

บทสรุป

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