文件 ID 的 [0x200000401:0x4:0x0] 表示什么

文件 ID 的 [0x200000401:0x4:0x0] 表示什么

DFID我尝试使用 lustre 中定义的 来获取文件的 id(描述符)#define DFID "["DFID_NOBRACE"]",并得到输出为[0x200000401:0x4:0x0].那么:其中用 分隔的字段代表什么意思呢?

答案1

您可以看到 的定义旁边DFID是 的定义PFID(),它正在打印FID 的f_seqf_oidf_ver字段。 FID 绝不会在 Lustre 中重复使用。

f_seq是 64 位序列 (SEQ) 号。这指示它位于哪个 MDT(或在哪个 OST 上的 DNE 配置中)的 inode(或对象)范围。每个 MDT 获取一系列序列号,然后将它们(一次一个)分配给客户端,客户端可以在该序列号内创建新文件。

f_oid是 32 位对象 ID 号 (OID)。这表示 SEQ 范围内的对象,每当创建新文件时,客户端都会分配该对象。对于 DNE 配置,MDS 为分配给每个 OST 的 SEQ 号分配 OID。

f_ver是保留的 32 位版本 (VER) 字段。这旨在供快照/数据集使用来区分具有相同 SEQ/OID 的对象。该字段还用于 OST 对象,以在 xattr 中存储文件的 LOV 条带索引fid,以便在 MDT 布局损坏时可以从 OST 对象重建 LOV 布局。

https://www.eofs.eu/_media/events/elw11/08_johann_lombardi_hands_on_lustre_2.x.pdf有关 FID 的更完整描述。

答案2

第一个学期0x200000401
它基本上是文件所属的序列。在lustre中,属于特定序列的文件存储在一起,这意味着具有给定序列的FID的所有文件(对象)都存储在同一服务器上。

相关内容