[lustre-discuss] How to convert fids like /O/0/d19/115 to actual data ?

Andreas Dilger adilger at dilger.ca
Mon Jul 20 12:17:10 PDT 2020


On Jul 9, 2020, at 3:52 AM, Zeeshan Ali Shah <javaclinic at gmail.com> wrote:
> 
> Dear All ,
> On zfs based lustre we are getting following
> pool: ost2-xag
>  state: ONLINE
> status: One or more devices has experienced an error resulting in data
> corruption.  Applications may be affected.
> action: Restore the file in question if possible.  Otherwise restore the
> entire pool from backup.
>    see: http://zfsonlinux.org/msg/ZFS-8000-8A
>   scan: resilvered 43.5G in 0h2m with 8 errors on Thu Jul  9 12:00:08 2020
> config:
> 
> NAME                          STATE     READ WRITE CKSUM
> ost2-xag                      ONLINE       0     0    24
>  raidz2-0                    ONLINE       0     0    48
>    spare-0                   ONLINE       0     0     0
>      wwn-0x5000c500a7c94003  ONLINE       0     0     0
>      wwn-0x5000c500a7c970ef  ONLINE       0     0     0
>    wwn-0x5000c500a7c94343    ONLINE       0     0     0
>    replacing-2               ONLINE       0     0     0
>      wwn-0x5000c500a7d02fff  ONLINE       0     0     0
>      wwn-0x5000c500a7c9460b  ONLINE       0     0     0
>    wwn-0x5000c500a7c94fcf    ONLINE       0     0     0
>    spare-4                   ONLINE       0     0     0
>      wwn-0x5000c500a7c952db  ONLINE       0     0     0
>      wwn-0x5000c500a7c968bb  ONLINE       0     0     0
>    wwn-0x5000c500a7c95553    ONLINE       0     0     0
>    wwn-0x5000c500a7c95ba3    ONLINE       0     0     0
>    wwn-0x5000c500a7c96547    ONLINE       0     0     0
>    wwn-0x5000c500a7c967ff    ONLINE       0     0     1
> spares
>  wwn-0x5000c500a7c968bb      INUSE     currently in use
>  wwn-0x5000c500a7c970ef      INUSE     currently in use
> 
> errors: Permanent errors have been detected in the following files:
> 
>         ost2-xag/ost16:/O/0/d19/115
> 
> In above how to Convert it in to actual file/directory name  ?

There is a tool "ll_decode_filter_fid" that can read the xattr from
this object to find the MDT parent inode FID, and then you can run
"lfs fid2path /mnt $FID" to determine the pathname.  With ZFS, you
need to mount the underlying OST target directly as type ZFS and
run ll_decode_filter_fid on the above pathname.

For ldiskfs, it is possible to run something like:

   debugfs -c -R 'stat /O/0/d19/115' /dev/XXX

without having to unmount the underlying filesystem.  However, I don't
think that a similar operation is possible with ZDB - that would need
some xattr-specific decoding to be added to that tool.

There is a ticket open so that "lfs fid2path" can directly map OST FIDs
to a pathname, https://jira.whamcloud.com/browse/LU-13527 but it has
not been implemented yet.


Cheers, Andreas





-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 873 bytes
Desc: Message signed with OpenPGP
URL: <http://lists.lustre.org/pipermail/lustre-discuss-lustre.org/attachments/20200720/6a5715ed/attachment.sig>


More information about the lustre-discuss mailing list