每個linux儲存裝置的分割槽被格式化成檔案系統後,
一般生成兩個部分:
第一部分是inode;inode是用來儲存資料屬性資訊的;
inode具有指向檔案實體的功能,但是inode唯獨不包含檔名
檔名儲存在它上一級目錄的block中。
inode是有大小的
inode的大小在分割槽被格式化建立檔案系統之後就無法更改了,格式化之前可以指定inode的大小,不過一般工作環境沒這個需求
檢視:dumpe2fs /dev/sda1|grep -i "inode size"
檢視檔案系統inode的總量和剩餘量和檢視檔案系統的block的總量和剩餘量
磁碟空間是否滿了(no space left on device) 由兩項引數決定
第一是inode是否滿了 第二是block是否滿了 任何乙個滿了都無法存放檔案了
可以使用df -i 和 df -h 檢視
inode:
1.磁碟被分割槽格式化為檔案系統之後會生成inode和block
2.inode的作用是存放檔案的屬性資訊以及作為檔案的索引的功能(它指向檔案的實體)
3.inode是磁碟上的一塊儲存空間;
4.inode號相同的檔案互為硬鏈結檔案,可以認為是乙個檔案的不同的入口
5.乙個檔案被建立後至少要占用乙個inode和乙個block
6.檢視檔案的inode資訊: ls -li 或者用stat 命令檢視
7.生成指定的inode大小
mkfs.ext4 -b 2048 -i 256 /dev/sdb
block:
1.磁碟讀取檔案資料是按block為單位讀取的
2.乙個檔案可能要占用多個block 每讀取乙個block就會消耗一次磁碟i/o;
3.如果想要提公升磁碟i/o效能,那麼就要使磁碟一次性讀取的資料盡量的多(block大小合理)
4.如果block的大小太大,存放小的檔案(遠小於block大小),就會造成空間浪費,如果block太小,會消耗磁碟i/o;
5.一般block大小為4k
6.mkfs.ext4 -b 2048 -i 256 /dev/sdb 可以設定block大小
開啟檔案的基本流程:
linux的檔名是儲存在父目錄的block裡面的,並指向這個檔案的inode節點,這個檔案的inode節點
再標記指向存放這個檔案的block的資料快,我們刪除乙個檔案,實際上並不清除inode節點和block
的資料,只是在這檔案的父目錄裡面的block中,刪除這檔案的名字,從而使得這檔名消失,並且無法指向這個檔案
的inode節點,當沒有檔名指向這inode節點的時候,會同時釋放inode節點和存放這個檔案的資料塊,並且更新
inode map和block map今後讓這些位置可以放置其他檔案資料
每個檔案都有2個link計數器:i_count 和 i_nlink。
i_count的意義是當前檔案使用者(或被程序呼叫)的數量,
i_nlink 的意義是硬鏈結的數量;
當乙個檔案被某乙個程序引用時,對應i_count數就會增加;當建立檔案的硬鏈結的時候,對應i_nlink數就會增加。
Linux 硬鏈結和軟鏈結
硬鏈結是通過鏈結原始檔的索引節點來進行有效鏈結。linux系統中的每個檔案都有乙個自己的索引節點,如同資料庫中的每條記錄都有自己的唯一索引一樣。自我感覺硬鏈結就像是windows下乙個檔案的拷貝,唯一不同的地方是多個該檔案的拷貝 硬鏈結 通過原始檔的索引節點來共享和更新自己的內容,一旦該節點上的任一...
Linux軟鏈結和硬鏈結
1.linux鏈結概念 linux鏈結分兩種,一種被稱為硬鏈結 hard link 另一種被稱為符號鏈結 symbolic link 預設情況下,ln命令產生硬鏈結。硬連線 硬連線指通過索引節點來進行連線。在linux的檔案系統中,儲存在磁碟分割槽中的檔案不管是什麼型別都給它分配乙個編號,稱為索引節...
Linux軟鏈結和硬鏈結
1.linux鏈結概念 linux鏈結分兩種,一種被稱為硬鏈結 hard link 另一種被稱為符號鏈結 symbolic link 預設情況下,ln命令產生硬鏈結。硬鏈結 硬鏈結指通過索引節點來進行鏈結。在linux的檔案系統中,儲存在磁碟分割槽中的檔案不管是什麼型別都給它分配乙個編號,稱為索引節...