Nếu bạn đã sử dụng Linux đủ lâu, bạn sẽ thấy thuật ngữ “inodes”. Đó là thứ thỉnh thoảng sẽ hiển thị, nhưng không ảnh hưởng đến những gì bạn đang làm. Ở đây chúng tôi sẽ giải thích inodes là gì và nó hoạt động như thế nào.
Inodes là gì?
Trong thư viện, tất cả sách được sắp xếp theo thể loại, tên tác giả hoặc nhóm tuổi khán giả. Nếu bạn muốn tìm một bộ phim kinh dị của “Bobby Daniels”, bạn sẽ trực tiếp đi đến phần phim kinh dị và bắt đầu tìm tên tác giả bắt đầu bằng chữ “B”. Cũng giống như một thư viện, tất cả các tệp trong hệ thống Linux được sắp xếp để truy xuất và sử dụng hiệu quả. Inode là một thực thể hỗ trợ sắp xếp các tệp trong hệ thống Linux.
Siêu dữ liệu tệp là gì?
Giả sử chúng tôi có một tệp có tên “sample.txt” chứa dữ liệu “xin chào”.
Tệp này có một số dữ liệu và thông tin liên quan đến nó như kích thước tệp, quyền, quyền sở hữu của người dùng và nhóm, dấu thời gian tạo / truy cập / sửa đổi, số lượng liên kết, v.v. Tất cả những thông tin này được gọi chung là siêu dữ liệu tệp.
Hệ thống tệp là gì?
Trên thiết bị lưu trữ như ổ cứng, phân vùng được định dạng thành hệ thống tệp trước khi được sử dụng để lưu trữ tệp. Hệ thống tệp là thủ thư cho ổ cứng. Về mặt hình thức, nó là một tập hợp các cấu trúc dữ liệu và thuật toán hoạt động song song để lưu trữ các tệp trên phân vùng một cách có phương pháp.
Các phân vùng trên hệ thống Linux thường được định dạng với EXT4. Các hệ thống tệp khác như Hệ thống tệp B-Tree (BTRFS), Hệ thống tệp Reiser, ZFS, v.v. cũng có sẵn để sử dụng.
Ràng buộc họ cùng nhau
Inode là một cấu trúc dữ liệu trên Ext4 chứa tất cả siêu dữ liệu cho một tệp.
Tất nhiên sẽ có nhiều tệp trên một hệ thống tệp. Như bạn đã đoán, mọi tệp sẽ có inode riêng. Để xác định duy nhất các inode, mỗi inode được đánh số.
Đánh số Inode sẽ như thế nào?
Số inode trên hệ thống tệp bắt đầu từ 1. Mười inode đầu tiên được dành riêng cho việc sử dụng hệ thống. Các tệp người dùng có siêu dữ liệu của họ được lưu trữ từ inode 11. Tất cả các inode được xếp chồng gọn gàng với nhau trong Bảng Inode.
Một mục nhập trong Bảng Inode sẽ có kích thước 256 byte. Đối với một tệp, Linux tổ chức tất cả siêu dữ liệu trong vòng 256 byte một cách thông minh! Ngoài ra, inode cho một tệp cũng sẽ có thông tin về vị trí trong hệ thống tệp mà dữ liệu của tệp được đặt. Hãy nhớ rằng - chỉ siêu dữ liệu của tệp được lưu trữ trong inode.
Tổng số inodes trong một hệ thống tệp phụ thuộc vào dung lượng có sẵn và số lượng tệp có thể được lưu trữ trên phân vùng.
Inodes được phân bổ và phân bổ như thế nào?
Khi người dùng thêm tệp vào hệ thống tệp được định dạng mới, các inodes bắt đầu từ 11 được cấp phát để lưu giữ siêu dữ liệu tệp.
Có một cấu trúc dữ liệu khác được gọi là “Inode Bitmap” để theo dõi trạng thái phân bổ của một inode. Nó là một tập hợp các bit hoạt động như một bản đồ.
Chúng ta hãy xem xét tám bit trong bitmap inode để biểu thị trạng thái phân bổ của các inode 11 đến 18 như được hiển thị trong bảng dưới đây. Giá trị 1 trong bitmap có nghĩa là inode được cấp phát, tức là được sử dụng để giữ siêu dữ liệu cho một tệp. Giá trị 0 trong bitmap có nghĩa là inode hiện không được sử dụng. Ở đây, chúng ta có thể thấy rằng inode 17 đang được sử dụng.
Trong trường hợp tệp có siêu dữ liệu của nó trong inode 17 bị xóa, thì trạng thái bitmap tương ứng của nó sẽ trở thành 0, cho thấy rằng tệp khác được sử dụng miễn phí.
Làm cách nào để xem Số Inode cho một tệp?
Có hai cách để thực hiện việc này.
Đầu tiên là sử dụng ls
lệnh với –i
chuyển đổi, theo sau là tên của một tệp. Trường đầu tiên trong đầu ra là số inode có siêu dữ liệu “sample.txt”.
Thông tin tương tự có thể được lấy bằng cách sử dụng stat
theo sau là tên tệp.
Để xem tổng số inodes có sẵn cho một phân vùng, hãy df
lệnh có thể được sử dụng với -i
chuyển đổi.
Trong phân vùng “/ dev / sda4”, 404754480 inodes có sẵn để sử dụng, trong đó chỉ có 359044 inodes được sử dụng.
Kết luận
Về bản chất, Inode Table sắp xếp siêu dữ liệu của tất cả các tệp một cách tỉ mỉ trong các inodes, cùng với thông tin về vị trí của dữ liệu tệp. Tất cả những gì chúng ta đã thảo luận về các inodes Linux, chỉ đơn giản là phần nổi của tảng băng chìm. Để biết thêm thông tin về hoạt động bên trong của nó, bạn có thể xem qua liên kết này.