Linux系統中的Inode節點表

索引節點是指在許多類Unix文件系統中的一種數據結構。每個索引節點保存了文件系統中的一個文件系統對象的元信息數據,但不包括數據內容或者文件名。

Inode

? ? ? ? ?首先需要明白的是,在Unix操作系統中的任何資源都被當作文件來管理。如目錄、光驅、終端設備等等,都被當作是一種文件。從這方面來說,Unix操作系統中的所有的目錄、硬件設備跟普通文件一樣,具有共同的屬性。而這些屬性的話,就是保存在inode塊中。

? ? ? ? Inode塊中保存了一個文件系統中的全部Inode節點。也就是說,當系統創建了一個文件(或者添加了一個新設備)時,系統就會從這個塊中給 這個文件分配一個Inode結點。在這個結點中存儲了這個文件的大部分屬性,如創建、修改時間等等。但是需要注意的是,有兩個屬性不包含在這個inode 結點中,分別為文件名與結點號。這主要是因為inode節點按順序排列,所以系統內核就可以采用簡單的算法,就可以得出inode節點號。

索引節點

  • inode(index node)表中包含文件系統所有文件列表
  • 一個節點 (索引節點)是在一個表項,包含有關文件的信息(元數據 ),包括:

? ? ? ? ? ? ? ? ? ? ? ? ? ?文件類型,權限,UID,GID
鏈接數(指向這個文件名路徑名稱個數)
該文件的大小和不同的時間戳
指向磁盤上文件的數據塊指針
有關文件的其他數據

文件分為兩部分:

  • 元數據:大小、權限、所有者atime、ctime、mtime……
  • 數據本身:文件的內容
  • 存放的位置不是集中存放的,文件的索引信息和數據本身是分開存放的。索引信息(元數據)和數據本身是分開存放的

圖片1

inode表結構

圖片2

節點表

有很多元數據的信息:Mode、Owner info、Size……

直接指針:直接指向數據的位置。(指向的位置就是數據塊)

一個數據塊的大小:4K = 4096字節

? ? ? ? ?有12個直接指針,能表示的空間總大小為:12個 * 每個4K = 48K

如果一個指針放不下數據的內容,就是用兩個指針指向數據的位置,用來標識文件的位置

只要數據低于12*4K以內,都可以用直接指針找到(低于48K,用直接指針就可以找到);如果超過48k,就使用間接指針

間接指針:【一級指針】

間接指針直接指向的不是數據塊,是一個指針塊,不是存數據的地方,是一個指針塊,通過指針塊,指向數據塊;指針塊也是4k大小,里面記錄了數據塊的路徑,每個數據塊占用的指針塊的空間是4個字節(也就是說數據塊在什么位置要消耗4個字節倆描述)

指針塊:4k 4096個字節,可以指向1024個數據塊

? ? ? ? ?? ? ? ? ?? ? ? ? ?? ? ? ? ?表示的空間總大小為:

間接指針1 ?* ?指針塊4K大小指向的1024個數據塊?(每個數據塊的位置用4個字? ? ? ? ?? ? ? ? ?? ? ? ? ?? ? ? ? ?? ? ? ? ?? ? 節表示) * ?每個數據塊的大小4K = 4M

二級指針:【間接指針的間接指針】

?二級指針 —-> ?指向間接指針(2),間接指針在指向另外一個指針表(3),通過另外一個指針表(3)指向數據的位置。

每個指針塊同樣是4k大小,指向的三級指針塊同樣占用4個字節表示

總大小為:

三級指針1個*二級指針快1個表示1024個三級指針 * 3級指針1024個,指向 1024個數據塊? ? ? ? ?? ? ? ? ?? ? ? ? ?? ? ? 1*1024*1024*4K=4G

 

指針大小計算

1.前12個直接指針,直接指向內存存儲的數據區域1.前12個直接指針,直接指向內存存儲的數據區域 如Books大小為4096,則前12個直解指針可以保存48KB的文件。

2.一級指針可存儲文件大小計算 保存每個指針,估計占4個字節,則以及指針指向的Block可保存4096/4個指針可以指向1024個 Block塊,一級指針可存儲文件數量大小為1024個指針指向的數據塊*每個數據塊4096K=4M

3.二級指針可存儲文件大小計算 同樣按照數據塊(Black)大小為4096,則二級指針可保存的數據塊指針數量為(4096/4)*(4096/4)= 1024 * 1024,則二級指針可保存的文件數量的大小為(1024*1024)*4096K=4GB

4.三級指針可存儲文文件大小計算 以一級、二級指針計算方法類推,三級指針可存儲的文件數據大小為(1024*1024*1024)*4096K=4TB

無標題

 

 

EXT4表示的數據可以超過4T的空間,每個指針的路徑占4個字節,一個字節是8位,4個字節32位,2的32次方個字節就是4T

 

EXT4在存放數據的時候,指針的數據塊占用的是48位(6個字節),48位就是2的48次方個字節,也就是:281474976710656字節=256T

 

1K=1024字節

1M=1024K

1G=1024M

1T=1024G

 

查看節點號:

[root@localhost ~]# ll -i

total 8

100663362?-rw——-. 1 root root 1908 Nov ?7 16:15 anaconda-ks.cfg

100663373?-rw-r–r–. 1 root root 1939 Nov ?7 16:23 initial-setup-ks.cfg

 

[root@localhost ~]# df -i

Filesystem ??????Inodes ?IUsed ???IFree IUse% Mounted on

/dev/sda2 ?????26214400 120596 26093804 ???1% /

devtmpfs ????????250313 ???398 ??249915 ???1% /dev

tmpfs ???????????253989 ?????1 ??253988 ???1% /dev/shm

tmpfs ???????????253989 ???592 ??253397 ???1% /run

tmpfs ???????????253989 ????16 ??253973 ???1% /sys/fs/cgroup

/dev/sda3 ?????10485760 ?????6 10485754 ???1% /app

/dev/sda1 ???????524288 ???329 ??523959 ???1% /boot

tmpfs ???????????253989 ????17 ??253972 ???1% /run/user/1000

/dev/sr0 ?????????????0 ?????0 ???????0 ????– /run/media/ding/CentOS 7 x86_64

tmpfs ???????????253989 ?????1 ??253988 ???1% /run/user/0

節點編號會被重復利用,改文件名不會改變節點編號。在一個分區上節點編號是有范圍的,每個文件消耗一個節點編號。節點編號用完就不能創建文件了

 

 

ps:部分內容來自百度百科

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/88463

(1)
無言勝千言無言勝千言
上一篇 2017-11-16 13:50
下一篇 2017-11-16

相關推薦

  • bash腳本作業

    1、每隔3秒鐘到系統上獲取已經登錄的用戶的信息;如果發現用戶hacker登錄,則將登錄時間和主機記錄于日志/var/log/login.log中,并提示該用戶退出系統。 2、隨機生成10以內的數字,實現猜字游戲,提示比較大或小,相等則退出。 1、求100以內所有正整數之和 ?2、通過ping命令探測172.16.250.1-254范圍內的所有主機的在線狀態,…

    Linux干貨 2016-08-19
  • 馬哥教育網絡班21期+第10周課程練習

    1、請詳細描述CentOS系統的啟動流程(詳細到每個過程系統做了哪些事情) POST(Power On Self Test): 檢測系統外圍關鍵設備(如:CPU、內存、顯卡、I/O、鍵盤鼠標等)是否正常。 加載BIOS(Basic Input and Output System): 根據在BIOS中設置的系統啟動順序來搜索用于啟動系統的驅動器(硬盤、光盤、U…

    Linux干貨 2016-09-08
  • 文件系統掛載

    掛載: 將額外文件系統與根文件系統某現存的目錄建立起關聯關系,進而使得此目錄做為其它文件訪問入口的行為 卸載: 為解除此關聯關系的過程 把設備關聯掛載點:mount Point mount 卸載時:可使用設備,也可以使用掛載點 umount mount   umount命令都是臨時生效,機器重啟后失效 掛載點下原有文件在掛載完成…

    Linux干貨 2017-04-30
  • linux網絡屬性管理

    Linux網絡屬性配置 計算機網絡:TCP/IP:協議棧(使用)ISO,OSI:協議棧(學習) MAC:Media Access Control48bits:ICANN:24bits, 2^24地址塊:2^24 網橋(bridge):MAC地址表靜態指定:動態學習:根據原地址學習; 交換機(switch):多端口網橋; IP(Internet protoco…

    Linux干貨 2017-10-14
  • bash編程之數組和字符串處理

    數組: 程序=指令+數據          指令:     數據:變量、文件 數組:存儲過個元素的連續的內存空間; 變量:存儲單個元素的內存空間; 數組名:整個數組只有一個名字; 數組索引:編號從0開始;   &nbsp…

    Linux干貨 2016-08-24
  • “Apache” 服務器中的戰斗機

    一,apache世界使用排名第一的web服務器軟件。它被音譯為阿帕奇,與武裝直升機里的佼佼者阿帕奇同名,它雖沒有阿帕奇那么霸氣的外觀,但是它具有和它一樣的強大火力,它可以運行在幾乎所有廣泛使用的計算機平臺上,由于其跨平臺和安全性被廣泛使用,是最流行的Web服務器端軟件之一。它快速、可靠并且可通過簡單的API擴充,將Perl/Python等解釋器編譯到服務器中…

    2017-08-19
欧美性久久久久