IN.MPATHD(8) Maintenance Commands and Procedures IN.MPATHD(8)
NAME
in.mpathd - IP multipathing daemon
SYNOPSIS
/usr/lib/inet/in.mpathdDESCRIPTION
The
in.mpathd daemon performs failure and repair detection for IP
interfaces that have been placed into an IPMP group (or optionally,
for all IP interfaces on the system). It also controls which IP
interfaces in an IPMP group are "active" (being used by the system to
send or receive IP data traffic) in a manner that is consistent with
the administrator's configured policy.
The
in.mpathd daemon can detect IP interface failure and repair
through two methods: by monitoring the
IFF_RUNNING flag for each IP
interface (link-based failure detection), and by sending and
receiving ICMP probes on each IP interface (probe-based failure
detection). Link-based failure detection is instantaneous and is
always enabled (provided the network driver supports the feature);
probe-based failure detection must be enabled through the
configuration of one or more test addresses (described below), but
tests the entire IP interface send and receive path. The
ipmpstat(8) utility can be used to check which failure detection methods are
enabled.
If only link-based failure detection is enabled, then the health of
the interface is determined solely from the state of the
IFF_RUNNING flag. Otherwise, the interface is considered failed if either of the
two methods indicate a failure, and repaired once both methods
indicate the failure has been corrected. Not all interfaces in a
group need to be configured with the same failure detection methods.
As mentioned above, to perform probe-based failure detection
in.mpathd requires a test address on each IP interface for the
purpose of sending and receiving probes. Each address must be marked
NOFAILOVER (see
ifconfig(8)) and
in.mpathd will be limited to probing
targets on the same subnet. Each address may be configured statically
or acquired by means of DHCP. To find targets,
in.mpathd first
consults the routing table for routes on the same subnet, and uses
the specified next-hop. If no routes match, it sends all-hosts ICMP
probes and selects a subset of the systems that respond. Thus, for
probe-based failure detection to operate, there must be at least one
neighbor on each subnet that responds to ICMP echo request probes.
The
ipmpstat(8) utility can be used to display both the current probe
target information and the status of sent probes.
Both IPv4 and IPv6 are supported. If an IP interface is plumbed for
IPv4 and an IPv4 test address is configured then
in.mpathd will start
sending ICMPv4 probes over that IP interface. Similarly, if an IP
interface is plumbed for IPv6 and an IPv6 test address is configured,
then
in.mpathd will start sending ICMPv6 probes over that IP
interface. However, note that
in.mpathd will ignore IPv6 test
addresses that are not link-local. If both IPv4 and IPv6 are plumbed,
it is sufficient to configure only one of the two, that is, either an
IPv4 test address or an IPv6 test address. If both IPv4 and IPv6 test
addresses are configured,
in.mpathd probes using both ICMPv4 and
ICMPv6.
As mentioned above,
in.mpathd also controls which IP interfaces in an
IPMP group are "active" (used by the system to send and receive IP
data traffic). Specifically,
in.mpathd tracks the administrative
configuration of each IPMP group and attempts to keep the number of
active IP interfaces in each group consistent with that
configuration. Therefore, if an active IP interface fails,
in.mpathd will activate an
INACTIVE interface in the group, provided one exists
(it will prefer
INACTIVE interfaces that are also marked
STANDBY).
Likewise, if an IP interface repairs and the resulting repair leaves
the IPMP group with more active interfaces than the administrative
configuration specifies,
in.mpathd will deactivate one of the
interfaces (preferably one marked
STANDBY), except when the
FAILBACK variable is used, as described below. Similar adjustments will be
made by
in.mpathd when offlining IP interfaces (for instance, in
response to
if_mpadm(8)).
The
in.mpathd daemon accesses three variable values in
/etc/default/mpathd:
FAILURE_DETECTION_TIME,
FAILBACK and
TRACK_INTERFACES_ONLY_WITH_GROUPS.
The
FAILURE_DETECTION_TIME variable specifies the probe-based failure
detection time. The shorter the failure detection time, the more
probe traffic. The default value of
FAILURE_DETECTION_TIME is 10
seconds. This means that IP interface failure will be detected by
in.mpathd within 10 seconds. The IP interface repair detection time
is always twice the value of
FAILURE_DETECTION_TIME. Note that
failures and repairs detected by link-based failure detection are
acted on immediately, though
in.mpathd may ignore link state changes
if it suspects that the link state is flapping due to defective
hardware; see
DIAGNOSTICS.
By default,
in.mpathd limits failure and repair detection to IP
interfaces that are configured as part of a named IPMP group. Setting
TRACK_INTERFACES_ONLY_WITH_GROUPS to
no enables failure and repair
detection on all IP interfaces, even if they are not part of a named
IPMP group. IP interfaces that are tracked but not part of a named
IPMP group are considered to be part of the "anonymous" IPMP group.
In addition to having no name, this IPMP group is special in that its
IP interfaces are not equivalent and thus cannot take over for one
another in the event of an IP interface failure. That is, the
anonymous IPMP group can only be used for failure and repair
detection, and provides no high-availability or load-spreading.
As described above, when
in.mpathd detects that an IP interface has
repaired, it activates it so that it will again be used to send and
receive IP data traffic. However, if
FAILBACK is set to
no, then the
IP interface will only be activated if no other active IP interfaces
in the group remain. However, the interface may subsequently be
activated if another IP interface in the group fails.
FILES
/etc/default/mpathd Contains default values used by the
in.mpathd daemon.
SEE ALSO
if_mpadm(8),
ifconfig(8),
ipmpstat(8),
attributes(7),
icmp(4P),
icmp6(4P),
System Administration Guide: IP ServicesDIAGNOSTICS
IP interface
interface_name has a hardware address which is not
unique in group
group_name; offlining
Description: For probe-based failure detection, load-spreading, and other code
IPMP features to work properly, each IP interface in an IPMP
group must have a unique hardware address. If this requirement is
not met,
in.mpathd will automatically offline all but one of the
IP interfaces with duplicate hardware addresses.
IP interface
interface_name now has a unique hardware address in
group
group_name; onlining
Description: The previously-detected duplicate hardware address is now unique,
and therefore
in.mpathd has brought
interface_name back online.
Test address
address is not unique in group; disabling probe-based
failure detection on
interface_name Description: For
in.mpathd to perform probe-based failure detection, each test
address in the group must be unique.
No test address configured on interface
interface_name disabling
probe-based failure detection on it
Description: For
in.mpathd to perform probe-based failure detection on an IP
interface, it must be configured with a test address: IPv4, IPv6,
or both.
IP
interface_name in group
group_name is not plumbed for IPv[4|6],
affecting IPv[4|6] connectivity
Description: All IP interfaces in a multipathing group must be homogeneously
plumbed. For example, if one IP interface is plumbed for IPv4,
then all IP interfaces in the group must be plumbed for IPv4, or
IPv4 packets will not be able to be reliably sent and received.
The STREAMS modules pushed on all IP interfaces must also be
identical.
The link has come up on
interface_name more than 2 times in the last
minute; disabling repair until it stabilizes.
Description: To limit the impact of interfaces with intermittent hardware
(such as a bad cable),
in.mpathd will not consider an IP
interface with a frequently changing link state as repaired until
the link state stabilizes.
Invalid failure detection time of
time, assuming default 10000 ms
Description: An invalid value was encountered for
FAILURE_DETECTION_TIME in
the
/etc/default/mpathd file.
Too small failure detection time of
time, assuming minimum of 100 ms
Description: The minimum value that can be specified for
FAILURE_DETECTION_TIME is currently 100 milliseconds.
Invalid value for FAILBACK
value Description: Valid values for the boolean variable
FAILBACK are
yes or
no.
Invalid value for TRACK_INTERFACES_ONLY_WITH_GROUPS
value Description: Valid values for the boolean variable
TRACK_INTERFACES_ONLY_WITH_GROUPS are
yes or
no.
Cannot meet requested failure detection time of
time ms on (inet[6]
interface_name) new failure detection time for group
group_name is
time ms
Description: The round trip time for
ICMP probes is higher than necessary to
maintain the current failure detection time. The network is
probably congested or the probe targets are loaded.
in.mpathd automatically increases the failure detection time to whatever it
can achieve under these conditions.
Improved failure detection time
time ms on (inet[6]
interface_name)
for group
group_name Description: The round trip time for
ICMP probes has now decreased and
in.mpathd has lowered the failure detection time correspondingly.
IP interface failure detected on
interface_name Description: in.mpathd has detected a failure on
interface_name, and has set
the
IFF_FAILED flag on
interface_name, ensuring that it will not
be used for IP data traffic.
IP interface repair detected on
interface_name Description: in.mpathd has detected a repair on
interface_name, and has
cleared the
IFF_FAILED flag. Depending on the administrative
configuration, the
interface_name may again be used for IP data
traffic.
All IP interfaces in group
group are now unusable
Description: in.mpathd has determined that none of the IP interfaces in
group can be used for IP data traffic, breaking network connectivity
for the group.
At least 1 IP interface (
interface_name) in group
group is now usable
Description: in.mpathd has determined that at least one of the IP interfaces
in
group can again be used for IP data traffic, restoring network
connectivity for the group.
The link has gone down on
interface_name Description: in.mpathd has detected that the
IFF_RUNNING flag for
interface_name has been cleared, indicating that the link has
gone down.
The link has come up on
interface_name Description: in.mpathd has detected that the
IFF_RUNNING flag for
interface_name has been set, indicating that the link has come
up.
May 13, 2009 IN.MPATHD(8)