OCFS2杂记——inode number管理机制

mac2025-09-30  10

    OCFS2支持64位的inode number,使用一个global bitmap负责全局的分配与回收,该位图基本单位为chunk(包含1024个inode),各slot单独使用一个inode allocator负责本地的分配与回收,inode allocator与global bitmap存在交互。

    假设某个FS已分别挂载至node 0、node 1、node 2,恰好一个node对应一个slot,当node 1创建一个文件或目录时,首先尝试从该slot的inode allocator分配,若成功,则不会涉及额外的通信。

 

    若该slot的inode allocator已经耗尽,则尝试从global bitmap获取一个chunk,会涉及一次通信。

 

    若FS已经足够碎片化,导致global bitmap无法找到大的chunk,则尝试从末位node的inode allocator分配,分配不到则继续找它前一个node的inode allocator尝试,期间跳过该slot的inode allocator,若直至node 0的inode allocator也无法分配,则再次尝试从该slot的inode allocator分配(因为在进行node迭代期间,global bitmap可能会重新拥有大的chunk),失败则返回ENOSPC错误。

 

 

 

 

 

 

最新回复(0)