[LU-7749] DNE3: migrated orphan survive till next reboot Created: 05/Feb/16 Updated: 07/Apr/20 |
|
| Status: | Open |
| Project: | Lustre |
| Component/s: | None |
| Affects Version/s: | Lustre 2.8.0 |
| Fix Version/s: | None |
| Type: | Bug | Priority: | Minor |
| Reporter: | Alex Zhuravlev | Assignee: | WC Triage |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | dne3 | ||
| Issue Links: |
|
||||||||||||||||
| Severity: | 3 | ||||||||||||||||
| Rank (Obsolete): | 9223372036854775807 | ||||||||||||||||
| Description |
|
during migration we put old objects onto /PENDING and leave it there till the next reboot (PENDING cleanup). this approach has a number of problems: |
| Comments |
| Comment by Andreas Dilger [ 05/Feb/16 ] |
|
Alex, what do you propose for a solution here? There is definitely a need to keep migrated inodes on the current MDT for some time, to avoid access races as well as things like NFS file handles (which contain the FID). The problem with NFS file handles is that they can be long lived. I agree that keeping the old inode for a long time isn't necessarily desirable, so possibly an LRU and/or aging to remove them? Should this be seconds, minutes, hours? You had previously also mentioned that the inodes are deleted from PENDING after a reboot, which I guess is true since nothing holds them open after recovery. It would be nice to fix this as well, though I don't think it is a blocker. In theory, we don't need to actually keep this redirection on the disk. It could be only in memory (at least currently, since PENDING isn't really persistent across recovery), but then it would pin a lot of RAM, which may be even less desirable. It would also be possible to have a redirection index with [key=old_fid,value=new_fid] mappings, which would take less space than keeping a whole inode around, but it wouldn't be any faster than PENDING if it grows large since it is still an index. We could also delete and recreate PENDING after recovery if it is empty but very large, or even if non-empty by moving remaining files to the new PENDING (though this adds complexity). |
| Comment by Alex Zhuravlev [ 11/Feb/16 ] |
|
Andreas, do we already have a support for such a forwarding on the client side? big PENDING/ affects regular unlink/close while a separate index does not. |
| Comment by Andreas Dilger [ 13/Feb/16 ] |
|
I think a few smaller patches could be made to improve things here:
|
| Comment by Andreas Dilger [ 07/Apr/20 ] |
|
I think that this functionality is being implemented by patch https://review.whamcloud.com/38135 " |