如果使用 modprobe bond 创建绑定,则文件将存储在 /proc/net/bonding/ 中,提供绑定的详细信息。是否有任何等效的文件,为 teamd 提供跑步者类型?
答案1
我无法准确回答这个问题。 /etc/sysconfig/network-scripts 通常会包含绑定的此信息,但我已经能够创建并非如此的情况(使用 teamd、teamdctl 和 ip link 来设置绑定)。
我决定找到跑步者类型的解决方案是 running teamdctl dev <team> config dump
。但是,我没能找到 teamdctl 生成的配置存储在哪里。找到它的保存位置可能是这个问题的最佳答案。
答案2
显然,team
内核模块没有提供/proc/net/
与模块类似的状态文件bonding
。相反,您必须使用该teamdctl
命令来查询当前配置。
在 RHEL 及其相关发行版中,如果使用默认的运行程序类型roundrobin
,则文件中不会提及运行程序类型/etc/sysconfig/network-scripts/ifcfg-<team>
,因为显示的 JSON 配置teamdctl <team> config dump
实际上是在团队启动时从默认值动态生成的,因此不会需要存储 JSON。
没有该/etc/sysconfig/
目录的其他发行版将使用其他一些 NetworkManager 配置存储后端。在这种情况下,请检查/etc/NetworkManager/system-connections/
:这是 NetworkManager 与分发无关的配置存储的存储位置。
如果您的发行版没有使用 NetworkManager,而是使用其他一些机制来存储网络配置(例如 Ubuntu/etc/netplan
或最小的 Debian 安装)/etc/network/interfaces
,那么您需要研究它们如何处理分组。(如果您已经这样做了,请放心)编辑此答案以添加信息。)
更改运行器类型的最用户友好的方法可能是使用 NetworkManager,例如nmcli
:
nmcli c mod <team> team.runner activebackup
这将导致配置 JSON 的最小化非默认部分teamd
存储在文件TEAM_CONFIG
的变量中/etc/sysconfig/network-scripts/ifcfg-<team>
。例如,将上面的命令应用于之前使用默认值创建的团队将导致此行被添加到团队的配置文件中:
TEAM_CONFIG="{ \"runner\": { \"name\": \"activebackup\" } }"
如果你想检查团队的当前状态,teamdctl <team> state view
应该输出比 JSON 更人性化的内容。
如果您正在寻找可以通过监控系统轻松检查的内容,那么在/sys/devices/virtual/net/<team>/
目录中,该operstate
文件会说明up
团队作为一个整体是否可以通过流量,down
否则。在lower_<interface>/
子目录中,各个团队成员都有类似的文件。和carrier
/或carrier_changes
文件也可能是监视的良好候选者。但似乎没有任何东西可以清楚地识别跑步者的类型。