加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

filesystems – 什么是inode生成号?

发布时间:2020-12-14 02:22:29 所属栏目:Linux 来源:网络整理
导读:我计划使用低级API实现FUSE文件系统,目前正在尝试理解fuse_entry_param结构. 我想知道unsigned long fuse_entry_param :: generation实际意味着什么. Documentation says只是ino / generation对在文件系统的生命周期中应该是唯一的,但不会涉及任何细节. inod
我计划使用低级API实现FUSE文件系统,目前正在尝试理解fuse_entry_param结构.

我想知道unsigned long fuse_entry_param :: generation实际意味着什么. Documentation says只是ino / generation对在文件系统的生命周期中应该是唯一的,但不会涉及任何细节.

inode世代的语义是什么以及如何使用它们?

例如,我是否可以将生成视为ino的额外位(如某种命名空间)并自由使用它们将任意生命周期唯一的128位(x86_64上的2 * sizeof(无符号长整数))映射到inode?或者几代人只是按顺序递增?当inode数量发生碰撞时会发生什么,但它们的代数不同?

解决方法

如果您的inode编号生成器可能在同一对象的不同时间生成不同的inode编号,则“生成”字段很重要.这对于磁盘上的文件系统来说并不常见,但它可能发生在网络文件系统中(如NFS,见 1).

在1中提到服务器可以在重启后使用不同的(熔丝)inode号/(nfs)文件句柄.如果发生这种情况,新的inode编号可能以不同的方式映射到对象,然后是在服务器重新启动之前给出的inode编号.
客户端可以在重新启动之前为inode集使用不同的世代号,并在重新启动之后使用inode集来明确指出哪个inode.

如果您的文件系统具有inode的静态生成方案(其中inode编号始终指向同一对象),则无需使用生成编号,并且可以使用它来扩展inode编号.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读