跳过导航链接 | |
退出打印视图 | |
管理 Oracle Solaris 11.1 网络性能 Oracle Solaris 11.1 Information Library (简体中文) |
Oracle Solaris 中的 IPMP 包含以下功能:
通过 IPMP,可以将多个 IP 接口配置到一个组(称为 IPMP 组)中。IPMP 组及其多个底层 IP 接口作为一个整体表示为单个 IPMP 接口。对此接口的处理与对网络栈的 IP 层上的其他任何接口一样。所有 IP 管理任务、路由表、地址解析协议 (Address Resolution Protocol, ARP) 表、防火墙规则和其他与 IP 相关的过程均通过引用 IPMP 接口来使用 IPMP 组。
系统负责处理数据地址在各底层活动接口间的分发。创建 IPMP 组时,数据地址作为一个地址池属于对应的 IPMP 接口。然后,内核会自动将数据地址随机绑定到组的底层活动接口。
ipmpstat 工具是用于获取有关 IPMP 组的信息的主要工具。此命令提供有关 IPMP 配置的所有方面的信息,例如组的底层 IP 接口、测试地址和数据地址、所使用的故障检测的类型,以及哪些接口已经出现故障。ipmpstat 的功能、您可使用的选项以及每个选项生成的输出都在监视 IPMP 信息中描述。
可以为 IPMP 接口指定一个定制名称,以便更容易识别 IPMP 组。请参见配置 IPMP 组。
多种因素可导致接口不可用,例如接口出现故障或接口处于脱机状态以进行维护。如果没有 IPMP,便无法再使用与不可用的接口相关联的任何 IP 地址联系系统。而且,使用这些 IP 地址的现有连接也会中断。
通过 IPMP,可以将多个 IP 接口配置到一个 IPMP 组中。组在功能上类似于使用数据地址发送或接收网络通信流量的 IP 接口。如果组中的一个底层接口出现故障,数据地址会在组中的其余底层活动接口之间重新分配。因此,尽管某个接口出现故障,组仍能保持网络连接。使用 IPMP 时,只要组中至少有一个接口可用,网络连接就始终可用。
通过自动在 IPMP 组的一组接口中分配传出网络通信流量,IPMP 提高了总体网络性能。此过程称为传出负荷分配。系统还通过为应用程序未指定其 IP 源地址的包执行源地址选择,间接控制传入负荷分配。但是,如果应用程序明确选择了 IP 源地址,则系统不会改变该源地址。
IPMP 组的配置取决于您的系统配置。
使用 IPMP 时,请遵守以下规则:
同一 LAN 上的多个 IP 接口必须配置到一个 IPMP 组中。LAN 广泛地指各种本地网络配置,包括 VLAN 以及其节点属于同一链路层广播域的有线和无线本地网络。
注 - 不支持同一个链路层 (L2) 广播域上存在多个 IPMP 组。L2 广播域通常对应于特定子网。因此,对于每个子网,只能配置一个 IPMP 组。
IPMP 组的底层 IP 接口不能跨越不同的 LAN。
例如,假定具有三个接口的系统已连接到两个单独的 LAN。其中两个 IP 接口连接到一个 LAN,而另一个 IP 接口连接到另一个 LAN。在这种情况下,根据第一条规则的要求,连接到第一个 LAN 的两个 IP 接口必须配置为一个 IPMP 组。根据第二条规则,连接到第二个 LAN 的单个 IP 接口不能成为该 IPMP 组的成员。该单个 IP 接口不需要 IPMP 配置。但是,您可以将该单个接口配置到一个 IPMP 组中以监视该接口的可用性。单接口 IPMP 配置在IPMP 接口配置的类型中进一步讨论。
考虑另一种情况,其中第一个 LAN 的链路包含三个 IP 接口,另一个链路包含两个接口。此设置需要配置两个 IPMP 组:一个三接口组连接到第一个 LAN,一个两接口组连接到第二个 LAN。
多路径守护进程 in.mpathd-检测接口故障并修复。如果为底层接口配置了测试地址,该守护进程将同时执行基于链路的故障检测和基于探测器的故障检测。根据使用的故障检测方法的类型,该守护进程在接口上设置或清除相应标志,以指示该接口是出现故障还是已修复。作为一个选项,还可以配置该守护进程以监视所有接口(包括未配置为属于 IPMP 组的接口)的可用性。有关故障检测的说明,请参见IPMP 中的故障检测。
in.mpathd 守护进程还控制 IPMP 组中的活动接口指定。该守护进程试图保持创建 IPMP 组时最初配置的活动接口的数量。因此,in.mpathd 会根据需要激活或取消激活底层接口,以符合管理员配置的策略。有关 in.mpathd 守护进程如何管理底层接口激活的更多信息,请参阅IPMP 的工作原理。有关该守护进程的更多信息,请参阅 in.mpathd(1M) 手册页。
IP 内核模块-通过将 IPMP 组中可用的一组 IP 数据地址分配给组中可用的一组底层 IP 接口,管理传出负荷分配。该模块还将执行源地址选择以管理传入负荷分配。该模块的两个角色都可以提高网络通信性能。
IPMP 配置文件 (/etc/default/mpathd )-用于定义守护进程的行为。
应定制该文件以设置以下参数:
运行基于探测器的故障检测时要探测的目标接口
探测目标以检测故障的持续时间
用于在出现故障的接口修复后标记该接口的状态
要监视的 IP 接口范围,是否也包括系统中未配置为属于 IPMP 组的 IP 接口
有关修改配置文件的过程,请参阅如何配置 IPMP 守护进程的行为。
ipmpstat 命令-全面提供了有关 IPMP 状态的各种不同类型的信息。该工具还显示有关每个 IPMP 组的底层 IP 接口的其他信息,以及已为该组配置的数据地址和测试地址。有关此命令的更多信息,请参见监视 IPMP 信息和 ipmpstat(1M) 手册页。
一个 IPMP 配置通常由同一系统上连接到同一 LAN 的两个或更多物理接口组成。这些接口可以属于一个 IPMP 组并采用以下配置之一:
活动/活动配置-所有底层接口都处于活动状态的 IPMP 组。活动接口是当前可供 IPMP 组使用的 IP 接口。
注 - 缺省情况下,当您将一个底层接口配置为属于某个 IPMP 组时,该接口将变为活动状态。
活动/备用配置-至少有一个接口出于管理目的被配置为备用接口的 IPMP 组。虽然备用接口处于空闲状态,但多路径守护进程仍会监视该接口以跟踪其可用性,具体取决于该接口的配置方式。如果该接口支持链路故障通知,则使用基于链路的故障检测。如果为该接口配置了测试地址,则还将使用基于探测器的故障检测。如果一个活动接口出现故障,会自动根据需要部署备用接口。您可以根据需要,为一个 IPMP 组配置任意数量的备用接口。
也可以将一个接口单独配置在一个 IPMP 组中。单接口 IPMP 组的行为与具有多个接口的 IPMP 组相同。然而,这种 IPMP 配置不提供网络通信的高可用性。如果底层接口出现故障,系统将完全丧失发送或接收通信的能力。配置单接口 IPMP 组的目的是通过使用故障检测监视接口的可用性。通过在接口上配置测试地址,多路径守护进程可以使用基于探测器的故障检测跟踪该接口。
通常,单接口 IPMP 组配置与具有更强的故障转移功能的其他技术(例如,Oracle Solaris Cluster 软件)结合使用。系统可以持续监视底层接口的状态,而 Oracle Solaris Cluster 软件提供的功能可确保发生故障时网络的可用性。有关 Oracle Solaris Cluster 软件的更多信息,请参见《Oracle Solaris Cluster Concepts Guide》。
无底层接口的 IPMP 组也可以存在,例如,其底层接口已被删除的一个组。该 IPMP 组未被破坏,但该组不能用于发送和接收通信。当组的底层接口被置于联机状态时,IPMP 接口的数据地址将被分配给这些接口,系统继续承载网络通信。
IPMP 试图保留与创建 IPMP 组时最初配置的数量相同的活动和备用接口,从而保持网络可用性。
IPMP 故障检测可以基于链路,也可以基于探测器,或同时基于两者,以确定组中特定底层 IP 接口的可用性。如果 IPMP 确定某底层接口出现故障,则该接口被标记为出现故障,并且不再可用。然后,与故障接口相关联的数据 IP 地址被重新分配给组中另一个能正常工作的接口。还会部署一个备用接口(如果可用)以保持活动接口的原始数量。
以一个使用活动/备用配置的三接口 IPMP 组 itops0 为例,如下图所示。
图 5-1 IPMP 活动/备用配置
IPMP 组 itops0 的配置如下所示:
两个数据地址指定给组 192.168.10.10 和 192.168.10.15。
两个底层接口配置为活动接口,并对其指定了灵活的链路名称:net0 和 net1。
该组有一个备用接口,同样具有灵活的链路名称 net2。
使用了基于测试器的故障检测,因此为活动接口和备用接口配置了测试地址,如下所示:
net0:192.168.10.30
net1:192.168.10.32
net2:192.168.10.34
注 - 图 5-1、图 5-2、图 5-3 和图 5-4 中的“活动”、“脱机”、“备用”和“故障”区域仅表示底层接口(而不是物理位置)的状态。此 IPMP 实现中没有发生接口或地址的物理移动或任何 IP 接口转移。这些区域只是为了显示在出现故障或修复后,底层接口是如何改变状态的。
可以将 ipmpstat 命令与不同的选项结合使用来显示有关现有 IPMP 组的特定类型的信息。有关其他示例,请参见监视 IPMP 信息。
以下 ipmpstat 命令显示有关图 5-1 中的 IPMP 配置的信息:
# ipmpstat -g GROUP GROUPNAME STATE FDT INTERFACES itops0 itops0 ok 10.00s net1 net0 (net2)
要显示有关该组的底层接口的信息,请键入以下内容:
# ipmpstat -i INTERFACE ACTIVE GROUP FLAGS LINK PROBE STATE net0 yes itops0 ------- up ok ok net1 yes itops0 --mb--- up ok ok net2 no itops0 is----- up ok ok
IPMP 通过管理底层接口以保留活动接口的原始数量来维护网络可用性。因此,如果 net0 出现故障,则会部署 net2 以确保该 IPMP 组仍有两个活动接口。net2 的激活如下图所示。
图 5-2 IPMP 中的接口故障
ipmpstat 命令显示了图 5-2 中的信息,如下所示:
# ipmpstat -i INTERFACE ACTIVE GROUP FLAGS LINK PROBE STATE net0 no itops0 ------- up failed failed net1 yes itops0 --mb--- up ok ok net2 yes itops0 -s----- up ok ok
在修复 net0 后,它的状态将恢复为活动接口。net2 也依次返回其原始的备用状态。
图 5-3 显示了一种不同的故障情形,其中备用接口 net2 出现故障 (1)。然后,管理员将一个活动接口 net1 置于脱机状态 (2)。结果,该 IPMP 组就只剩下一个正常工作的接口 net0。
图 5-3 IPMP 中的备用接口故障
ipmpstat 命令显示了图 5-3 中的信息,如下所示:
# ipmpstat -i INTERFACE ACTIVE GROUP FLAGS LINK PROBE STATE net0 yes itops0 ------- up ok ok net1 no itops0 --mb-d- up ok offline net2 no itops0 is----- up failed failed
对于此特定故障,接口修复后的恢复行为也有所不同。恢复过程取决于 IPMP 组的活动接口的原始数量与修复后的配置的对比情况。恢复过程以图形表示在下图中:
图 5-4 IPMP 恢复过程
在图 5-4 中,net2 在修复后通常会恢复到其原始状态,即备用接口 (1)。但是,IPMP 组仍不反映两个活动接口的原始数量,因为 net1 仍保持脱机状态 (2)。因此,IPMP 将 net2 部署为活动接口 (3)。
ipmpstat 命令显示了修复后的 IPMP 情形,如下所示:
# ipmpstat -i INTERFACE ACTIVE GROUP FLAGS LINK PROBE STATE net0 yes itops0 ------- up ok ok net1 no itops0 --mb-d- up ok offline net2 yes itops0 -s----- up ok ok
如果一个同时配置为 FAILBACK=no 模式(在此模式下,出现故障的活动接口在修复后不会自动恢复为活动状态)的活动接口出现故障,会发生类似的恢复过程。假定图 5-2 中的 net0 配置为 FAILBACK=no 模式。在该模式下,修复后的 net0 会成为备用接口,尽管它原来是一个活动接口。接口 net2 仍保持活动以维持 IPMP 组的两个活动接口的原始数量。
ipmpstat 命令显示了恢复信息,如下所示:
# ipmpstat -i INTERFACE ACTIVE GROUP FLAGS LINK PROBE STATE net0 no itops0 i------ up ok ok net1 yes itops0 --mb--- up ok ok net2 yes itops0 -s----- up ok ok
有关这种类型的配置的更多信息,请参见FAILBACK=no 模式。