一:答疑解惑:
這是因為該文件所在分區的inode號被用盡,雖然分區的剩余容量還有很多。
二:基本原理:
inode為何物block又為何物?以及,inode都有哪些特征?
①我們知道,在linux文件系統中,文件名只是計算機用來給人看,而計算機本身只識別文件所對應的數字或編號,而這個編號或數字就是inode(大小為128bytes)。inode用來記錄文件的屬性,一個文件占用一個inode,同時inode還記錄此文件的數據所在的block號碼。
※注:文件屬性大致包括:
1.文件的訪問模式
2.文件所有者和所屬組
3.文件大小
4.時間戳(atime,mtime,ctime)
5.定義文件特征的標志(flag),如SetID等。
6.文件真正內容的指向
②block也叫做數據塊,用來存放文件中的數據。當文件大小大于block大小事,則一個block文件可占用多個block塊,呈上,如果文件小于block,則該block剩余空間將不能被使用。
好,如果到這里,你還有些似懂非懂,那就廢話不多說,直接上圖:
③inode的特點:
1.每個inode大小為均為128bytes
2.每個文件只會占用一個inode,而一個inode可以被多個文件名所引用,而后面的這種屬性也就是硬鏈接(hard link)的原理。
3.每個分區都有固定的inode數量,因此,文件系統能夠創建的文件數量與inode的數量有關,所以,當文件系統inode號被用光后,就無法再添加新的文件。
4.系統讀取文件的順序;找到文件名所對應inode–>分析inode所記錄的文件權限是否與用戶權限相符合–>若符合,則讀取inode所對應的block。
好了,都說光說不練假把式,要想了解inode的真正含義,還得實踐出真知,實驗如下:
三:實驗:
第一步:將/dev/sda1 掛載到新創建的目錄 /zdd 下,并通過df -h 和 df -i 查看此分區的磁盤內存使用情況和磁盤inode使用情況:
圖一
第二步:從圖一中我們看到,此分區的內存和inode號還有很大剩余,那么,接下來就在/zdd 下創建65525個文件,文件名分別是file{11..65535}:
圖二
第三步:由圖二可以看出,創建大量文件后,/dev/sda1雖然磁盤空間僅用了將近1%,但inode號卻用了將近100%,只剩下1個可以使用,所以,在創建到第二個新文件時,意料之中就會發生圖三創建失敗的結果:
圖三
圖四
好了,到這里,標題中的問題基本上已經得到了解決,而有關inode和block的相關內容事實上遠不止這些,所以,騷年,靜下心來多學習思考吧,只有豐富了頭腦,才能擁有一身本事報效我們可愛的祖國,來,跟著我一起念:富強、民主、文明、和諧、敬業、、、、、、、、、、、、、、
原創文章,作者:yunyunyu,如若轉載,請注明出處:http://www.www58058.com/82233