Nfs

為什麼要限制使用者可以訪問的 inode 數量?

  • June 20, 2014

似乎可以在網路掛載上設置使用者可以使用多少空間的配額。

# edquota ramesh

Disk quotas for user ramesh (uid 500):
 Filesystem           blocks       soft       hard     inodes     soft     hard
 /dev/sda3           1419352          0          0       1686        0        0

您還可以對使用者擁有的 inode 數量設置軟限制和硬限制。

為什麼需要限制使用者可以訪問的 inode 數量?

使用者還不能用 1 個非常大的文件填滿磁碟嗎?

限制使用者可以訪問的 inode 數量的原因是,它們不會通過創建大量 0 字節文件來使整個系統耗盡 inode。

對於大多數 Linux 文件系統(例如 ext3 和 ext4),每個文件(包括設備文件)或目錄都有一個inode —— 一個用於指向給定文件/目錄的數字。如果一個系統的 inode 用完了,那麼硬碟有多少可用空間並不重要。在釋放 inode 之前,不可能創建新文件。

要查看每個文件系統還剩下多少個 inode:

df -i

文件系統具有的 inode 數量由-i格式化文件系統時的參數確定。例子:

mkfs -t ext4 -i 1024 /dev/foo # One inode per 1024 bytes
mkfs -t ext4 -i 2048 /dev/foo # One inode per 2048 bytes
mkfs -t ext4 -i 8192 /dev/foo # One inode per 8192 bytes

使用該選項創建的-i 1024文件系統的 inode 數量是使用該選項創建的文件系統的八倍-i 8192(假設兩個文件系統的大小相同)。有時,特別是對於某些郵件伺服器(使用“maildir”)或老式 Usenet 假離線,需要更多的 inode,因為這些案例會創建很多小文件。

請注意,某些 Linux 文件系統(例如 Reiserfs)能夠動態分配 inode,並且不會在文件系統創建時創建所有這些文件系統。

引用自:https://unix.stackexchange.com/questions/113615