Details
-
Improvement
-
Resolution: Unresolved
-
Minor
-
None
-
None
-
None
-
9223372036854775807
Description
LFSCK will link orphan objects into the .lustre/lost+found/MDTxxxx/ subdirectories (one per MDT) with filenames like [0x20000205c:0x15dc1:0x0]-R-0 or similar, but I can't find any user documentation for what the -R- and other file types mean.
Looking at the code, I see in lfsck_namespace_insert_orphan():
* \param[in] infix additional information for the orphan name, such as
* the FID for original
* \param[in] type the type for describing why the orphan MDT-object is
* created. The rules are as following:
* type "D": The MDT-object is a directory, it may knows its parent
* but because there is no valid linkEA, the LFSCK cannot
* know where to put it back to the namespace.
* type "O": The MDT-object has no linkEA, and there is no name
* entry that references the MDT-object.
*
* type "S": The orphan MDT-object is a shard of a striped directory
* The orphan name will be like:
* ${FID}-${infix}-${type}-${conflict_version}
and in lfsck_layout_recreate_parent():
* \param[in] infix additional information, such as the FID for original
* MDT-object and the stripe offset in the LOV EA
* \param[in] type the type for describing why the orphan MDT-object is
* created. The rules are as following:
* type "C": Multiple OST-objects claim the same MDT-object and the
* same slot in the layout EA. Then the LFSCK will create
* new MDT-object(s) to hold the conflict OST-object(s).
*
* type "N": The orphan OST-object does not know which one was the
* real parent MDT-object, so the LFSCK uses new FID for
* its parent MDT-object.
*
* type "R": The orphan OST-object knows its parent MDT-object FID,
* but does not know the position (the file name) in the
* layout.
*
* type "D": The MDT-object is a directory, it may knows its parent
* but because there is no valid linkEA, the LFSCK cannot
* know where to put it back to the namespace.
* type "O": The MDT-object has no linkEA, and there is no name
* entry that references the MDT-object.
*
* type "P": The orphan object to be created was a parent directory
* of some MDT-object which linkEA shows that the @orphan
* object is missing.
*
* The orphan name will be like:
* ${FID}-${infix}-${type}-${conflict_version}
These should be added to the lctl-lfsck_start.8 man page, as well as the user manual, so that users have some idea what should be done to repair those files.