From f7da09ba79b2522ca51d001c59ab1212d051309c Mon Sep 17 00:00:00 2001 From: Serguei Smirnov Date: Tue, 14 Sep 2021 12:23:35 -0700 Subject: [PATCH] LUDOC-494 lnet: clarify use of route hopcount Clarify that the default route hop setting is "undefined" (-1). The default hopcount is interpreted as 1 when comparing routes as part of the route selection procedure when sending. The default hop setting may be used to create single-hop and multi-hop routes. Provide example to illustrate the case when hopcount should be set: If avoid_asym_router_failure feature is enabled and single-hop router NIs on the remote network fail to come up, using the default hopcount will cause the route to be misinterpreted as multi-hop and the router will still be selected for sending. To avoid this case, set hop=1 if avoid_asym_router_failure is enabled. Signed-off-by: Serguei Smirnov Change-Id: Ic0b97000b22389bb6950ad48070dd7d7682f9c56 Signed-off-by: Gian-Carlo DeFazio Reviewed-on: https://review.whamcloud.com/c/doc/manual/+/44916 Tested-by: jenkins Reviewed-by: Olaf Faaland Reviewed-by: Andreas Dilger --- ConfigurationFilesModuleParameters.xml | 32 ++++++-- ConfiguringLNet.xml | 8 +- LNetConfigurationApi.xml | 17 ++-- LNetMultiRail.xml | 21 +++-- LustreTuning.xml | 145 +++++++++++++++++++++++++++------ figures/Tuning_both_o2ib0_down.png | Bin 0 -> 15710 bytes figures/Tuning_o2ib1_down.png | Bin 0 -> 15377 bytes figures/Tuning_o2ib1_missing.png | Bin 0 -> 16113 bytes figures/Tuning_one_o2ib0_down.png | Bin 0 -> 15692 bytes 9 files changed, 177 insertions(+), 46 deletions(-) create mode 100644 figures/Tuning_both_o2ib0_down.png create mode 100644 figures/Tuning_o2ib1_down.png create mode 100644 figures/Tuning_o2ib1_missing.png create mode 100644 figures/Tuning_one_o2ib0_down.png diff --git a/ConfigurationFilesModuleParameters.xml b/ConfigurationFilesModuleParameters.xml index 67eed0c..b90fd78 100644 --- a/ConfigurationFilesModuleParameters.xml +++ b/ConfigurationFilesModuleParameters.xml @@ -197,14 +197,36 @@ routes ("") <expansion> :== "[" <entry> { "," <entry> } "]" <entry> :== <numeric range> | <non-numeric item> <numeric range> :== <number> [ "-" <number> [ "/" <number> ] ] - The expansion is a list enclosed in square brackets. Numeric items in the list may be a single number, a contiguous range of numbers, or a strided range of numbers. For example, routes="elan 192.168.1.[22-24]@tcp" says that network elan0 is adjacent (hopcount defaults to 1); and is accessible via 3 routers on the tcp0 network (192.168.1.22@tcp, 192.168.1.23@tcp and 192.168.1.24@tcp). + The expansion is a list enclosed in square brackets. Numeric + items in the list may be a single number, a contiguous range of numbers, + or a strided range of numbers. For example, routes="elan + 192.168.1.[22-24]@tcp" says that network + elan0 may be adjacent or behind another network + (hopcount is undefined); and is accessible via 3 routers on the + tcp0 network (192.168.1.22@tcp, + 192.168.1.23@tcp and + 192.168.1.24@tcp). routes="[tcp,o2ib] 2 [8-14/2]@elan" says that 2 networks (tcp0 and o2ib0) are accessible through 4 routers (8@elan, 10@elan, 12@elan and 14@elan). The hopcount of 2 means that traffic to both these networks will be traversed 2 routers - first one of the routers specified in this entry, then one more. Duplicate entries, entries that route to a local network, and entries that specify routers on a non-local network are ignored. - Prior to release 2.5, a conflict between equivalent entries was resolved in favor of the route with the shorter hopcount. The hopcount, if omitted, defaults to 1 (the remote network is adjacent).. - Since 2.5, equivalent entries are resolved in favor of the route with the lowest priority number or shorter hopcount if the priorities are equal. The priority, if omitted, defaults to 0. The hopcount, if omitted, defaults to 1 (the remote network is adjacent). - It is an error to specify routes to the same destination with routers on different local networks. - If the target network string contains no expansions, then the hopcount defaults to 1 and may be omitted (that is, the remote network is adjacent). In practice, this is true for most multi-network configurations. It is an error to specify an inconsistent hop count for a given target network. This is why an explicit hopcount is required if the target network string specifies more than one network. + Prior to release 2.5, a conflict between equivalent entries was + resolved in favor of the route with the shorter hopcount. The hopcount, + if omitted, is undefined, but is treated as 1 when being compared to + other routes during selection (as if the remote network is adjacent). + + Since 2.5, equivalent entries are resolved in + favor of the route with the lowest priority number or shorter hopcount + if the priorities are equal. The priority, if omitted, defaults to 0. + The hopcount, if omitted, is undefined, but is treated as 1 when being + compared to other routes during selection (as if the remote network is + adjacent). + It is an error to specify routes to the same destination with + routers on different local networks. + If a route string contains no hop count, then the hop count is + undefined. Explicitly setting the hop count to 1 is recommended if the + remote network is adjacent and + avoid_asym_router_failure is enabled + to ensure proper operation of the feature.
<indexterm><primary>configuring</primary> diff --git a/ConfiguringLNet.xml b/ConfiguringLNet.xml index 3f22f7c..285d467 100755 --- a/ConfiguringLNet.xml +++ b/ConfiguringLNet.xml @@ -378,8 +378,8 @@ net: all LNet messaged destined for the identified network --hop: number of hops to final destination - (1 < hops < 255) - --priority: priority of route (0 - highest prio) + (1 <= hops <= 255) (optional) + --priority: priority of route (0 - highest prio) (optional) Example: lnetctl route add --net tcp2 --gateway 192.168.205.130@tcp1 --hop 2 --prio 1</screen> @@ -397,9 +397,9 @@ lnetctl route del --net tcp2 --gateway 192.168.205.130@tcp1</screen> --net: net name (ex tcp0) to filter on --gateway: gateway nid (ex 10.1.1.2@tcp) to filter on --hop: number of hops to final destination - (1 < hops < 255) to filter on + (1 <= hops <= 255) to filter on (-1 default) --priority: priority of route (0 - highest prio) - to filter on + to filter on (0 default) --verbose: display detailed output per route Examples: diff --git a/LNetConfigurationApi.xml b/LNetConfigurationApi.xml index 23e9516..d642dbf 100755 --- a/LNetConfigurationApi.xml +++ b/LNetConfigurationApi.xml @@ -255,14 +255,15 @@ extern int lustre_lnet_config_route(char *nw, char *gw, cYAML **err_rc);</screen> <para><emphasis role="bold">IOCTL to Kernel:</emphasis></para> <para>IOC_LIBCFS_ADD_ROUTE</para> - <para><emphasis role="bold">Description:</emphasis></para> - <para>The LNet Kernel module adds this route to the list of - existing routes, if one doesn't already exist. If hop parameter is - not specified (IE: -1) then the hop count is set to 1. If the - priority parameter is not specified (IE: -1) then the priority is - set to 0. All routes with the same hop and priority are used in - round robin. Routes with lower number of hops and/or higher - priority are preferred. 0 is the highest priority.</para> + <para><emphasis role="bold">Description:</emphasis></para> + <para>The LNet Kernel module adds this route to the list of + existing routes, if one doesn't already exist. If the + hops parameter is not specified then the hop count is + set to "undefined"(-1). If the priority parameter is not specified then + the priority is set to 0. All routes with the same hop and priority are + used in round robin. Routes with lower number of hops and/or higher + priority are preferred. 0 is the highest priority. "Undefined" + hops (-1) is treated as 1 during route selection.</para> <para>If a route already exists the request to add the same route is ignored.</para> <para><emphasis role="bold">Return Value</emphasis></para> <para>-EINVAL: if the network of the route is local</para> diff --git a/LNetMultiRail.xml b/LNetMultiRail.xml index 95739a5..f742752 100644 --- a/LNetMultiRail.xml +++ b/LNetMultiRail.xml @@ -400,8 +400,10 @@ lnetctl route add --net o2ib0 --gateway <rtrX-nidB>@o2ib1</screen> networks. The peers using the gateway can reach it on one or more of its interfaces. Multi-Rail routing takes care of managing which interface to use.</para> - <screen>lnetctl route add --net <remote network> --gateway <NID for the gateway> - --hops <number of hops> --priority <route priority></screen> + <screen>lnetctl route add --net <remote network> + --gateway <NID for the gateway> + --hop <number of hops> --priority <route priority> + </screen> </section> <section xml:id="mrrouting.health_config.modparams"> <title>Configuring Module Parameters @@ -441,9 +443,15 @@ lnetctl route add --net o2ib0 --gateway <rtrX-nidB>@o2ib1 Defaults to 1. If set to - 1 a route will be considered up if and only - if there exists at least one healthy interface on the local and - remote interfaces of the gateway. + 1 single-hop routes have an additional + requirement to be considered up. The requirement is that the + gateway of the route must have at least one healthy network + interface connected directly to the remote net of the route. In + this context single-hop routes are routes that are given + hop=1 explicitly when created, or routes for + which lnet can infer that they have only one hop. + Otherwise the route is not single-hop and this parameter has no + effect. @@ -543,7 +551,8 @@ lnetctl route add --net o2ib0 --gateway <rtrX-nidB>@o2ib1 The gateway can be reached on the local net via at least one path. - If avoid_asym_router_failure is + For a single-hop route, if + avoid_asym_router_failure is enabled then the remote network defined in the route must have at least one healthy interface on the gateway. diff --git a/LustreTuning.xml b/LustreTuning.xml index 9460749..7785b22 100644 --- a/LustreTuning.xml +++ b/LustreTuning.xml @@ -457,31 +457,130 @@ lnet large_router_buffers=8192 - avoid_asym_router_failure– When set to 1, the - router checker running on the client or a server periodically pings - all the routers corresponding to the NIDs identified in the routes - parameter setting on the node to determine the status of each router - interface. The default setting is 1. (For more information about the - LNet routes parameter, see + avoid_asym_router_failure– When set to 1, + this parameter adds the additional requirement that for a route to be + considered up the gateway of the route must have at least one NI up on + the remote network of the route. + This new requirement applies only to routes that are single-hop, + which means that either the route's hop value is explicitly set to 1, + or that it can be inferred that the route is single-hop. The default + setting is 1. + The inference of a single-hop routes works as follows: + If the router checker is running on a node, the node will periodically + ping all of its gateways, which are routers on the same lnet that are + listed in the node's routes. The gateways' responses will include the + status of all their network interfaces (NIs). + If a node A has a route R + through gateway B to network C, + and node A sees that router B + has at least one NI that connects directly to network + C (in a ping response from B), + node A will infer that R is a + single-hop route. + This aspect of single-hop is independent of the hop value of the + route. For more information about the LNet routes parameter, see - A router is considered down if any of its NIDs are down. For - example, router X has three NIDs: - Xnid1, - Xnid2, and - Xnid3. A client is connected to the router via - Xnid1. The client has router checker enabled. The - router checker periodically sends a ping to the router via - Xnid1. The router responds to the ping with the - status of each of its NIDs. In this case, it responds with - Xnid1=up, - Xnid2=up, - Xnid3=down. If - avoid_asym_router_failure==1, the router is - considered down if any of its NIDs are down, so router X is - considered down and will not be used for routing messages. If - avoid_asym_router_failure==0, router X will - continue to be used for routing messages. + It is recommended to specify hop=1 when + creating a single-hop + route when this feature is enabled. When a route truly has only 1 hop, + it is still recommended to explicitly set hop=1 because the single-hop + inference mechanism will fail in cases where NIs fail to ever come up + at all. This is because for the route inference to work, the NIs must + at least come up or the gateway won't even mention them in the ping + response, so the node won't see any mention of the remote net of the + route in the gateway's NIs, and will mistakenly consider the route to + be multi-hop, and avoid_asym_router_failure + will then have no effect unless hop=1 is set explicitly when the route + is created. + In the following examples, nodes running lnet are circles, + networks are squares, + and NIs are lines labeled by their NIDs. + There is a client C and a router + X. C + has routes to networks o2ib0 and + o2ib1 with X as the gateway. + If an NI is red + with it's name crossed out, C considers it + to be down, otherwise C + considers it to be up. +
+ One of Two Connections to o2ib0 Down + + + + + + One of Two Connections to o2ib0 Down + + +
+ In the above figure, one of two NIs that connect to + o2ib0 is up, + so the route to o2ib0 is considered up. +
+ Both Connections to o2ib0 Down + + + + + + Both Connections to o2ib0 Down + + +
+ In the above figure, zero NIs that connect to + o2ib0 are up, + so the route to o2ib0 is down. +
+ Connection to o2ib1 Down + + + + + + Connection to o2ib1 Down + + +
+ In the above figure, zero NIs that connect to + o2ib1 are up, + so the route to o2ib1 is down. +
+ Connection to o2ib1 Never Came Up + + + + + + Connection to o2ib1 Never Came Up + + +
+ Compare Figures 34.3 and 34.4. In 34.4, + X4@o2ib1 never came up + (rather than coming up and then going down). Consequently, + X did not list X4@o2ib1 in its + ping response, so C cannot infer that + X should be directly connected to + o2ib1. If C has a route to + o2ib1 through X, and the hop + count is not set to 1 by the sysadmin, LNet assumes that + X has a route to o2ib1 through + some remote router node, such as Y. The gray part of + Figure 34.4 shows the sort of configuration that LNet incorrectly + assumes in this situation. Therefore, C will try + to send messages for o2ib1 through + X, where they will be dropped. + If the sysadmin explicitly sets hop=1 for the route + to o2ib1 (on C), LNet will know + that if X does not report an NI on + o2ib1, that the route should be marked as down. +
The following router checker parameters must be set to the maximum diff --git a/figures/Tuning_both_o2ib0_down.png b/figures/Tuning_both_o2ib0_down.png new file mode 100644 index 0000000000000000000000000000000000000000..b4dad8ec3afc76b59d354dd88f608f6ab79a3c79 GIT binary patch literal 15710 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 literal 0 HcmV?d00001 diff --git a/figures/Tuning_o2ib1_down.png b/figures/Tuning_o2ib1_down.png new file mode 100644 index 0000000000000000000000000000000000000000..ba707c11c6fba72c7b12bd4e75b9515fdceb55ae GIT binary patch literal 15377 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 Lx>NGE<T{BMogF#!Rap($<+F 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 literal 0 HcmV?d00001 diff --git a/figures/Tuning_one_o2ib0_down.png b/figures/Tuning_one_o2ib0_down.png new file mode 100644 index 0000000000000000000000000000000000000000..7e9964cf69fedf61ae24136acb13c3e87930ad50 GIT binary patch literal 15692 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 literal 0 HcmV?d00001 -- 1.8.3.1