1 System Administration Commands in.mpathd(1M) 2 3 4 5 NAME 6 in.mpathd - IP multipathing daemon 7 8 SYNOPSIS 9 /usr/lib/inet/in.mpathd 10 11 12 DESCRIPTION 13 14 The *in.mpathd* daemon performs failure and repair detection 15 for IP interfaces that have been placed into an IPMP group 16 (or optionally, for all IP interfaces on the system). It 17 also controls which IP interfaces in an IPMP group are 18 "active" (being used by the system to send or receive IP 19 data traffic) in a manner which is consistent with the 20 administrator's configured policy. 21 22 23 The *in.mpathd* daemon can detect IP interface failure and 24 repair through two methods: by monitoring the *IFF_RUNNING* 25 flag for each IP interface (link-based failure detection), 26 and by sending and receiving ICMP probes on each IP 27 interface (probe-based failure detection). Link-based 28 failure detection is instantaneous and is always enabled 29 (provided the network driver supports the feature); 30 probe-based failure detection must be enabled through the 31 configuration of one or more test addresses (described 32 below), but tests the entire IP interface send and receive 33 path. The *ipmpstat(1M)* utility can be used to check which 34 failure detection methods are enabled. 35 36 37 If only link-based failure detection is enabled, then the 38 health of the interface is determined solely from the state 39 of the IFF_RUNNING flag. Otherwise, the interface is con- 40 sidered failed if either of the two methods indicate a 41 failure, and repaired once both methods indicate the failure 42 has been corrected. Not all interfaces in a group need to be 43 configured with the same failure detection methods. 44 45 46 As mentioned above, to perform probe-based failure detection 47 *in.mpathd* requires a test address on each IP interface for 48 the purpose of sending and receiving probes. Each address 49 must be marked *NOFAILOVER* (see *ifconfig(1M)*) and 50 *in.mpathd* will be limited to probing targets on the same 51 subnet. Each address may be configured statically or 52 acquired via DHCP. To find targets, *in.mpathd* first 53 consults the routing table for routes on the same subnet, 54 and uses the specified next-hop. If no routes match, it 55 sends all-hosts ICMP probes and selects a subset of the 56 systems that respond. Thus, for probe-based failure 57 detection to operate, there must be at least one neighbor on 58 each subnet that responds to ICMP echo request probes. The 59 *ipmpstat(1M)* utility can be used to display both the 60 current probe target information and the status of sent 61 probes. 62 63 64 Both IPv4 and IPv6 are supported. If an IP interface is 65 plumbed for IPv4 and an IPv4 test address is configured then 66 *in.mpathd* will start sending ICMPv4 probes over that IP 67 interface. Similarly, if an IP interface is plumbed for 68 IPv6 and an IPv6 test address is configured then *in.mpathd* 69 will start sending ICMPv6 probes over that IP interface. 70 However, note that *in.mpathd* will ignore IPv6 test 71 addresses that are not link-local. If both IPv4 and IPv6 72 are plumbed, it is sufficient to configure only one of the 73 two, that is, either an IPv4 test address or an IPv6 test 74 address. If both IPv4 and IPv6 test addresses are 75 configured, *in.pathd* probes using both ICMPv4 and ICMPv6. 76 77 78 As mentioned above, *in.mpathd* also controls which IP 79 interfaces in an IPMP group are "active" (used by the system 80 to send and receive IP data traffic). Specifically, 81 *in.mpathd* tracks the administrative configuration of each 82 IPMP group and attempts to keep the number of active IP 83 interfaces in each group consistent with that configuration. 84 Therefore, if an active IP interface fails, *in.mpathd* will 85 activate an *INACTIVE* interface in the group, provided one 86 exists (it will prefer *INACTIVE* interfaces that are also 87 marked *STANDBY*). Likewise, if an IP interface repairs and 88 the resulting repair leaves the IPMP group with more active 89 interfaces than the administrative configuration specifies, 90 *in.mpathd* will deactivate one of the interfaces 91 (preferably one marked *STANDBY*), except when the 92 *FAILBACK* variable is used, as described below. Similar 93 adjustments will be made by *in.mpathd* when offlining IP 94 interfaces (for instance, in response to *if_mpadm(1M)*). 95 96 97 The in.mpathd daemon accesses three variable values in 98 /etc/default/mpathd: FAILURE_DETECTION_TIME, FAILBACK and 99 TRACK_INTERFACES_ONLY_WITH_GROUPS. 100 101 102 The *FAILURE_DETECTION_TIME* variable specifies the 103 probe-based failure detection time. The shorter the failure 104 detection time, the more probe traffic. The default value 105 of *FAILURE_DETECTION_TIME* is 10 seconds. This means that 106 IP interface failure will be detected by *in.mpathd* within 107 10 seconds. The IP interface repair detection time is 108 always twice the value of *FAILURE_DETECTION_TIME*. Note 109 that failures and repairs detected by link-based failure 110 detection are acted on immediately, though *in.mpathd* may 111 ignore link state changes if it suspects that the link state 112 is flapping due to defective hardware; see DIAGNOSTICS. 113 114 115 By default, *in.mpathd* limits failure and repair detection 116 to IP interfaces that are configured as part of a named IPMP 117 group. Setting *TRACK_INTERFACES_ONLY_WITH_GROUPS* to *no* 118 enables failure and repair detection on all IP interfaces, 119 even if they are not part of a named IPMP group. IP 120 interfaces that are tracked but not part of a named IPMP 121 group are considered to be part of the "anonymous" IPMP 122 group. In addition to having no name, this IPMP group is 123 special in that its IP interfaces are not equivalent and 124 thus cannot take over for one another in the event of an IP 125 interface failure. That is, the anonymous IPMP group can 126 only be used for failure and repair detection, and provides 127 no high-availability or load-spreading. 128 129 130 As described above, when *in.mpathd* detects that an IP 131 interface has repaired, it activates it so that it will 132 again be used to send and receive IP data traffic. However, 133 if *FAILBACK* is set to *no*, then the IP interface will 134 only be activated if no other active IP interfaces in the 135 group remain. However, the interface may subsequently be 136 activated if another IP interface in the group fails. 137 138 FILES 139 /etc/default/mpathd Contains default values used by the 140 in.mpathd daemon. 141 142 143 ATTRIBUTES 144 See attributes(5) for descriptions of the following attri- 145 butes: 146 147 148 149 ____________________________________________________________ 150 | ATTRIBUTE TYPE | ATTRIBUTE VALUE | 151 |_____________________________|_____________________________| 152 | Availability | SUNWcsr | 153 |_____________________________|_____________________________| 154 155 156 SEE ALSO 157 ifconfig(1M), ipmpstat(1M), if_mpadm(1M), icmp(7P), icmp6(7P) 158 159 160 DIAGNOSTICS 161 IP interface *interface_name* has a hardware address which 162 is not unique in group *group_name*; offlining 163 Description: 164 165 For probe-based failure detection, load-spreading, and 166 other code IPMP features to work properly, each IP 167 interface in an IPMP group must have a unique hardware 168 address. If this requirement is not met, *in.mpathd* 169 will automatically offline all but one of the IP 170 interfaces with duplicate hardware addresses. 171 172 IP interface *interface_name* now has a unique hardware 173 address in group *group_name*; onlining 174 Description: 175 176 The previously-detected duplicate hardware address is 177 now unique, and therefore *in.mpathd* has brought 178 *interface_name* back online. 179 180 181 Test address *address* is not unique in group; disabling 182 probe-based failure detection on *interface_name* 183 Description: 184 185 186 For in.mpathd to perform probe-based failure detection, 187 each test address in the group must be unique. 188 189 190 SunOS 5.11 Last change: 8 Sep 2006 3 191 192 193 194 195 196 197 System Administration Commands in.mpathd(1M) 198 199 200 201 No test address configured on interface *interface_name*; 202 disabling probe-based failure detection on it 203 Description: 204 205 206 For *in.mpathd* to perform probe-based failure detection 207 on an IP interface, it must be configured with a test 208 address: IPv4, IPv6, or both. 209 210 211 NIC interface_name of group group_name is not plumbed for 212 IPv[4|6] and may affect failover capability 213 Description: 214 215 216 All NICs in a multipathing group must be homogeneously 217 plumbed. For example, if a NIC is plumbed for IPv4, then 218 all NICs in the group must be plumbed for IPv4. The 219 STREAMS modules pushed on all NICs must also be identical. 220 221 222 The link has come up on interface_name more than 2 times in 223 the last minute; disabling repair until it stabilizes. 224 Description: 225 226 227 To limit the impact of interfaces with intermittent 228 hardware (such as a bad cable), *in.mpathd* will not 229 consider an IP interface with a frequently changing link 230 state as repaired until the link state stabilizes. 231 232 233 234 Invalid failure detection time of *time*, assuming default 235 of 10000 ms 236 Description: 237 238 239 An invalid value was encountered for 240 FAILURE_DETECTION_TIME in the /etc/default/mpathd file. 241 242 243 244 Too small failure detection time of *time*, assuming minimum 245 of 100 ms 246 Description: 247 248 249 250 251 SunOS 5.11 Last change: 8 Sep 2006 4 252 253 254 255 256 257 258 System Administration Commands in.mpathd(1M) 259 260 261 262 The minimum value that can be specified for 263 FAILURE_DETECTION_TIME is currently 100 milliseconds. 264 265 266 267 Invalid value for FAILBACK value 268 Description: 269 270 271 Valid values for the boolean variable FAILBACK are yes 272 or no. 273 274 275 276 Invalid value for TRACK_INTERFACES_ONLY_WITH_GROUPS value 277 Description: 278 279 280 Valid values for the boolean variable 281 TRACK_INTERFACES_ONLY_WITH_GROUPS are yes or no. 282 283 284 285 Cannot meet requested failure detection time of time ms on 286 (inet[6] interface_name) new failure detection time for 287 group group_name is time ms 288 Description: 289 290 291 The round trip time for ICMP probes is higher than 292 necessary to maintain the current failure detection 293 time. The network is probably congested or the probe 294 targets are loaded. in.mpathd automatically increases 295 the failure detection time to whatever it can achieve 296 under these conditions. 297 298 299 300 Improved failure detection time time ms on (inet[6] 301 interface_name) for group group_name 302 Description: 303 304 305 The round trip time for ICMP probes has now decreased 306 and in.mpathd has lowered the failure detection time 307 correspondingly. 308 309 310 311 IP interface failure detected on interface_name 312 Description: 313 314 315 316 317 SunOS 5.11 Last change: 8 Sep 2006 5 318 319 320 321 322 323 324 System Administration Commands in.mpathd(1M) 325 326 327 328 *in.mpathd* has detected a failure on *interface_name*, 329 and has set the *IFF_FAILED* flag on *interface_name*, 330 ensuring that it will not be used for IP data traffic. 331 332 333 IP interface repair detected on *interface_name* 334 Description: 335 336 337 *in.mpathd* has detected a repair on *interface_name*, 338 and has cleared the *IFF_FAILED* flag. Depending on the 339 administrative configuration, the *interface_name* may 340 again be used for IP data traffic. 341 342 343 The link has gone down on interface_name 344 Description: 345 346 347 *in.mpathd* has detected that the *IFF_RUNNING* flag for 348 *interface_name* has been cleared, indicating the link 349 has gone down. 350 351 352 353 The link has come up on interface_name 354 Description: 355 356 357 *in.mpathd* has detected that the *IFF_RUNNING* flag for 358 *interface_name* has been set, indicating the link has 359 come up. 360 361 362 363 SunOS 5.11 Last change: 8 Sep 2006 6 364 365 366 367 368 369 370 System Administration Commands in.mpathd(1M) 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 SunOS 5.11 Last change: 8 Sep 2006 7 427 428 429 430 431 432