注意
本文档适用于 Ceph 开发版本。
MDS内部数据结构
- CInode
CInode包含文件的元数据,每个文件都有一个CInode。
- CDentry
CDentry是连接inode和文件/目录名称的粘合剂。一个CDentry最多链接到一个CInode(它可能不链接到任何CInode)。一个CInode可以被多个CDentry链接。
- CDir
CDir仅存在于目录inode中,用于链接目录下的CDentry。当目录碎片化时,一个CInode可以有多个CDir。
这些数据结构相互链接如下:
CInode
CDir
| \
| \
| \
CDentry CDentry
CInode CInode
CDir CDir
| | \
| | \
| | \
CDentry CDentry CDentry
CInode CInode CInode
在编写本文档时,CInode的大小约为1400字节,CDentry的大小约为400字节,CDir的大小约为700字节。这些数据结构相当大。如果你想在它们中添加新字段,请小心。
- OpenFileTable
打开文件表跟踪打开的文件及其祖先目录。恢复MDS可以轻松获取打开文件的路径,显著减少打开文件加载inode的时间。表中的每个条目对应一个inode,它记录了inode的链接信息(父inode和dentry名称)。MDS可以通过递归查找父inode的链接来构建inode的路径。打开文件表存储在RADOS对象的omap中,表条目对应于omap中的KV对。
由 Ceph 基金会带给您
Ceph 文档是一个社区资源,由非盈利的 Ceph 基金会资助和托管Ceph Foundation. 如果您想支持这一点和我们的其他工作,请考虑加入现在加入.