cephfs中所有元数据存在于元数据池中,当cephfs 元数据池发生灾难性异常,此时可通过数据池中的backtraces恢复部分元数据。
backtraces结构保存在数据池中文件对应分片的obj的xattr中,backtraces中记录了该分片数据对应元数据中的哪个文件,以及文件所处的目录结构,以及该文件的filelayout信息。
rados -p cephfs_data listxattr 12eaea304da.00000000
rados -p cephfs_data getxattr 12eaea304da.00000000 layout > /opt/layout
ceph-dencoder import /opt/layout type file_layout_t decode dump_json
rados -p cephfs_data getxattr 12eaea304da.00000000 parent > /opt/parent
ceph-dencoder import /opt/parent type inode_backtrace_t decode dump_json