一、inode
inode是類UNIX系統上文件系統中的一種數據結構。數據在磁盤上存儲是按扇區存放的,幾個扇區組成一個塊(block),操作系統為高效讀取磁盤上的數據,按block來讀取。而數據存放的block的地址就包含在inode里。
二、inode的存儲信息
每個inode保存一個文件系統對象(目錄,文件,管道,軟連接,socket,設備文件等)的元數據信息,如下
-
以字節為單位表示的文件大小。
-
設備ID,標識容納該文件的設備。
-
文件所有者的User ID。
-
文件的Group ID
-
文件的模式(mode),確定了文件的類型,以及它的所有者、它的group、其它用戶訪問此文件的權限。
-
額外的系統與用戶標志(flag),用來保護該文件。
-
3個時間戳,記錄了inode自身被修改(ctime, inode change time)、文件內容被修改(mtime, modification time)、最后一次訪問(atime, access time)的時間。
-
1個鏈接數,表示有多少個硬鏈接指向此inode。
-
到文件系統存儲位置的指針。通常是1K字節或者2K字節的存儲容量為基本單位。
三、inode的作用
操作系統按inode的編號對文件進行識別,在同一文件系統內的inode的編號是唯一的。當我們打開一個文件的時候,系統按照directory里inode編號與文件名對照關系,把文件名轉換為inode編號,再根據inode編號對應的inode信息里指向的block地址來打開文件。這一特性使得在Linux上可以更新一個正在打開的文件,因為更新的文件由一個新的inode來指向,與系統正在使用的原inode不發生沖突,只是directory里的對照關系發生更改,當再次打開次文件時,系統即打開更新后的文件。
-
inode不足時,再往文件系統上存放數據也會報存儲空間不足的錯誤
這是有可能某目錄下已產生大量小文件,占用了大量inode
-
inode中存儲的block的地址數量和block塊的大小限制了一個文件系統最大單個文件大小
四、查看inode方法
[root@centos7 ~]# ll -i /root #查看文件inode編號,第一列為inode編號 total 4 206271991 -rw-------. 1 root root 1598 Jul 21 11:40 anaconda-ks.cfg 103963 drwxr-xr-x. 2 root root 6 Jul 21 11:42 Desktop 103965 drwxr-xr-x. 2 root root 6 Jul 21 11:42 Documents 70662524 drwxr-xr-x. 2 root root 6 Jul 21 11:42 Downloads 70662525 drwxr-xr-x. 2 root root 6 Jul 21 11:42 Music 138238502 drwxr-xr-x. 2 root root 6 Jul 21 11:42 Pictures 206272017 drwxr-xr-x. 2 root root 6 Jul 21 11:42 Public 138238501 drwxr-xr-x. 2 root root 6 Jul 21 11:42 Templates 206272018 drwxr-xr-x. 2 root root 6 Jul 21 11:42 Videos [root@centos7 ~]# df -i #查看文件系統inode占用情況 Filesystem Inodes IUsed IFree IUse% Mounted on /dev/sda2 41943040 138671 41804369 1% / devtmpfs 229955 389 229566 1% /dev tmpfs 233586 10 233576 1% /dev/shm tmpfs 233586 590 232996 1% /run tmpfs 233586 13 233573 1% /sys/fs/cgroup /dev/sda5 20971520 15 20971505 1% /testdir /dev/sda1 204800 330 204470 1% /boot /dev/sr0 0 0 0 - /run/media/root/CentOS 7 x86_64 tmpfs 233586 1 233585 1% /run/user/1001 tmpfs 233586 17 233569 1% /run/user/42 tmpfs 233586 1 233585 1% /run/user/0
五、硬連接與軟鏈接
硬連接的創建實質為同一物理文件起多個名字,都指向同一inode,所以不可以跨文件系統建立,也不能對目錄建立硬連接。
軟鏈接的創建會產生新文件,占用一個inode,指向的是文件名,軟連接建立可跨文件系統,可對目錄建立。
-
創建方法
ln TARGET LINK_NAME #創建硬連接
ln -s TARGET LINK_NAME #創建軟連接
注:創建軟連接時,TARGET如是相對路徑,則為LINK_NAME上級目錄的相對路徑
ln -s Videos/movie /root/movie
則創建了軟鏈接文件/root/movie 指向目錄/root/Videos/movie
原創文章,作者:cutemsyu,如若轉載,請注明出處:http://www.www58058.com/29134