2 .\" Copyright (C) 2009, Sun Microsystems, Inc. All Rights Reserved
3 .\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License"). You may not use this file except in compliance with the License. You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing.
4 .\" See the License for the specific language governing permissions and limitations under the License. When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with the
5 .\" fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
6 .TH IN.MPATHD 8 "May 13, 2009"
8 in.mpathd \- IP multipathing daemon
12 \fB/usr/lib/inet/in.mpathd\fR
18 The \fBin.mpathd\fR daemon performs failure and repair detection for IP
19 interfaces that have been placed into an IPMP group (or optionally, for all IP
20 interfaces on the system). It also controls which IP interfaces in an IPMP
21 group are "active" (being used by the system to send or receive IP data
22 traffic) in a manner that is consistent with the administrator's configured
26 The \fBin.mpathd\fR daemon can detect IP interface failure and repair through
27 two methods: by monitoring the \fBIFF_RUNNING\fR flag for each IP interface
28 (link-based failure detection), and by sending and receiving ICMP probes on
29 each IP interface (probe-based failure detection). Link-based failure detection
30 is instantaneous and is always enabled (provided the network driver supports
31 the feature); probe-based failure detection must be enabled through the
32 configuration of one or more test addresses (described below), but tests the
33 entire IP interface send and receive path. The \fBipmpstat\fR(8) utility can
34 be used to check which failure detection methods are enabled.
37 If only link-based failure detection is enabled, then the health of the
38 interface is determined solely from the state of the \fBIFF_RUNNING\fR flag.
39 Otherwise, the interface is considered failed if either of the two methods
40 indicate a failure, and repaired once both methods indicate the failure has
41 been corrected. Not all interfaces in a group need to be configured with the
42 same failure detection methods.
45 As mentioned above, to perform probe-based failure detection \fBin.mpathd\fR
46 requires a test address on each IP interface for the purpose of sending and
47 receiving probes. Each address must be marked \fBNOFAILOVER\fR (see
48 \fBifconfig\fR(8)) and \fBin.mpathd\fR will be limited to probing targets on
49 the same subnet. Each address may be configured statically or acquired by means
50 of DHCP. To find targets, \fBin.mpathd\fR first consults the routing table for
51 routes on the same subnet, and uses the specified next-hop. If no routes match,
52 it sends all-hosts ICMP probes and selects a subset of the systems that
53 respond. Thus, for probe-based failure detection to operate, there must be at
54 least one neighbor on each subnet that responds to ICMP echo request probes.
55 The \fBipmpstat\fR(8) utility can be used to display both the current probe
56 target information and the status of sent probes.
59 Both IPv4 and IPv6 are supported. If an IP interface is plumbed for IPv4 and an
60 IPv4 test address is configured then \fBin.mpathd\fR will start sending ICMPv4
61 probes over that IP interface. Similarly, if an IP interface is plumbed for
62 IPv6 and an IPv6 test address is configured, then \fBin.mpathd\fR will start
63 sending ICMPv6 probes over that IP interface. However, note that
64 \fBin.mpathd\fR will ignore IPv6 test addresses that are not link-local. If
65 both IPv4 and IPv6 are plumbed, it is sufficient to configure only one of the
66 two, that is, either an IPv4 test address or an IPv6 test address. If both IPv4
67 and IPv6 test addresses are configured, \fBin.mpathd\fR probes using both
71 As mentioned above, \fBin.mpathd\fR also controls which IP interfaces in an
72 IPMP group are "active" (used by the system to send and receive IP data
73 traffic). Specifically, \fBin.mpathd\fR tracks the administrative configuration
74 of each IPMP group and attempts to keep the number of active IP interfaces in
75 each group consistent with that configuration. Therefore, if an active IP
76 interface fails, \fBin.mpathd\fR will activate an \fBINACTIVE\fR interface in
77 the group, provided one exists (it will prefer \fBINACTIVE\fR interfaces that
78 are also marked \fBSTANDBY\fR). Likewise, if an IP interface repairs and the
79 resulting repair leaves the IPMP group with more active interfaces than the
80 administrative configuration specifies, \fBin.mpathd\fR will deactivate one of
81 the interfaces (preferably one marked \fBSTANDBY\fR), except when the
82 \fBFAILBACK\fR variable is used, as described below. Similar adjustments will
83 be made by \fBin.mpathd\fR when offlining IP interfaces (for instance, in
84 response to \fBif_mpadm\fR(8)).
87 The \fBin.mpathd\fR daemon accesses three variable values in
88 \fB/etc/default/mpathd\fR: \fBFAILURE_DETECTION_TIME\fR, \fBFAILBACK\fR and
89 \fBTRACK_INTERFACES_ONLY_WITH_GROUPS\fR.
92 The \fBFAILURE_DETECTION_TIME\fR variable specifies the probe-based failure
93 detection time. The shorter the failure detection time, the more probe traffic.
94 The default value of \fBFAILURE_DETECTION_TIME\fR is 10 seconds. This means
95 that IP interface failure will be detected by \fBin.mpathd\fR within 10
96 seconds. The IP interface repair detection time is always twice the value of
97 \fBFAILURE_DETECTION_TIME\fR. Note that failures and repairs detected by
98 link-based failure detection are acted on immediately, though \fBin.mpathd\fR
99 may ignore link state changes if it suspects that the link state is flapping
100 due to defective hardware; see \fBDIAGNOSTICS\fR.
103 By default, \fBin.mpathd\fR limits failure and repair detection to IP
104 interfaces that are configured as part of a named IPMP group. Setting
105 \fBTRACK_INTERFACES_ONLY_WITH_GROUPS\fR to \fBno\fR enables failure and repair
106 detection on all IP interfaces, even if they are not part of a named IPMP
107 group. IP interfaces that are tracked but not part of a named IPMP group are
108 considered to be part of the "anonymous" IPMP group. In addition to having no
109 name, this IPMP group is special in that its IP interfaces are not equivalent
110 and thus cannot take over for one another in the event of an IP interface
111 failure. That is, the anonymous IPMP group can only be used for failure and
112 repair detection, and provides no high-availability or load-spreading.
115 As described above, when \fBin.mpathd\fR detects that an IP interface has
116 repaired, it activates it so that it will again be used to send and receive IP
117 data traffic. However, if \fBFAILBACK\fR is set to \fBno\fR, then the IP
118 interface will only be activated if no other active IP interfaces in the group
119 remain. However, the interface may subsequently be activated if another IP
120 interface in the group fails.
125 \fB\fB/etc/default/mpathd\fR\fR
128 Contains default values used by the \fBin.mpathd\fR daemon.
134 \fBif_mpadm\fR(8), \fBifconfig\fR(8), \fBipmpstat\fR(8),
135 \fBattributes\fR(5), \fBicmp\fR(7P), \fBicmp6\fR(7P),
138 \fISystem Administration Guide: IP Services\fR
142 IP interface \fIinterface_name\fR has a hardware address which is not unique in
143 group \fIgroup_name\fR; offlining
148 For probe-based failure detection, load-spreading, and other code IPMP features
149 to work properly, each IP interface in an IPMP group must have a unique
150 hardware address. If this requirement is not met, \fBin.mpathd\fR will
151 automatically offline all but one of the IP interfaces with duplicate hardware
157 IP interface \fIinterface_name\fR now has a unique hardware address in group
158 \fIgroup_name\fR; onlining
163 The previously-detected duplicate hardware address is now unique, and therefore
164 \fBin.mpathd\fR has brought \fIinterface_name\fR back online.
169 Test address \fIaddress\fR is not unique in group; disabling probe-based
170 failure detection on \fIinterface_name\fR
175 For \fBin.mpathd\fR to perform probe-based failure detection, each test address
176 in the group must be unique.
181 No test address configured on interface \fIinterface_name\fR disabling
182 probe-based failure detection on it
187 For \fBin.mpathd\fR to perform probe-based failure detection on an IP
188 interface, it must be configured with a test address: IPv4, IPv6, or both.
193 IP \fIinterface_name\fR in group \fIgroup_name\fR is not plumbed for IPv[4|6],
194 affecting IPv[4|6] connectivity
199 All IP interfaces in a multipathing group must be homogeneously plumbed. For
200 example, if one IP interface is plumbed for IPv4, then all IP interfaces in the
201 group must be plumbed for IPv4, or IPv4 packets will not be able to be reliably
202 sent and received. The STREAMS modules pushed on all IP interfaces must also be
208 The link has come up on \fIinterface_name\fR more than 2 times in the last
209 minute; disabling repair until it stabilizes.
214 To limit the impact of interfaces with intermittent hardware (such as a bad
215 cable), \fBin.mpathd\fR will not consider an IP interface with a frequently
216 changing link state as repaired until the link state stabilizes.
221 Invalid failure detection time of \fItime\fR, assuming default 10000 ms
226 An invalid value was encountered for \fBFAILURE_DETECTION_TIME\fR in the
227 \fB/etc/default/mpathd\fR file.
232 Too small failure detection time of \fItime\fR, assuming minimum of 100 ms
237 The minimum value that can be specified for \fBFAILURE_DETECTION_TIME\fR is
238 currently 100 milliseconds.
243 Invalid value for FAILBACK \fIvalue\fR
248 Valid values for the boolean variable \fBFAILBACK\fR are \fByes\fR or \fBno\fR.
253 Invalid value for TRACK_INTERFACES_ONLY_WITH_GROUPS \fIvalue\fR
258 Valid values for the boolean variable \fBTRACK_INTERFACES_ONLY_WITH_GROUPS\fR
259 are \fByes\fR or \fBno\fR.
264 Cannot meet requested failure detection time of \fItime\fR ms on (inet[6]
265 \fIinterface_name\fR) new failure detection time for group \fIgroup_name\fR is
271 The round trip time for \fBICMP\fR probes is higher than necessary to maintain
272 the current failure detection time. The network is probably congested or the
273 probe targets are loaded. \fBin.mpathd\fR automatically increases the failure
274 detection time to whatever it can achieve under these conditions.
279 Improved failure detection time \fItime\fR ms on (inet[6] \fIinterface_name\fR)
280 for group \fIgroup_name\fR
285 The round trip time for \fBICMP\fR probes has now decreased and \fBin.mpathd\fR
286 has lowered the failure detection time correspondingly.
291 IP interface failure detected on \fIinterface_name\fR
296 \fBin.mpathd\fR has detected a failure on \fIinterface_name\fR, and has set the
297 \fBIFF_FAILED\fR flag on \fIinterface_name\fR, ensuring that it will not be
298 used for IP data traffic.
303 IP interface repair detected on \fIinterface_name\fR
308 \fBin.mpathd\fR has detected a repair on \fIinterface_name\fR, and has cleared
309 the \fBIFF_FAILED\fR flag. Depending on the administrative configuration, the
310 \fIinterface_name\fR may again be used for IP data traffic.
315 All IP interfaces in group \fIgroup\fR are now unusable
320 \fBin.mpathd\fR has determined that none of the IP interfaces in \fIgroup\fR
321 can be used for IP data traffic, breaking network connectivity for the group.
326 At least 1 IP interface (\fIinterface_name\fR) in group \fIgroup\fR is now
332 \fBin.mpathd\fR has determined that at least one of the IP interfaces in
333 \fIgroup\fR can again be used for IP data traffic, restoring network
334 connectivity for the group.
339 The link has gone down on \fIinterface_name\fR
344 \fBin.mpathd\fR has detected that the \fBIFF_RUNNING\fR flag for
345 \fIinterface_name\fR has been cleared, indicating that the link has gone down.
350 The link has come up on \fIinterface_name\fR
355 \fBin.mpathd\fR has detected that the \fBIFF_RUNNING\fR flag for
356 \fIinterface_name\fR has been set, indicating that the link has come up.