[LU-8912] nodemap: error: nodemap_add_range: nodemap ranges must be contiguous Created: 06/Dec/16 Updated: 09/Apr/18 Resolved: 03/Mar/18 |
|
| Status: | Resolved |
| Project: | Lustre |
| Component/s: | None |
| Affects Version/s: | Lustre 2.9.0 |
| Fix Version/s: | Lustre 2.11.0, Lustre 2.10.4 |
| Type: | Bug | Priority: | Minor |
| Reporter: | Stephane Thiell | Assignee: | Kit Westneat |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Environment: |
CentOS 7.2, Lustre-2.8.60 |
||
| Issue Links: |
|
||||
| Severity: | 3 | ||||
| Rank (Obsolete): | 9223372036854775807 | ||||
| Description |
|
Hi, we noticed the following minor issue when trying to add our IB network 10.210.32.0/20 to nodemap: $ lctl nodemap_add_range --name sherlock --range 10.210.[32-47].[0-255]@o2ib3 error: nodemap_add_range: nodemap ranges must be contiguous $ cat /proc/fs/lustre/nodemap/sherlock/ranges [ ] The workaround is either to add 16 separate entries (10.210.32.[0-255], 10.210.33.[0-255] etc.), or a single larger range (whenever possible). Thanks, |
| Comments |
| Comment by Peter Jones [ 06/Dec/16 ] |
|
Kit Could you please advise on this issue? Thanks Peter |
| Comment by Kit Westneat [ 12/Dec/16 ] |
|
I'm not sure how the contiguous ranges is figured out, I'll try to see how hard it would be to get this to work. |
| Comment by Kit Westneat [ 13/Dec/16 ] |
|
It looks like the LNET range parsing is currently not complete, and broken in parts. It would be much easier to use a subset of the range. The full LNET range syntax supports multiple NID expressions and multiple range expressions within the NID expressions. For example, these are both valid: It would be significantly easier to parse if we only allow a single NID expression per range, and a single range expression per IP expression list. Alternatively, lctl actually just converts the range syntax into a simpler one read by the MGS, which is just <first nid>:<last nid>. Would it be too confusing to have sysadmins use that directly? |
| Comment by Stephane Thiell [ 13/Dec/16 ] |
|
Hi Kit, Thanks for looking at this! It would be better if the sysadmin can just add <first nid>:<last nid>, as it is already the format used internally by the MGS and also used when accessing the nodemap range config (using /proc/fs/lustre/nodemap/sherlock/ranges for example). I am sure it would be less confusing after all, along with the restrictions of range syntax that you propose to avoid any mistakes. |
| Comment by Kit Westneat [ 15/Dec/16 ] |
|
I tend to agree with you, but on our nodemap call, Intel voiced a strong preference for supporting the full LNET range expression support. I've prepared a bug fix patch to address your immediate issue. The idea behind the full LNET range support is that instead of requiring non-contiguous ranges, if a non-contiguous range is given to lctl, multiple contiguous ranges will be created in the backend. I'll create an improvement ticket to track the work on that. |
| Comment by Gerrit Updater [ 16/Dec/16 ] |
|
Kit Westneat (kit.westneat@gmail.com) uploaded a new patch: https://review.whamcloud.com/24397 |
| Comment by Minh Diep [ 08/Dec/17 ] |
|
kit.westneat, please rebase the patch manually. thanks |
| Comment by Gerrit Updater [ 03/Mar/18 ] |
|
Oleg Drokin (oleg.drokin@intel.com) merged in patch https://review.whamcloud.com/24397/ |
| Comment by Peter Jones [ 03/Mar/18 ] |
|
Landed for 2.11 |
| Comment by Gerrit Updater [ 05/Mar/18 ] |
|
Minh Diep (minh.diep@intel.com) uploaded a new patch: https://review.whamcloud.com/31521 |
| Comment by Gerrit Updater [ 05/Apr/18 ] |
|
John L. Hammond (john.hammond@intel.com) merged in patch https://review.whamcloud.com/31521/ |