5.4. ネットワークチーミングデーモンおよび「ランナー」について

チームデーモンの teamd は、libteam を使ってチームドライバーのインスタンス 1 つを制御します。このチームドライバーのインスタンスは、ハードウェアドライバーのインスタンスを追加してネットワークリンクの チーム を形成します。チームドライバーは、ネットワークインターフェース、たとえば team0 をカーネルの他の部分に提示します。チームドライバーのインスタンスが作成したインスタンスには team0team1 などの名前が文書内で与えられます。これは分かりやすくするためのもので、他の名前を使っても構いません。チーミング方法のすべてに共通な論理は、teamd が実行します。ラウンドロビンのような異なる負荷分散やバックアップ方法に固有の機能は、ランナー と呼ばれる別のコードユニットによって実行されます。ランナー という用語がこれらのコードユニットの呼称に選ばれたのは、モジュールモード といった言葉がカーネルとの関係で既に特別な意味を持っているためです。ユーザーは JSON 形式の設定ファイルでランナーを指定し、インスタンスの作成時にコードが teamd インスタンスにコンパイルされます。ランナーのコードはその作成時に teamd のインスタンスにコンパイルされるので、ランナーはプラグインではありません。必要な際には、teamd 用のプラグインとしてコードを作成することは可能です。
本ガイド執筆時点では、以下のランナーが利用可能です。
  • broadcast (データは全ポートで送信されます)
  • round-robin (データは全ポートで順番に送信されます)
  • active-backup (1 つのポートまたはリンクが使用され、他はバックアップとして維持されます)
  • loadbalance (アクティブ Tx 負荷分散と BPF ベースの Tx ポートセレクターを使用)
  • lacp (802.3ad リンクアグリゲーション制御プロトコルを実装)
さらに、以下のリンク監視が利用可能です。
  • ethtool (Libteam lib は ethtool を使用してリンク状態の変更を監視)。設定ファイルで他のリンク監視が指定されていなければ、これがデフォルトになります。
  • arp_ping (arp_ping ユーティリティーは、ARP パケットを使用して先方のハードウェアアドレスの存在を監視します。)
  • nsna_ping (IPv6 近隣検索プロトコルからの近隣アドバタイズと近隣要請を使って近隣のインターフェースの存在を監視します。)
コードには、特定のリンク監視が特定のランナーで使用されることに関する制限はありません。ただし、lacp ランナー使用時に推奨されるリンク監視は、ethtool のみです。