8.4. 了解网络合作后台程序和"运行者"
Team 守护进程
teamd
使用 libteam 来控制一个团队驱动程序实例。“这个团队驱动程序实例添加硬件设备驱动程序实例组成一个网络链接组”。团队驱动程序提供网络接口,team0 例如,到内核的其他部分:团队驱动程序实例创建的接口具有名称,如 team0,team1等等。这是为了便于理解,也可以使用其他名称。所有合作方法的常见逻辑都由 teamd
“实施;那些特定于不同负载共享和备份方法的功能(如循环)由称为运行程序的独立代码单元实施”。“由于模块和 ‘’ 模式等词语对内核已具有特定含义 ‘’,因此选择了运行程序一词来引用这些代码单元”。用户以 JSON 格式配置文件指定运行程序,然后在创建实例时将代码编译到 teamd
实例中。运行程序不是插件,因为运行程序的代码编译到 teamd
的实例中,因为它在创建之时。如果需要,可作为 teamd 的插件创建
。
编写时,可以使用以下运行程序:
- broadcast(数据通过所有端口传输)
- 循环(数据依次在所有端口上传输)
- Active-backup(使用一个端口或链接,而其他端口或链接作为备份)
- 负载均衡(具有活跃的 Tx 负载平衡和基于 BPF 的 Tx 端口选择器)
- LACP(实施 802.3ad 链接聚合控制协议)
另外,还有以下 link-watchers 可用:
代码中没有阻止特定 link-watcher 与特定运行程序使用的限制,但在使用 lacp 运行程序时,ethtool 是唯一推荐的 link-watcher。
- ethtool (Libteam lib 使用 ethtool 监视链接状态变化)。如果配置文件中未指定任何其他 link-watcher,则这是默认设置。
- arp_ping (arp_ping 实用程序用于监控使用 ARP 数据包的远端硬件地址是否存在。)
- nsna_ping (Neighbor Advertisements 和邻居请求来自
IPv6
Neighbor Discovery 协议)用于监控邻居接口的存在性。)