Inodes ใน Linux คืออะไรและใช้อย่างไร?

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

InodesในLinux คือ อะไร? รายการ ไอโหนด(Inode)เป็นพื้นฐานของระบบไฟล์ลินุก(Linux file system)ซ์ พวกเขาจัดการข้อมูลเมตาเกี่ยวกับไฟล์และเป็นส่วนประกอบสำคัญของการทำงานภายในของ  Linux

โครงสร้างของระบบไฟล์คืออะไร?(What Is The Structure Of a File System?)

ระบบไฟล์แบ่งออกเป็นสองส่วน - บล็อกข้อมูลและไอโหนด จำนวนบล็อกจะคงที่เมื่อสร้างแล้ว และไม่สามารถเปลี่ยนแปลงได้

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

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

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

ส่วนบนสุดของลำดับชั้นคือระบบไฟล์เอง ภายในระบบไฟล์มีชื่อไฟล์ ชื่อไฟล์เชื่อมโยงกับ inodes inodes เชื่อมโยงกับข้อมูลทางกายภาพ

Inodes ใน Linux คืออะไร?(What Are Inodes In Linux?)

ไอโหนดเป็นโครงสร้างข้อมูล มันกำหนดไฟล์หรือไดเร็กทอรีบนระบบไฟล์และเก็บไว้ในรายการไดเร็กทอรี Inodes ชี้ไปที่บล็อกที่ประกอบเป็นไฟล์ ไอโหนดมีข้อมูลการดูแลระบบทั้งหมดที่จำเป็นในการอ่านไฟล์ ข้อมูลเมตา(metadata)ของไฟล์ทุก(Every) ไฟล์ ถูกเก็บไว้ใน inodes ในโครงสร้างตาราง

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

Inodes มักจะอยู่ใกล้กับจุดเริ่มต้นของพาร์ติ(beginning of a partition)ชัน พวกเขาเก็บข้อมูลทั้งหมดที่เกี่ยวข้องกับไฟล์ยกเว้นชื่อไฟล์และข้อมูลจริง ไฟล์ทั้งหมดใน ไดเร็กทอรี Linuxมีชื่อไฟล์และหมายเลขไอโหนด ผู้ใช้สามารถดึงข้อมูลเมตาสำหรับไฟล์โดยอ้างอิงหมายเลขไอโหนด

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

หมายเลขไอโหนดคืออะไร?(What Is The Inode Number?)

ไอโหนดทุกตัวใน โครงสร้าง Linuxมีหมายเลขเฉพาะที่ระบุอยู่ด้วย เรียกอีกอย่างว่าหมายเลขดัชนีและมีคุณลักษณะดังต่อไปนี้:

  • ขนาด
  • เจ้าของ
  • วันเวลา
  • สิทธิ์และการควบคุมการเข้าถึง
  • ตำแหน่งบนดิสก์
  • ประเภทไฟล์
  • จำนวนลิงค์
  • ข้อมูลเมตาเพิ่มเติมเกี่ยวกับไฟล์

ในการตรวจสอบรายการหมายเลขไอโหนด ให้ใช้คำสั่งต่อไปนี้:

ls -i

ภาพหน้าจอด้านล่างแสดงไดเร็กทอรีที่มีหมายเลขไอโหนดปรากฏในคอลัมน์ซ้ายสุด

Inodes ทำงานอย่างไร?(How Do Inodes Work?)

เมื่อคุณสร้างไฟล์ใหม่ ไฟล์จะถูกกำหนดชื่อไฟล์และหมายเลขไอโหนด ทั้งสองรายการถูกจัดเก็บเป็นรายการในไดเร็กทอรี การรันคำสั่ง ls (ls -li ) จะแสดงรายการชื่อไฟล์และหมายเลขไอโหนดที่จัดเก็บไว้ในไดเร็กทอรี

ใช้คำสั่งด้านล่างเพื่อแสดงรายการข้อมูลไอโหนดสำหรับแต่ละระบบไฟล์

df -hi

คุณใช้ไอโหนดกี่ตัว?

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

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

sudo df -ih

วิธีการใช้ไอโหนดเพิ่มเติม(Additional Ways Inodes Are Used)

วิธีการทำงานของ inodes ในLinuxทำให้ไม่สามารถมีหมายเลขไอโหนดที่ขัดแย้งกันได้ ไม่สามารถสร้างฮาร์ดลิงก์ข้ามระบบไฟล์ต่างๆ ได้ อย่างไรก็ตาม คุณสามารถใช้ซอฟต์ลิงก์ในระบบไฟล์ต่างๆ ได้ คุณสามารถลบไฟล์ต้นฉบับและยังคงมีข้อมูลผ่านฮาร์ดลิงก์

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

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

ผู้ใช้ไม่ได้โต้ตอบโดยตรงกับ inodes แต่เป็นตัวแทนขององค์ประกอบพื้นฐานของโครงสร้างไฟล์Linux



About the author

ฉันเป็นวิศวกรซอฟต์แวร์ที่มีประสบการณ์มากกว่า 10 ปีในการพัฒนาและบำรุงรักษาแอปพลิเคชัน Windows 11 หรือ 10 ฉันยังมีประสบการณ์ในการทำงานกับ Google Docs และ Microsoft Edge ทักษะของฉันในด้านเหล่านี้ทำให้ฉันเป็นผู้สมัครที่ยอดเยี่ยมสำหรับบทบาทวิศวกรรมซอฟต์แวร์ในอนาคต



Related posts