2010-09-01 56 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