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.