Project

General

Profile

Actions

Feature #55214

open

mds: add asok/tell command to clear stale omap entries

Added by Venky Shankar about 2 years ago. Updated 7 months ago.

Status:
New
Priority:
Normal
Assignee:
Category:
Administration/Usability
Target version:
% Done:

0%

Source:
Tags:
Backport:
quincy, pacific
Reviewed:
Affected Versions:
Component(FS):
MDS
Labels (FS):
Pull request ID:

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:

  1. mkdir d0
  2. touch d0/file{0..11000}
  3. mkdir d0/.snap/snap_a
  4. 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,


Related issues 1 (0 open1 closed)

Related to CephFS - Feature #55215: mds: fragment directory snapshotsResolved

Actions
Actions #1

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:

  1. mkdir d0
  2. touch d0/file{0..11000}
  3. mkdir d0/.snap/snap_a
  4. rm -f d0/file*
  5. #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.

Actions #2

Updated by Venky Shankar about 2 years ago

Actions #3

Updated by Venky Shankar about 2 years ago

  • Assignee set to Venky Shankar
Actions #4

Updated by Patrick Donnelly 7 months ago

  • Target version changed from v18.0.0 to v19.0.0
Actions

Also available in: Atom PDF