中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Linux inode的基礎概念

發布時間:2021-09-10 18:38:57 來源:億速云 閱讀:240 作者:chen 欄目:大數據

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

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

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

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

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

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

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

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

可以使用 df -i 查看各個分區的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狀態圖如下:

Linux inode的基礎概念

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

 

innode號碼

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

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

 

目錄文件

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

 

硬鏈接與軟連接

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

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

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

到此,相信大家對“Linux inode的基礎概念”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

元江| 井陉县| 崇左市| 手游| 鹰潭市| 布尔津县| 娱乐| 枣阳市| 炎陵县| 当阳市| 南丹县| 宜阳县| 万源市| 泰兴市| 黄冈市| 东宁县| 尚义县| 五大连池市| 琼海市| 牡丹江市| 北票市| 扎鲁特旗| 平和县| 邵阳市| 房山区| 齐河县| 土默特右旗| 宁化县| 茌平县| 德令哈市| 定州市| 正蓝旗| 马尔康县| 九江县| 宾川县| 固始县| 安国市| 大竹县| 绥江县| 兴和县| 桑日县|