Feature #20196
open
mds: early reintegration of strays on hardlink deletion
Added by John Spray almost 7 years ago.
Updated almost 4 years ago.
Category:
Correctness/Safety
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.
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.
- Has duplicate Feature #38849: mds: proactively merge orphaned inodes into a remaining parent after deleting primary hard link added
- 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
- Target version deleted (
v15.0.0)
- Backport deleted (
nautilus)
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
Also available in: Atom
PDF