[LU-9982] Clients striping from mapped FID in nodemap Created: 13/Sep/17 Updated: 17/Sep/21 |
|
| Status: | Open |
| Project: | Lustre |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | New Feature | Priority: | Minor |
| Reporter: | Jean-Baptiste Riaux (Inactive) | Assignee: | Etienne Aujames |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | cea | ||
| Attachments: |
|
||||||||||||||||||||||||||||
| Issue Links: |
|
||||||||||||||||||||||||||||
| Rank (Obsolete): | 9223372036854775807 | ||||||||||||||||||||||||||||
| Description |
|
The main idea is to bind a FID given by path or FID (formatted with or without brackets)
As it's possible to query the nodemap on a given export, it's possible to get the information on the MDT stack which will transmit the template object to lower layer. Then, when a template exists, a new field into dt_allocation_hint points to the template object and will be read in lod_ah_init function and lod_layout_component is filled accordingly. Example of usage:
Todo in next days:
|
| Comments |
| Comment by Gerrit Updater [ 13/Sep/17 ] | ||||||||||||
|
Jean-Baptiste Riaux (riaux.jb@intel.com) uploaded a new patch: https://review.whamcloud.com/28972 | ||||||||||||
| Comment by Jean-Baptiste Riaux (Inactive) [ 13/Sep/17 ] | ||||||||||||
|
I'll fix the checkpath issues before end of week. | ||||||||||||
| Comment by Jean-Baptiste Riaux (Inactive) [ 16/Sep/17 ] | ||||||||||||
|
Code cleaned. I think I will recreate a set of 3 patches instead instead of 1 big patch:
| ||||||||||||
| Comment by Jean-Baptiste Riaux (Inactive) [ 21/Nov/17 ] | ||||||||||||
|
Added templated directory. lfs setdirstripe -D -c stripe_count template_directory Then as for a template file, bound to nodemap like this: lctl set_param -P nodemap.SG1.template=fidoftemplatedir | ||||||||||||
| Comment by Jean-Baptiste Riaux (Inactive) [ 05/Feb/18 ] | ||||||||||||
|
New version of the patch available (still https://review.whamcloud.com/#/c/28972) using dt_allocation_hint. | ||||||||||||
| Comment by Gerrit Updater [ 05/Feb/18 ] | ||||||||||||
|
Jean-Baptiste Riaux (riaux.jb@intel.com) uploaded a new patch: https://review.whamcloud.com/31171 | ||||||||||||
| Comment by Jean-Baptiste Riaux (Inactive) [ 05/Feb/18 ] | ||||||||||||
|
Added tests in file sanity-nodemap.sh (dependency on https://review.whamcloud.com/#/c/28972) | ||||||||||||
| Comment by Jean-Baptiste Riaux (Inactive) [ 15/Mar/18 ] | ||||||||||||
|
Document design updated. Code updated (memory leaks fixed due to I am really interested by feedback on lod_ah_init in file lod_object.c because I am pretty sure there is a smarter or more delicate way to transfer template lod_layout_component into created object. | ||||||||||||
| Comment by Jean-Baptiste Riaux (Inactive) [ 19/Mar/18 ] | ||||||||||||
|
Performance impact measures (worst case is 1.9% degradation with feature enabled and used, multiple runs done). I will add the performance impact in my next commit message. Creating 500K files in a directory on a single node setup.
Also found a bug when bursting files creation with SELinux enforcing (no problem when SELinux is set to permissive). Currently investigating (lod_ah_init). + 1 minor bug to fix (memory leak when changing template, nodemap->fidtpl not freed). | ||||||||||||
| Comment by Andreas Dilger [ 24/Feb/20 ] | ||||||||||||
|
What would be a useful enhancement to this is defaulting to use the root directory of the fileset as the template. That would work the same way as the current root directory of the whole filesystem, making the virtualization of Lustre more transparent. |