光沢で#define DFID "["DFID_NOBRACE"]"
として定義されているDFID
を使用してファイルのID(記述子)を取得しようとし、出力を[0x200000401:0x4:0x0]
として取得しました。では、その中で:
で区切られたフィールドは何を意味するのでしょうか。
DFID
の定義のすぐ隣にあるのはPFID()
の定義であり、f_seq
、f_oid
、およびf_ver
フィールドを出力しています。 FIDの。 Lustre内でFIDが再利用されることはありません。
f_seq
は64ビットシーケンス(SEQ)番号です。これは、どのMDT(またはどのOSTのDNE構成)に配置されているiノード(またはオブジェクト)の範囲を示します。各MDTは、シーケンス番号の範囲を取得し、それらを(一度に1つずつ)クライアントに割り当てます。クライアントは、そのシーケンス番号内に新しいファイルを作成できます。
f_oid
は、32ビットのオブジェクトID番号(OID)です。これは、新しいファイルが作成されるたびにクライアントによって割り当てられる、SEQ範囲内のオブジェクトを示します。 DNE構成の場合、MDSは各OSTに割り当てられたSEQ番号にOIDを割り当てます。
f_ver
は、予約済みの32ビットバージョン(VER)フィールドです。これは、スナップショット/データセットが同じSEQ/OIDを持つオブジェクトを区別するために使用することを目的としています。このフィールドは、OSTオブジェクトがファイルのLOVストライプインデックスをfid
xattrに格納するためにも使用されるため、MDTレイアウトが破損した場合にOSTオブジェクトからLOVレイアウトを再構築できます。
FIDの詳細については、 https://www.eofs.eu/_media/events/elw11/08_johann_lombardi_hands_on_lustre_2.x.pdf を参照してください。
第1項0x200000401
。
基本的にはファイルが属するシーケンスです。光沢のある特定のシーケンスに属するファイルは一緒に保存されます。つまり、特定のシーケンスのFIDを持つすべてのファイル(オブジェクト)が同じサーバーに保存されます。