[LU-16742] e2fsck/ldiskfs/ZFS to allow multiple FIDs per dirent Created: 15/Apr/23  Updated: 15/Apr/23

Status: Open
Project: Lustre
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Improvement Priority: Minor
Reporter: Andreas Dilger Assignee: WC Triage
Resolution: Unresolved Votes: 0
Labels: e2fsck, ldiskfs

Attachments: PNG File image-2023-04-15-16-44-42-199.png    
Issue Links:
Related
is related to LU-12310 MDT Device-level Replication/Mirroring Open
Rank (Obsolete): 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.

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 2 or more FIDs on different MDTs that reference mirror copies of the same file or directory. 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 to allow multiple FIDs to be stored there.


Generated at Sat Feb 10 03:29:37 UTC 2024 using Jira 9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c.