Linuxinode的基礎概念

本篇內(nèi)容主要講解“Linux inode的基礎概念”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Linux inode的基礎概念”吧!

成都創(chuàng)新互聯(lián)從2013年成立,是專業(yè)互聯(lián)網(wǎng)技術服務公司,擁有項目成都網(wǎng)站制作、成都網(wǎng)站設計網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元富蘊做網(wǎng)站,已為上家服務,為富蘊各地企業(yè)和個人服務,聯(lián)系電話:18982081108

在理解inode之前,先了解下磁盤扇區(qū),磁盤的最小單位,我們都知道,磁盤一個扇區(qū)是512個字節(jié)。磁盤讀寫是都是按照塊來操作的,一個塊一般是4K,也就是連續(xù)的8個扇區(qū),以塊為單位讀寫是為了提高性能。

文件數(shù)據(jù)都儲存在"塊"中,那么很顯然,我們還必須找到一個地方儲存文件的元信息,比如文件的創(chuàng)建者、文件的創(chuàng)建日期、文件的大小等等。這種儲存文件元信息的區(qū)域就叫做inode,中文譯名為"索引節(jié)點"。

磁盤上inode節(jié)點存儲數(shù)據(jù)“塊”存儲是在兩個不同的區(qū)域,inode存儲文件的元數(shù)據(jù),但是不包括變長的文件名信息,因此inode大小是固定的,包含的元數(shù)據(jù)如下:

* 文件的字節(jié)數(shù)
* 文件擁有者的User ID
* 文件的Group ID
* 文件的讀、寫、執(zhí)行權限
* 文件的時間戳,共有三個:ctime指inode上一次變動的時間,mtime指文件內(nèi)容上一次變動的時間,atime指文件上一次打開的時間。
* 鏈接數(shù),即有多少文件名指向這個inode
* 文件數(shù)據(jù)block的位置
 

可以使用 stat file_name 查看文件的inode數(shù)據(jù),硬盤格式化的時候,操作系統(tǒng)自動將硬盤分成兩個區(qū)域。一個是數(shù)據(jù)區(qū),存放文件數(shù)據(jù);另一個是inode區(qū)(inode table),存放inode所包含的信息。

每個inode節(jié)點的大小,一般是128字節(jié)或256字節(jié)。inode節(jié)點的總數(shù),在格式化時就給定,一般是每1KB或每2KB就設置一個inode。假定在一塊1GB的硬盤中,每個inode節(jié)點的大小為128字節(jié),每1KB就設置一個inode,那么inode table的大小就會達到128MB,占整塊硬盤的12.8%。

因此,對于存儲大量小文件來說,可能文件系統(tǒng)的inode不夠用,如果inode資源耗盡,就無法新建文件。比如阿里的TFS(專門用于存儲小文件的分布式存儲)就是將小文件合并成“大塊”文件來存儲的,節(jié)省inode資源。

可以使用 df -i 查看各個分區(qū)的Inode使用情況:

[luoxn28@localhost ~]$ df -i
Filesystem      Inodes  IUsed   IFree IUse% Mounted on
/dev/sda3      9283072 297711 8985361    4% /
devtmpfs        180632    384  180248    1% /dev
tmpfs           184648      1  184647    1% /dev/shm
tmpfs           184648    914  183734    1% /run
tmpfs           184648     16  184632    1% /sys/fs/cgroup
/dev/sda1       153600    334  153266    1% /boot
tmpfs           184648     20  184628    1% /run/user/1000
 

進程打開innode狀態(tài)圖如下:

Linux inode的基礎概念

由于進程中File對象有獨立的文件偏移量(current file offset),因此多個進程可以讀寫文件的不同位置的數(shù)據(jù),但是一般不建議這樣玩,因為系統(tǒng)不保證該情況下的寫的原子性,多進程可以通過文件鎖實現(xiàn)對文件內(nèi)容的寫保護。

 

innode號碼

每個inode都有一個號碼,操作系統(tǒng)用inode號碼來識別不同的文件。Unix/Linux系統(tǒng)內(nèi)部不使用文件名,而使用inode號碼來識別文件。對于系統(tǒng)來說,文件名只是inode號碼便于識別的別稱或者綽號。

表面上,用戶通過文件名,打開文件。實際上,系統(tǒng)內(nèi)部這個過程分成三步:首先,系統(tǒng)找到這個文件名對應的inode號碼;其次,通過inode號碼,獲取inode信息;最后,根據(jù)inode信息,找到文件數(shù)據(jù)所在的block,讀出數(shù)據(jù)。使用*ls -i file_name*命令可以查看inode號碼。

 

目錄文件

目錄也是一種文件,也有自己的inode,其inode本身存儲該目錄的元信息,對應的塊內(nèi)容存儲一系列文件(目錄+文件),每個文件包括文件名及其對應的inode編號。

 

硬鏈接與軟連接

硬鏈接和軟連接都是對應同一個文件塊,只不過:

  • 硬鏈接:兩個文件名對應同一個inode節(jié)點,只不過inode節(jié)點的連接數(shù)為2,刪除其中一個硬鏈接時不會真正刪除文件,只有在inode連接數(shù)為0時才會刪除文件;

  • 軟連接:兩個文件名分別對應各自的inode節(jié)點,這兩個inode節(jié)點指向同一個文件塊,通過原來文件名刪除文件后,建立的軟連接無法使用了,軟連接類似于windows的快捷方式。

到此,相信大家對“Linux inode的基礎概念”有了更深的了解,不妨來實際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關內(nèi)容可以進入相關頻道進行查詢,關注我們,繼續(xù)學習!

本文標題:Linuxinode的基礎概念
標題URL:http://bm7419.com/article8/gejeip.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護、網(wǎng)站排名、動態(tài)網(wǎng)站、用戶體驗網(wǎng)站設計、商城網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

h5響應式網(wǎng)站建設