Inode là gì và chúng được sử dụng để làm gì?

Tác giả Network Engineer, T.Mười 23, 2021, 11:27:07 CHIỀU

« Chủ đề trước - Chủ đề tiếp »

0 Thành viên và 1 Khách đang xem chủ đề.

Inode là gì và chúng được sử dụng để làm gì?


Inodes được suy đoán là viết tắt của "index nodes", đã xuất hiện kể từ khi hệ thống tập tin UNIX đầu tiên được giới thiệu vào khoảng cuối những năm 1970.

Chúng được đưa vào Linux vào những năm 90 và vì lý do chính đáng. Chúng là một cách tuyệt vời để theo dõi cách các tập tin của bạn được lưu trữ và là phương pháp mà nhiều hệ thống vẫn dựa trên ngày nay.

1. Inode là gì?

Inode là một cấu trúc dữ liệu tập tin lưu trữ thông tin về bất kỳ tập tin Linux nào ngoại trừ tên và dữ liệu của nó.

2. Inodes được sử dụng để làm gì?

Dữ liệu được lưu trữ trên đĩa của bạn dưới dạng các khối có kích thước cố định. Nếu bạn lưu tập tin vượt quá khối tiêu chuẩn, máy tính của bạn sẽ tìm thấy phân đoạn có sẵn tiếp theo để lưu phần còn lại của tập tin. Theo thời gian, điều đó có thể trở nên cực kỳ khó hiểu.

Đó là nơi các inodes xuất hiện. Mặc dù chúng không chứa bất kỳ dữ liệu thực tế nào của tập tin, nhưng nó lưu trữ siêu dữ liệu của tập tin, bao gồm tất cả các khối lưu trữ mà dữ liệu của tập tin có thể được tìm thấy.

Thông tin chứa trong một inode:

  • Kích thước tập tin.
  • Thiết bị lưu trữ tập tin.
  • ID người dùng và nhóm được liên kết với tập tin.
  • Các quyền cần thiết để truy cập tập tin.
  • Tạo, đọc và ghi dấu thời gian.
  • Vị trí của dữ liệu (mặc dù không phải là đường dẫn tập tin)

Inodes cũng độc lập với tên tập tin. Điều đó có nghĩa là bạn có thể sao chép một tập tin, đổi tên tập tin và vẫn trỏ đến cùng một inode như bản gốc.

3. Nơi mà inodes có thể trở nên kỳ lạ.

Giống như các khối dữ liệu có kích thước cố định của bạn, các inode cũng đồng nhất. Có thể bạn có tập tin vượt quá kích thước của inode. Trong trường hợp này, inode ban đầu của bạn sẽ phải trỏ đến một inode khác để bao gồm đầy đủ siêu dữ liệu của tập tin. Đây được gọi là con indirect pointer.


Trên hết, số lượng inodes bạn có trên đĩa của mình là tĩnh. Điều đó có nghĩa là nếu bạn có đủ tập tin, bạn có thể hết inodes trước khi hết dung lượng đĩa. Nếu hết inodes, bạn sẽ phải xây dựng lại hệ thống tập tin của mình và bao gồm giới hạn lớn hơn cho inodes.

4. Các lệnh inode tiện dụng trên Linux.

Sử dụng lệnh df -i để lấy dữ liệu cơ bản về việc sử dụng inode của bạn, bao gồm hệ thống tập tin mà các inode được lưu trữ trên đó, tổng số inode của bạn, số lượng inode đang được sử dụng (đếm và %) và số lượng còn lại.

Mã nguồn [Chọn]
$ df -i vietnetwork

Filesystem        Inodes  IUsed     IFree IUse% Mounted on
/dev/sda4      233177088 130044 233047044    1% /


Sử dụng tùy chọn -inum để tìm các tập tin được liên kết với một inode nhất định. Ngược lại, sử dụng ls -i để lấy số inode của một tập tin.

Mã nguồn [Chọn]
$ ls -i vietnetwork

153092209 vietnetwork


153092209 là inode của vietnetwork.

5. Điều gì có thể xảy ra với inodes.

Việc hết inodes có thể trông kỳ lạ, vì có thể bạn vẫn còn dung lượng đĩa trống. Vì vậy, làm thế nào để bạn biết nếu bạn đã hết inodes?

Thời điểm hệ thống tập tin hết inodes, tất cả các tập tin và thư mục mới sẽ bị từ chối. Cho đến thời điểm đó, sẽ không có tác dụng phụ nào biểu hiện. Khi inodes được sử dụng 100%, bạn sẽ bắt đầu nhận thấy:

  • Mất dữ liệu.
  • Ứng dụng bị lỗi.
  • Khởi động lại hệ điều hành.
  • Các tiến trình không khởi động lại.
  • Nhiệm vụ định kỳ không kích hoạt.

Nếu bạn nhận thấy bất kỳ điều nào ở trên, hãy sử dụng lệnh df -i để xác nhận rằng bạn đã đạt đến dung lượng inode.