跳过导航链接 | |
退出打印视图 | |
![]() |
管理 Oracle Solaris 11.1 网络性能 Oracle Solaris 11.1 Information Library (简体中文) |
链路聚合也称为中继,由系统上的多个接口组成,这些接口被配置为一个逻辑单元,以提高网络通信的吞吐量。下图显示了系统中配置的链路聚合的示例。
图 2-1 链路聚合配置
图 2-1 显示了由三个底层数据链路(net0 到 net2)组成的聚合 aggr1。这些数据链路专用于为通过该聚合遍历系统的通信提供服务。底层链路对外部应用程序是隐藏的。相反,可以访问逻辑数据链路 aggr1。
增加了带宽-将多个链路的容量组合到一个逻辑链路中。
自动故障转移和故障恢复-通过支持基于链路的故障检测,将来自故障链路的通信故障转移到聚合中的其他工作链路。
改进了管理-所有底层链路作为一个单元进行管理。
减少了网络地址池消耗-可以将一个 IP 地址指定给整个聚合。
链路保护-可以配置为流经聚合的包启用链路保护的数据链路属性。
资源管理-可以通过网络资源的数据链路属性以及流定义控制应用程序的网络资源使用。有关资源管理的更多信息,请参见《在 Oracle Solaris 11.1 中使用虚拟网络》中的第 3 章 "在 Oracle Solaris 中管理网络资源"。
Oracle Solaris 支持两种类型的链路聚合:
中继聚合
数据链路多路径 (Datalink multipathing, DLMP) 聚合
要快速查看这两种链路聚合类型之间的区别,请参见附录 A。
以下各节将更详细地介绍每种类型的链路聚合。
中继聚合对具有不同通信负载的各种网络都有益处。例如,如果网络中的系统运行具有分布式大通信流量的应用程序,可以将中继聚合专用于该应用程序的通信以增加带宽。对于具有有限的 IP 地址空间但仍需要很大带宽的站点,大的接口聚合仅需要一个 IP 地址。对于需要隐藏内部接口的存在的站点,聚合的 IP 地址对外部应用程序隐藏其接口。
在 Oracle Solaris 中,创建聚合时缺省情况下会配置中继聚合。通常,配置了链路聚合的系统还会使用外部交换机连接到其他系统。请参见下图。
图 2-2 使用交换机的链路聚合
图 2-2 描述了包含两个系统的本地网络,其中每个系统都配置了一个聚合。这两个系统通过配置了链路聚合控制协议 (Link Aggregation Control Protocol, LACP) 的交换机连接在一起。
系统 A 的聚合由两个接口 net1 和 net2 组成。这些接口通过聚合端口连接到交换机。系统 B 的聚合由四个接口(即 net1 至 net4)组成。这些接口也连接到交换机上的聚合端口。
在该链路聚合拓扑中,交换机必须支持聚合技术。相应地,其交换机端口必须配置为管理来自这些系统的通信。
中继聚合还支持背对背配置。不使用交换机,将两个系统直接连接到一起以运行并行聚合,如下图所示。
图 2-3 背对背链路聚合配置
图 2-3 显示了系统 A 上的链路聚合 aggr0 直接与系统 B 上的链路聚合 aggr0 连接(通过各自底层数据链路之间的相应链路)。这样,系统 A 和 B 可以提供冗余和高可用性,以及这两个系统之间的高速通信。每个系统还将 net0 配置为用于本地网络内的通信流。
背对背链路聚合最常见的应用是镜像数据库服务器配置。这两个服务器必须一起更新,因此对带宽、高速通信流和可靠性要求很高。最常使用背对背链路聚合的是数据中心。
注 - DLMP 聚合不支持背对背配置。
以下各节介绍中继聚合特有的其他功能。请勿在创建 DLMP 聚合时配置这些功能。
如果计划使用中继聚合,请考虑定义传出通信的策略。此策略可以指定希望如何在聚合的可用链路之间分配包,从而建立负载平衡。以下是可能用于聚合策略的层说明符及其意义:
L2-通过散列每个包的 MAC (L2) 头来确定传出链路
L3-通过散列每个包的 IP (L3) 头来确定传出链路
L4-通过散列每个包的 TCP、UDP 或其他 ULP (L4) 头来确定传出链路
这些策略的任意组合也是有效的。缺省策略是 L4。
如果中继聚合的设置中包含交换机,则必须注意该交换机是否支持 LACP。如果交换机支持 LACP,则必须为交换机和聚合配置 LACP。可将聚合的 LACP 设为以下三个值之一:
off-聚合的缺省模式。不生成 LACP 包(称为 LACPDU)。
active-系统按固定的时间间隔(您可以指定该时间间隔)生成 LACPDU。
passive-系统仅在收到来自交换机的 LACPDU 时才生成 LACPDU。如果聚合和交换机均在被动模式下进行配置,则它们无法交换 LACPDU。
中继聚合一般可以满足网络设置的要求。但是,一个中继聚合只能与一个交换机配合使用。因此,该交换机成为系统聚合的单点故障。以前使聚合能够跨多个交换机的解决方案存在其自身的缺点:
在交换机上实现的解决方案是特定于供应商的,而非标准化的解决方案。如果使用了多个供应商提供的多种交换机,则某个供应商的解决方案可能不适用于其他供应商的产品。
使用 IP 多路径 (IP multipathing, IPMP) 合并链路聚合非常复杂,尤其是在包含全局区域和非全局区域的网络虚拟化环境中。扩大配置范围后复杂程度会增加,例如,在包含大量系统、区域、NIC、虚拟 NIC (virtual NIC, VNIC) 和 IPMP 组的方案中。该解决方案还需要您对各个系统上的全局区域和各个非全局区域进行配置。
即使实现了链路聚合与 IPMP 的合并,该配置也不能利用只在链路层工作的其他优点,例如,链路保护、用户定义的流以及定制链路属性(例如带宽)的能力。
DLMP 聚合可以克服这些缺点。下图显示了 DLMP 聚合的工作原理。
图 2-4 DLMP 聚合
图 2-4 显示了具有链路聚合 aggr0 的系统 A。该聚合由 net0 到 net3 四个底层链路组成。除 aggr0 外,主接口、VNIC(vnic1 到 vnic4)也在该聚合上进行配置。该聚合连接到交换机 A 和交换机 B,这两个交换机反过来连接到范围更广的网络中的其他目标系统。
在中继聚合中,每个端口都与聚合上配置的各个数据链路关联。在 DLMP 聚合中,端口与聚合上配置的任意数据链路以及该聚合上的主接口和 VNIC 相关联。
如果 VNIC 数超过底层链路数,则单个端口与多个数据链路相关联。例如,图 2-4 显示 vnic4 与 vnic3 共享一个端口。
类似地,如果聚合的端口出现故障,则会将使用该端口的所有数据链路都分发到其他端口。例如,如果 net0 出现故障,则 aggr0 将与某个其他数据链路共享一个端口。聚合端口间的分发是对用户透明的,并独立于连接到聚合的外部交换机。
如果交换机出现故障,则聚合会使用其他交换机继续为其数据链路提供连接。因此,一个 DLMP 聚合可以使用多个交换机。
聚合可跨越多个交换机。
没有什么交换机配置是必需的或必须对交换机执行的。
如果仅使用特定类型支持的选项,可以通过使用 dladm modify-aggr 命令在中继聚合与 DLMP 聚合之间进行切换。
注 - 如果从中继聚合切换为 DLMP 聚合,则必须删除之前为中继聚合创建的交换机配置。
链路聚合配置必须符合以下要求:
不必在要配置到聚合中的数据链路上配置 IP 接口。
聚合中的所有数据链路必须以相同的速度和全双工模式运行。
对于 DLMP 聚合,必须至少有一个交换机,以将聚合连接到其他系统的端口。配置 DLMP 聚合时不能使用背对背设置。
在基于 SPARC 的系统上,各个数据链路都必须有各自唯一的 MAC 地址。有关说明,请参阅《在 Oracle Solaris 11.1 中使用固定网络配置连接系统》中的"如何确保每个接口的 MAC 地址是唯一的"。
如 IEEE 802.3ad 链路聚合标准中所定义,设备必须支持链路状态通知,以让端口连接至聚合或与聚合分离。不支持链路状态通知的设备只能通过使用 dladm create-aggr 命令的 -f 选项进行聚合。对于此类设备,始终将链路状态报告为 UP(活动)。有关使用 -f 选项的信息,请参见如何创建链路聚合。