4.3. teamd サービス、ランナー、およびリンク監視の理解
チームサービス teamd は、チームドライバーのインスタンスを制御します。このドライバーのインスタンスは、ハードウェアデバイスドライバーのインスタンスを追加して、ネットワークインターフェイスのチームを形成します。チームドライバーは、ネットワークインターフェイス (team0 など) をカーネルに提示します。
teamd サービスは、チーミングのすべてのメソッドに共通のロジックを実装します。この関数は、ラウンドロビンなどの異なる負荷分散とバックアップメソッドに一意で、ランナー と呼ばれる別のコードのユニットにより実装されます。管理者は、JSON (JavaScript Object Notation) 形式でランナーを指定します。インスタンスの作成時に、JSON コードが teamd のインスタンスにコンパイルされます。または、NetworkManager を使用する場合は、team.runner パラメーターにランナーを設定でき、対応する JSON コードを NetworkManager が自動的に作成します。
以下のランナーが利用できます。
-
broadcast- すべてのポートでデータを送信します。 -
roundrobin- 次に、すべてのポートでデータを送信します。 -
activebackup- 1 つのポートにデータを送信します。もう 1 つのポートはバックアップとして維持されます。 -
loadbalance- アクティブな Tx 負荷分散と Berkeley Packet Filter (BPF) ベースの Tx ポートセレクターを持つすべてのポートでデータを送信します。 -
random- 無作為に選択されたポートでデータを送信します。 -
lacp- 802.3ad リンクアグリゲーション制御プロトコル (LACP) を実装します。
teamd サービスはリンク監視を使用して、下位デバイスの状態を監視します。さらに、以下のリンク監視が利用可能です。
-
ethtool-libteamライブラリーは、ethtoolユーティリティーを使用してリンク状態の変更を監視します。これはデフォルトのリンク監視です。 -
arp_ping-libteamライブラリーは、arp_pingユーティリティーでアドレス解決プロトコル (ARP) を使用して、遠端のハードウェアアドレスの存在を監視します。 -
nsna_ping- IPv6 接続では、libteamライブラリーが IPv6 neighbor Discovery プロトコルの Neighbor Advertisement 機能と Neighbor Solicitation 機能を使用して、近くのインターフェイスの存在を監視します。
各ランナーは、lacp を除くリンク監視を使用できます。このランナーは、ethtool リンク監視のみを使用できます。