Feature #55214
openmds: add asok/tell command to clear stale omap entries
0%
Description
Its rather easy to end up with an on-disk inode object that stays un-fragmented, with omap count exceeding `mds_bal_split_size' (default: 10000 entries). This can be achieved as follows:
- mkdir d0
- touch d0/file{0..11000}
- mkdir d0/.snap/snap_a
- rm -f d0/file*
#rmdir d0/.snap/snap_a
Since the MDS does not fragment directory snapshots, the omap count for the directory inode is 11000. Doing this over and over again increases the omap count to a point if it exceeds `osd_deep_scrub_large_omap_object_key_threshold' (default: 200000), the cluster experiences "large omap" warnings with state HEALTH_WARN. Removing the snapshot does not purge stale omap entries and those stay there until the MDS loads the dirfrag.
Provide an asok/tell command to force the MDS to clear stale omap entries.
To rectify this state,
Updated by Venky Shankar about 2 years ago
(formatting description)
Its rather easy to end up with an on-disk inode object that stays un-fragmented, with omap count exceeding `mds_bal_split_size' (default: 10000 entries). This can be achieved as follows:
- mkdir d0
- touch d0/file{0..11000}
- mkdir d0/.snap/snap_a
- rm -f d0/file*
- #rmdir d0/.snap/snap_a
Since the MDS does not fragment directory snapshots, the omap count for the directory inode is 11000. Doing this over and over again increases the omap count to a point if it exceeds `osd_deep_scrub_large_omap_object_key_threshold' (default: 200000), the cluster experiences "large omap" warnings with state HEALTH_WARN. Removing the snapshot does not purge stale omap entries and those stay there until the MDS loads the dirfrag.
Provide an asok/tell command to force the MDS to clear stale omap entries.
Updated by Venky Shankar about 2 years ago
- Related to Feature #55215: mds: fragment directory snapshots added
Updated by Patrick Donnelly 7 months ago
- Target version changed from v18.0.0 to v19.0.0