Project

General

Profile

Actions

Feature #20196

open

mds: early reintegration of strays on hardlink deletion

Added by John Spray almost 7 years ago. Updated almost 4 years ago.

Status:
New
Priority:
High
Assignee:
-
Category:
Correctness/Safety
Target version:
-
% Done:

0%

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

Description

The same symptom as http://tracker.ceph.com/issues/11950

If someone creates a large number of files (1M+), hardlinks them elsewhere, and then unlinks the primary dentries, we can end up ENOSPCing due to full stray directories.

Currently we only avoid this if the remote dentries get touched at some stage, triggering reintegration.

The quick and dirty incomplete solution is to do early reintegration in the case where the remote dentries are already in the cache, this is quite possible in the situation where the (backup) workload has just created the remote dentries before removing the primary.

One option for a complete solution is to store the remote dentry paths in the inode's backtrace, so that we can look them up and reintegrate at any time.


Related issues 1 (0 open1 closed)

Has duplicate CephFS - Feature #38849: mds: proactively merge orphaned inodes into a remaining parent after deleting primary hard linkDuplicate

Actions
Actions #1

Updated by Zheng Yan almost 7 years ago

RP for the incomplete solution https://github.com/ceph/ceph/pull/15548

Actions #2

Updated by John Spray almost 7 years ago

Zheng's patch for the special case (both links in cache at time of primary unlink) is merged for luminous -- hopefully that cuts down significantly on the reproducibility of the underlying issue.

Actions #3

Updated by Patrick Donnelly about 5 years ago

  • Has duplicate Feature #38849: mds: proactively merge orphaned inodes into a remaining parent after deleting primary hard link added
Actions #4

Updated by Patrick Donnelly about 5 years ago

  • Subject changed from Early reintegration of strays on hardlink deletion to mds: early reintegration of strays on hardlink deletion
  • Priority changed from Normal to High
  • Target version set to v15.0.0
  • Start date deleted (06/06/2017)
  • Source set to Development
  • Backport set to nautilus
Actions #5

Updated by Patrick Donnelly almost 5 years ago

  • Target version deleted (v15.0.0)
  • Backport deleted (nautilus)
Actions #6

Updated by Zheng Yan almost 4 years ago

we can more files in strays now, https://github.com/ceph/ceph/pull/33479

Actions #7

Updated by huanwen ren almost 4 years ago

Zheng Yan wrote:

we can more files in strays now, https://github.com/ceph/ceph/pull/33479

Hi zheng

I anti-join this function, must stray have to actively touch handlink to release
A lot of stray will cause the directory ls to be very slow

Actions

Also available in: Atom PDF