linux文件屬性描述(inode,block)
1.ls -lhi
文字解釋:
第一列:inode索引節點編號(人的身份證,全國唯一)
系統讀取文件時首先通過文件名找到inode,然後才能讀取到文件內容。
第二列:文件類型及權限(共10個字符,第一個字符為類型,後9個字符為文件權限)
第三列:硬鏈接個數(詳細參看In命令的講解)
第四列:文件或目錄所屬的用戶(屬主)
linux裏面文件和程序的存在必須要有用戶和組滿足相應的存在需求。
第五列:文件或目錄所屬的組
第六列:文件或目錄的大小
第七八九列:文件或目錄的修改時間;默認月日時分
第十列:實際的文件或目錄名
文件名不算文件的屬性
不同Centos版本inode大小不同:
dumpe2fs /dev/sda1|grep -i "Inode size" #<==/boot分區默認128
查看文件系統inode總量以及剩余量:df -i
查看磁盤的使用量:df -h
磁盤空間是否滿了,是由兩項參數決定的,第一個是inode是否滿了,第二個block是否滿了
磁盤滿的一個特征(no space on device left)
有關inode的小結:
1.磁盤被分區格式化為ext4文件系統後會生成一定數量的inode和block
2.inode稱為索引節點,它的作用是存放文件的屬性信息以及作為文件的索引(指向文件的實體)
3.ext3/ext4文件系統的block存放的是文件的實際內容
4.inode是磁盤上的一塊存儲空間,C6非啟動分區inode默認大小256字節,C5是128字節
5.inode的表現形式是一串數字,不同的文件對應的inode(一串數字)在文件系統裏是唯一的
6.inode節點號相同的文件,互為硬鏈接文件,可以認為是一個文件的不同入口
7.ext3/ext4文件系統下,一個文件被創建後至少要占用一個inode和一個block;正常情況一個文件占用且只能占用一個inode(人和身份證)
8.block是用來存儲實際數據的,每個block的大小一般有1k,2k,4k幾種。其中引導分區等為1k,其它普通分區多為4k(C6)
9.如果一個文件很大(高清的大片4G),可能占多個block,如果文件很小(0.01K),至少占一個block,並且這個block的剩余空間就浪費了,即無法再存儲其它數據了
10.inode大小和總量查看
1)dumpe2fs /dev/sda1|egrep -i "block size | Inode size"
2)dumpe2fs /dev/sda1|egrep -i "block count | Inode count"
默認block count一般會大於Inode count的數量
11.查看inode的總量和使用量:df -i
12.查看文件的inode信息方法:ls -li 或 stat /etc/hosts
13.如何生成及指定inode大小
格式化命令:mkfs.ext4 -b 2048 -l 256 /dev/sdb
有關Block的知識小結
1.磁盤讀取數據是按block為單位讀取的
2.一個文件可能占用多個block。但是每讀取一個blcok就會消耗一次磁盤I/O
3.如果要提升磁盤IO性能,那麽就要盡可能一次性讀取數據盡量的多
4.一個block只能存放一個文件的內容,無論內容有多小。如果block默認是4K大小,那麽存放一個1K的文件,剩余3K就不能存放別的文件,只能浪費了
5.Block並非越大越好。block太大對於存放小文件就會浪費磁盤空間,例如:1000K的文件,block為4K,占用250個block,如果block默認為1K,則需要占用1000個block。訪問效率誰更高?消耗IO分別為250次和1000次
6.根據業務需求,確認默認的block大小,如果是大文件(大於16K)一般設置block大一點,小文件(小於1K)一般設置block小一點
7.block太大,例如4K,文件都是0.1K的,大量浪費磁盤空間,但是訪問性能高
8.block太小,例如1K,文件都是1000K,消耗大量磁盤IO
9.blcok大小設置也是格式化分區時候確定的,命令mkfs.ext4 -b 2048 -I 256 /dev/sdb
10.企業裏文件都會比較大(一般會大於4K),block設置大一些會提升磁盤訪問效率
11.ext3/ext4文件系統(Centos5和6),一般都設置為4K
總的小結:
1.磁盤被分區格式化文件系統後,會分為inode和block兩部分內容
2.inode存放文件的屬性以及指向文件實體的指針,文件名不在inode裏,一般在上級目錄的block裏
3.訪問文件,原理通過文件名-->inode-->block
linux文件屬性描述(inode,block)