我有幾個關於如何在linux文件系統中使用inode數量的問題。這些問題可能是相關的,但爲了清楚起見,我會逐一問他們。 Q1:以EXT2/3爲例,從「Design and Implementation of the Second Extended Filesystem」我知道塊組中有inode表,並且我知道inode表示文件,但如果文件太多,但inode數不夠多,但inode數不足? 我最好的猜測是,如果文件系統的所有inode數字都用盡了,文件系統就不會執行任何操作。如果某個文件稍後被刪除,其inode可能會被回收。inode數如何分佈在Linux根文件系統中?
Q2:我在我的Linux服務器上運行的「DF -i」,我得到這個:
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/sda1 1313280 7853 1305427 1% /
devtmpfs 0 0 0 - /dev
tmpfs 525298 4 525294 1% /dev/shm
/dev/sda2 65808 50 65758 1% /boot
/dev/sda5 1313280 146 1313134 1% /opt
/dev/sda6 655776 37 655739 1% /tmp
/dev/sda7 655776 5219 650557 1% /home
/dev/sda8 1313280 840 1312440 1% /var
/dev/sda9 655776 36529 619247 6% /usr
/dev/sda10 6432 11 6421 1% /crash
/dev/sda12 135488 11 135477 1% /usr/local/instances
tmpfs 525298 3 525295 1% /var/run/xenstored
tmpfs 525298 3 525295 1% /var/lib/xenstored
tmpfs 525298 3 525295 1% /var/lib/xend/socket
tmpfs 517536 3 517533 1% /var/run/libvirt/socket
我看到每個文件系統都有自己的inode數量和這些文件系統(如devtmpfs和tmpfs的)都安裝到root file system。我猜每個文件系統都有自己的inode表,但是分佈在不同範圍內的不同文件系統的inode編號,如根文件系統是[0,N],tmpfs是[N + 1,M]?
如果不同文件系統的inode數量在不同的範圍內(我不這麼認爲),文件系統如何在範圍劃分上達成一致?
如果根據相同的規則(如從0開始)生成不同文件系統的inode編號,如果我們將它們安裝在一起,不同的文件系統會發生衝突嗎?據我所知,inode在運行的操作系統中提供文件,如果根文件系統中的文件的索引節點編號爲N,另一個文件系統中的另一個文件(如tmpfs)中的索引節點編號爲N,操作系統將執行什麼操作?
PS。我對Linux很陌生,我不是來自說英語的國家,如果我沒有明確表達,很抱歉。提前致謝。
這聽起來像是對http://s.tk/unix更好的問題。 –
嘗試詢問「unix」或「ubuntu」論壇之一。你會得到更好的答案: - }。我們只是這裏的編碼器,一般不關心「System.IO.WriteLine()」之後會發生什麼。 –
這是很難說的其中一個問題。我會說它屬於這裏,因爲它是一個關於Unix一般有趣的實現細節。 – Omnifarious