Uploaded image for project: 'Lustre'
  1. Lustre
  2. LU-16742

e2fsck/ldiskfs/ZFS to allow multiple FIDs per dirent

    XMLWordPrintable

Details

    • 9223372036854775807

    Description

      As part of Lustre Metadata Redundancy, the directory entries on the MDT should enhance the dir_data feature to allow multiple FIDs to be stored in a single dirent. This ticket is primarily concerned with the ldiskfs dirent changes, while other tickets will cover other aspects of LMR (e.g. LMA referencing multiple FIDs, etc.)

      Currently on the MDT each dirent stores 17 bytes (1-byte size + 16-byte FID) after the name. For LMR, each directory should be able to reference 3 or more FIDs on different MDTs that reference mirror copies of the same file or directory inode (which contain the same metadata, including the LOV EA, which would presumably reference an FLR mirrored (or EC) redundant file layout). It is likely that 3 FIDs (mirrors) would be enough for most redundancy needs, but if more can be stored easily then having a higher limit (e.g. 8 or 16) would provide more flexibility in the future.

      It would be prudent to enhance ext4-data-in-dirent.patch to allow multiple FIDs to be stored in a single dirent (1 + 16 x N bytes). Similarly, e2fsck should consider dir_data entries of (1 + 16 x N bytes) to be valid. debugfs stat should also be modified to print multiple dirdata FIDs if present.

      I believe ZFS already allows N x 8-byte entries in the ZAP (8-byte inode number + 2x8-byte FID), and it may be that there is no need to change anything in ZFS to allow multiple FIDs to be stored in the ZAP.

      Attachments

        Issue Links

          Activity

            People

              ablagodarenko Artem Blagodarenko
              adilger Andreas Dilger
              Votes:
              0 Vote for this issue
              Watchers:
              9 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: