首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >"inode的大小“和”inode的字节数“有什么区别?

"inode的大小“和”inode的字节数“有什么区别?
EN

Unix & Linux用户
提问于 2014-12-15 12:05:06
回答 3查看 23.6K关注 0票数 21

下面的信息取自手册页,我想知道每个Inode和Inode大小之间的区别吗?

-i bytes-per-inode

指定字节/节点比率。mke2fs为磁盘上每个inode字节的空间创建一个inode.每个inode的字节比越大,创建的inode就越少。这个值一般不应该小于文件系统的块大小,因为这样会有太多的inode被made.Be警告,在文件系统创建后不可能扩展inode的数量,所以要小心地确定这个参数的正确值。

-I inode-size

默认情况下,指定bytes.mke2fs中每个inode的大小将创建256个字节的inode。在2.6.10之后的内核和一些早期的供应商内核中,可以使用大于128个字节的inode存储扩展属性,用于改进的performance.The inode大小值必须是大于或等于128的幂。inode的大小越大,inode表所消耗的空间就越大,这会减少文件系统中的可用空间,并且也会对存储在大型inode中的performance.Extended属性产生负面影响,而这些文件系统在旧的内核中是不可见的,这样的文件系统在创建文件系统后不可能用2.4个内核在all.It上挂载2.4个内核。

EN

回答 3

Unix & Linux用户

发布于 2015-03-28 22:46:03

那么,首先,什么是inode?在Unix世界中,inode是一种文件条目。目录中的文件名只是一个标签(链接!)给一个无名氏。一个inode可以在多个位置引用(硬链接!)。

-i字节-每个inode(又名inode_ratio)

由于一些未知的原因,这个参数有时被记录为每个inode的字节,有时作为inode_ratio。根据文档,这是字节/节点的比率。大多数人都能更好地理解这两种语言(请原谅我的英语):

  • 1 inode用于存储的每X字节(其中X是每个inode的字节)。
  • 最低的平均文件大小,你可以适应。

公式(取自mke2fs 源代码):

代码语言:javascript
复制
inode_count = (blocks_count * blocksize) / inode_ratio

甚至简化(假设“分区大小”大致相当于blocks_count * blocksize,我还没有检查分配):

代码语言:javascript
复制
inode_count = (partition_size_in_bytes) / inode_ratio

注意1:即使您在FS创建时(mkfs -N ...)提供了固定数量的inode,该值也被转换为一个比率,因此您可以在扩展文件系统的大小时适应更多的inode。

注2:如果您调整此比率,请确保分配的inode比您计划使用的要多.您真的不想重新格式化您的文件系统。

-I inode-size

这是文件系统为文件系统可能具有的每个inode分配/保留的字节数。空间用于存储inode的属性(read Inode介绍)。在Ext3中,默认大小为128个。在Ext4中,默认大小为256 (用于存储extra_isize并为内联扩展属性提供空间)。读取Linux:为什么要改变inode大小?

注意:为每个分配的inode分配x字节的disjkspace,无论是空闲的还是使用的,其中X=inode-size。

票数 16
EN

Unix & Linux用户

发布于 2016-08-30 09:12:20

极其粗糙的文件系统原理图:

代码语言:javascript
复制
|_|__inodes__|_______________________DATA_________________________________|
  • inode-比率/字节-每个inode=数据区域的inode数量
  • inode-size =节点区域中每个inode的大小。
票数 3
EN

Unix & Linux用户

发布于 2018-06-23 18:32:01

我真的很喜欢sjas的答案,它给出了区别的本质。

这只是我自己的扩展(因为我不能评论或者投票,只是从这个stackexchange开始),我想要一个以非技术术语以平衡的方式说出的答案,对于需要在数据卷设置过程中做出决定的用户来说,这是可以理解的,但不一定知道实现背后的所有细节。

人物角色/对象:-存储设备中数据的体积(S).卷文件(S)-存储设备,它们被格式化并提供字节块及其地址.文件在存储中的位置

操作:由操作系统在存储中创建/删除/重命名文件和文件夹、文件读/写/移动、权限更改等。

需要在“块”(块)中创建N个字节大小的文件。虽然理论上可以认为文件可以被管理为单字节序列(逻辑上它们可以),但我们在空间中管理文件所需要的只是一个指定的索引,它告诉一些文件属性(名称等),以及每个文件在存储中的起始位置。但是,由于硬件采用“总线”和“块”的设计方式和性能考虑,这些“块”具有特殊的大小,并且是媒体块大小的倍数(例如512字节、4096字节),并由inode层管理,该层告诉下一层文件位置以及当需要查找、加载到内存等时如何将块串在一起。

如果一个人有一个大卷轴纸(卷),并必须设计一个信息存储文件的页面(字符或信息的比特)存储多页文件,所需要的是一个索引(查找文档),存储空间的网页(与一些简单的位置页)。在Unix校对机制(Inode)和实际裁剪页面。inode-size是索引条目大小(或多或少)字节-每个inode是页大小。

更改上述两种设置的效果:

changin inode-大小-通常不需要更改,坚持默认设置(按先前对讨论的答复中发布的链接)。

字节-每个inode-影响您可能在卷中创建的最大文件数(可能是性能和未使用字节的“浪费”)。

回到纸卷类比:想象必须在这样的系统(或许多不同大小的文档)中编写和存储特定大小的文档(文件)--如果在“写入和存储系统”定义中显示的页面大小和不灵活的页面大小是完全相同的,那么,如果“系统”页面大小非常大,而文档大小很小,那么通过在一页中设置空白和小文件,可能会浪费大量的纸张。如果页面大小很大,那么需要用于文档的页面就会减少,但是在最后一页中可能会有大量的“浪费空白”。所以一切都取决于..。将使用的文件的大小和数量。另一个考虑因素是查找和携带许多页的文件的速度。

希望这是有意义的(对我来说确实如此),如果我严重滥用了ext设计或mkfs选项的任何部分,请发表评论。

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/174334

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档