Details
-
Improvement
-
Resolution: Fixed
-
Major
-
Lustre 2.16.0
-
9223372036854775807
Description
The nodemap functionality in lustre allows sets of hosts to be described using a range of network addresses.
For network types where the address is a simple integer, this seems reasonable.
For IPv4 where an address is usually represented as 4 small integers, this is manageable, but not really ideal. The standard throughout IP is to use a netmask to identify a set of addresses, whether for routing, for access control, or any other purpose.
For IPv6 it would be quite inconvenient to use ranges. Addresses are rarely allocated sequentially, and specifying a netmask length is much easier. Also, it is standard practice to store IPv6 address (and IPv4) in network-byte-order, so comparing two addresses to see if they are ordered (as needed for ranges) is clumsy to implement.
Clearly we need to keep address-range support for existing address types, but I believe we should not support it for new IP address. Further we should add netmask support for existing address types.
Internally, this would mean keeping nodemap information in a range-tree for 4-bytes addresses (as we already do), and using a netmask based structure for longer addresses.
From user-space, we would add a syntax (/nn suffix) to specify a netmask. For 4-byte addresses this would be converted to a range. For large address, this would be used as-is.
Attachments
Issue Links
- is related to
-
LU-18014 conf-sanity test_43a: @@@@@@ FAIL: check lustre-MDTall.mdt.nosquash_nids failed!
-
- Open
-
-
LU-18167 sanity-sec test_16: nodemap_classify_nid()) ASSERTION( nodemap != ((void *)0) ) failed
-
- Resolved
-
-
LU-18417 Finish IPv6 support
-
- Open
-
- is related to
-
LU-10391 LNET: Support IPv6
-
- Resolved
-
-
LU-17217 Allow server to control/deny client connections
-
- Open
-
-
LU-13307 add LCFG_NODEMAP_ADD_RANGEv6 records for IPv6
-
- Resolved
-
We have one patch in gerrit but I still need to create a patch to move from linked list to interval tree. The work for using interval tree with jobstats by Shuan will provide the needed bits to implement proper interval trees for nodemap