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