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分配,若成功,则不会涉及额外的通信。

OCFS2杂记——inode number管理机制

 

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

OCFS2杂记——inode number管理机制

 

    若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错误。

OCFS2杂记——inode number管理机制

 

 

 

 

 

 

相关文章:

  • 2021-11-27
  • 2022-02-01
  • 2022-12-23
  • 2021-11-22
  • 2021-07-28
猜你喜欢
  • 2021-04-21
  • 2021-11-02
  • 2021-10-19
  • 2021-10-20
  • 2021-12-09
  • 2022-12-23
  • 2021-04-05
相关资源
相似解决方案