2010-09-01 124 views
20

我需要創建非常大的文件數量非常大(如4kb,8kb)。 這是不可能的我的電腦上的原因它需要的所有inode高達100%,我不能創造更多的文件:每個inode有多少個字節?

$ df -i /dev/sda5 
Filesystem   Inodes IUsed IFree IUse% Mounted on 
/dev/sda5   54362112 36381206 17980906 67% /scratch 

(我開始刪除文件,這就是爲什麼它現在67%)

的bytes-每節點256對我的文件系統(ext4的)

$ sudo tune2fs -l /dev/sda5 | grep Inode 
Inode count:    54362112 
Inodes per group:   8192 
Inode blocks per group: 512 
Inode size:    256 

我不知道它是否可以設置這個值甚至低於128很低(reformating期間)。如果是,我應該使用什麼值? THX

+2

「Inode大小」與每個inode字節不同。 'inode size'只是每個inode可以包含的數據量(字節數),而bytes-per-inode則是指索引節點與磁盤空間的比率。兩個值都是獨立的。 – 2012-06-28 08:43:08

回答

24

默認的字節通常是16384,這是默認的/etc/mke2fs.confinode_ratio(它之前讀取文件系統創建)。如果你運行了inode的,你可以嘗試,例如:

mkfs.ext4 -i 8192 /dev/mapper/main-var2 

影響,這是-T,通常-T news這進一步降低了其到4096

也是另一種選擇,你不能改變的ext3或ext4文件系統中的inode數量,無需重新創建或十六進制編輯。 Reiser文件系統是動態的,所以你永遠不會有問題。

+4

如何確定文件系統的當前逐字節數值?你的命令行得通,但是tune2fs輸出中是否有一些值顯示比率? – 2012-06-28 08:49:09

+1

我只是想評論一下,你可以驗證/更改Red Hat及衍生產品的'/ etc/mke2fs.conf'中的默認值。 – 2014-02-09 14:15:02

-7

我已經找到解決我的男人mke2fs的頁面上的問題:

-I的inode大小

指定字節每個inode的大小。 mke2fs默認創建256字節的inode。在2.6.10之後的內核和一些較早的供應商內核中,可以利用大於128字節的 inode來存儲擴展屬性以提高性能。 inode大小值必須是2的冪次方大於或等於128。 inode大小越大,inode表消耗的空間就越多,這會減少文件系統中的可用空間,並且還會對性能產生負面影響。在較舊的內核中,存儲在大型i節點中的擴展 屬性不可見,並且這樣的文件系統根本不能與2.4內核一起安裝。在創建文件系統後不能更改 這個值。

您可以設置的最大值由塊大小給出。

sudo tune2fs -l /dev/sda5 | grep "Block size" 
Block size:    4096 

希望這可以幫助....每個inode

+6

inode-size('-I')與每個inode('-i')設置不同。 inode大小決定了單個inode的大小,更大的inode可以包含更多的指向塊的指針,從而減少了間接塊的需要,但可以降低成本或增加磁盤使用量。bytes-in-inode設置設置一個比率,該比率將用於確定inode的最大數量。在創建文件系統後,這兩個值都不能更改。 – Tader 2012-03-01 16:47:14

8

通過將可用空間的大小除以可用inode的數量,可以找出近似的inode比率。例如:

$ sudo tune2fs -l /dev/sda1 | awk -F: ' \ 
    /^Block count:/ { blocks = $2 } \ 
    /^Inode count:/ { inodes = $2 } \ 
    /^Block size:/ { block_size = $2 } \ 
    END { blocks_per_inode = blocks/inodes; \ 
      print "blocks per inode:\t", blocks_per_inode, \ 
       "\nbytes per inode:\t", blocks_per_inode * block_size }' 

blocks per inode: 3.99759 
bytes per inode:  16374.1 
+0

如果在嘗試打開/ dev/sda3時遇到「tune2fs:超級塊中的壞幻數」等錯誤,請嘗試運行「blkid」。我需要使用的實際文件系統是「/ dev/mapper/myubuntu - vg-root」。 – jamshid 2017-03-17 02:10:51