次の記事では、Windows、VMware、LinuxでのNICチーミングについて説明します。
ネットワーク アダプターのチーミングは、複数のネットワーク接続を組み合わせてスループットを向上させたり、冗長性を提供したりするさまざまな方法を表すために使用される用語です。ネットワーク インターフェイス カード(NIC)チーミングとLAN on Motherboard (LOM)チーミング。ネットワークの信頼性とスループットを迅速かつ簡単に向上させるコスト パフォーマンスに優れた方法を組織に提供できます
ネットワーク インターフェイス カード (NIC) チーミングは、サーバーに高可用性とフォールト トレランスを提供する方法の 1 つです。
次に示すのは、1つのアップリンク接続と1つのダウンリンク接続を持つ2つのNICを持つWebサーバーの例です
2枚のネットワーク カードのうち1枚に障害が発生したか、切断されても、クライアントのコンピューター接続は接続されたままです
図1: 2つのNICチーミング ネットワーク カードに障害が発生しても、インターネット接続は維持されたままです。
ネットワーク チームには、主に以下の4つのタイプがあります。
Smart Load Balancing(SLB)とフェールオーバー: このタイプのチームは、すべてのプライマリー アダプター間でネットワーク トラフィックのバランスを調整します。プライマリー アダプターに障害が発生した場合、残りのプライマリー アダプターは引き続き負荷のバランスを調整します。プライマリー アダプターすべてに障害が発生した場合、トラフィックはスタンバイ アダプターを使用して中断されることなく流れ続けます。プライマリー アダプターがオンラインに戻ると、トラフィックのフローが再開されます。
自動フォールバックが無効なSLB: このタイプのチームは上記のように機能しますが、トラフィックはオンラインに戻った後、自動的にプライマリ アダプタに戻りません。
IEEE 802.3ad動的リンク アグリゲーション: リンク アグリゲーション制御プロトコル(LACP)またはIEEE 802.1axとも呼ばれます。このタイプのチームでは、複数の物理リンクを1つの論理リンクにバンドルし、その有効帯域幅を物理リンクの合計にすることでスループットを向上させます。このタイプのチームでは、接続のもう一方の端の電源がLACPをサポートしている必要があります。チームが正常に機能するには、スイッチを適切に構成する必要があります。
汎用トランキング: 静的リンク アグリゲーションとも呼ばれるこのタイプのチームは、IEEE 802.3ad/802.1axと同じタイプのバンドル機能を提供しますが、LACPは使用しません。スイッチがLACPをサポートしている必要はありませんが、このタイプのチームが機能するようにスイッチを正しく構成する必要があります。
NICを作成するには、次の手順に従います。
サーバー マネージャーで、[ローカル サーバー]をクリックします。
プロパティペインで[NICチーミング]を見つけて、右側にある無効リンクをクリックします。NICチーミングダイアログ ボックスが開きます。
NIC チーミング ダイアログボックス
図 2: Windows NIC チーミング ダイアログボックス
[アダプターとインターフェイス]で、NICチームに追加するネットワーク アダプターを選択します。
[タスク] をクリックし、[新しいチームへの追加] をクリックします。
図3:Windowsのアダプターとインターフェイスが新しいチームに追加されます。
新しいチームダイアログ ボックスが開き、ネットワーク アダプターとチーム メンバーが表示されます。[チーム名]に、新しいNICチームの名前を入力します。
図4:Windows - アダプターを選択してNICを作成し、チーム名を作成します。
必要に応じて、 追加プロパティを展開し、チーミング モード、ロード バランシング モード、スタンバイ アダプターの値を選択します。通常、最もパフォーマンスの高いロード バランシング モードは動的です。
図5:Windows NICチームの追加プロパティ
VLAN番号を設定またはNICチームに割り当てたい場合は、プライマリー チーム インターフェイスの右側にあるリンクをクリックします。新規チームインタフェースダイアログボックスが開きます。
図6: WindowsのデフォルトVLANメンバーシップ
VLANメンバーシップを構成するには、[特定のVLAN]をクリックします。ダイアログ ボックスの最初のセクションにVLAN情報を入力します。
図7: Windows固有のVLANメンバーシップ
「OK」をクリックします。
Hyper-VホストでNICチーミングをセットアップする必要がある場合は、Microsoftの記事「ホスト コンピューターに新しいNICチームを作成する」を参照してください
PowerShellによる手順
PowerShellを使用したネットワーク チームの作成
管理者特権でPowerShellプロンプトを開きます。Windows® 10のタスクバーの検索で、「 PowerShell」と入力します。「W」キーと「S」キーを押して「検索」を開きます。
これで、 Windows PowerShell の結果が上部に表示されます。[Windows PowerShell]を右クリックし、[管理者として実行]を選択します。
図8: Windowsスタート メニューPowerShell管理者として実行
[ユーザー アカウント制御]プロンプトが表示されたら、[はい]をクリックします。
次のコマンドを入力します。 new-NetLBFOTeam [TEAMNAME] "[NIC1]", "[NIC2]"
をクリックし、 Enter キーを押します。
図8: PowerShell コマンド
例
new-NetLBFOTeam NIC-Team "NIC1" , "NIC2"
[コントロール パネル]>[ネットワークとインターネット]>[ネットワーク接続]に移動して、[ネットワーク接続]を開きます。
VMware vSphere
NICチームは、物理ネットワークと仮想ネットワークの間でトラフィックの負荷を共有できます。一部またはすべてのメンバー間で、ハードウェア障害またはネットワーク停止が発生した場合にパッシブ フェールオーバーを提供します。
右上のESXiバージョンを選択してVMwareでNICチーミングを構成する方法の詳細な手順については、VMware KBを参照してください
vSphere標準スイッチまたは標準ポート グループでNICチーミング、フェールオーバー、ロード バランシングを構成します。
リファレンス:「NIC teaming in ESXi and ESX(1004088)」
Linuxでは、管理者はボンディング カーネル モジュールと、チャネル ボンディング インターフェイスと呼ばれる特殊なネットワーク インターフェイスを使用して、複数のネットワーク インターフェイスを単一のチャネルにバインドできます。チャネル ボンディングを使用することで、2つ以上のネットワーク インターフェイスを1つのネットワーク インターフェイスとして動作させることができ、同時に帯域幅を増やし、冗長性も提供します。警告:ネットワーク スイッチを使用せず直接ケーブルを使用した接続では、ボンディングはサポートされていないためご注意ください。ここで説明するフェールオーバー メカニズムは、ネットワーク スイッチがないと期待どおりに機能しません。
active-backup、balance-TLB、balance-alb モードでは、スイッチの特定の設定は必要ありません。他のボンディング モードでは、リンクを集約するようスイッチを設定する必要があります。たとえば、Ciscoスイッチではモード0、2、3に対してEtherChannelが必要ですが、モード4にはLACPとEtherChannelが必要です。スイッチに付属のマニュアルと、kernel-docパッケージのbonding.txtファイルを参照してください。
ボンディング カーネル モジュールがインストールされているかどうかを確認します。
Red Hat Enterprise Linux 6では、ボンディング モジュールはデフォルトではロードされません。モジュールをロードするには、以下のコマンドをrootとして実行します。
~]# modprobe --first-time bonding
モジュールが実行されておらず、ロードされたことを示す視覚的な出力はありません。このアクティブ化は、システムの再起動後には維持されません。永続モジュールのロードの説明は、セクション31.7「永続モジュールのロード」を参照してください。BONDING_OPTSディレクティブを使用した正しい構成ファイルがあれば、ボンディング モジュールは必要に応じてロードされるため、個別にロードする必要はありません。モジュールに関する情報を表示するには、以下のコマンドを実行します。
~]$ modinfo bonding
カーネル モジュールの操作」では、モジュールのロードとアンロードについて説明しています。チャネル ボンディング インターフェイスの作成
チャネル ボンディング インターフェイスを作成するには、 /etc/sysconfig/network-scripts/
ディレクトリは ifcfg-bondN と呼ばれ、N はインターフェイスの番号 (0.
など) に置き換えられます。ファイルの内容は、Ethernetインターフェイスなど、接合されるインターフェイスのタイプと同じにすることができます。唯一の違いは、DEVICEディレクティブがbondNであり、Nをインターフェイスの番号に置き換えている点です。NM_CONTROLLEDディレクティブを追加して、NetworkManagerがこのデバイスを構成しないようにすることができます
ifcfg-bond0 インタフェース設定ファイルの例
以下は、チャネル ボンディング インターフェイス構成ファイルの例です。
DEVICE=bond0 IPADDR=192.168.1.1 NETMASK=255.255.255.0 ONBOOT=yes BOOTPROTO=none USERCTL=no NM_CONTROLLED=no BONDING_OPTS="bonding parameters separated by spaces"
ボンドのMACアドレスは、ネットワークに追加される最初のインターフェイスから取得されます。必要に応じて、HWADDRディレクティブを使用して指定することもできます。NetworkManager にこのインターフェースを制御させたい場合は、NM_CONTROLLED=no ディレクティブを削除するか、yes に設定し、TYPE=Bond と BONDING_MASTER=yes を追加します
チャネル・ボンディング・インターフェースを作成した後、MASTERディレクティブとSLAVEディレクティブを構成ファイルに追加して、一緒にバインドするネットワーク・インターフェースを構成する必要があります。各チャネル結合インターフェイスの構成ファイルは、ほぼ同一にすることができます
ifcfg-ethX 結合インタフェース設定ファイルの例
結合された2つのEthernetインターフェイスがチャネルになっている場合、eth0とeth1の両方は次のようになります。
DEVICE=ethX BOOTPROTO=none ONBOOT=yes MASTER=bond0 SLAVE=yes USERCTL=no NM_CONTROLLED=no
インターフェイスが構成されたら、ネットワーク サービスを再起動してボンディングを起動します。以下のコマンドをrootとして実行します。
~]# service network restart
ボンディングのステータスを表示するには、以下の形式でコマンドを発行して、/proc/ファイルを表示します。
cat /proc/net/bonding/bondN
例:
~]$ cat /proc/net/bonding/bond0 Ethernet Channel Bonding Driver: v3.6.0 (September 26, 2009) Bonding Mode: load balancing (round-robin) MII Status: down MII Polling Interval (ms): 0 Up Delay (ms): 0 Down Delay (ms): 0
重要:Red Hat Enterprise Linux 6では、ボンディング カーネル モジュールのインターフェイス固有のパラメーターを、ifcfg-bondNインターフェイス ファイルにあるBONDING_OPTS="bonding parameters”ディレクティブ内のスペース区切り形式のリストとして指定する必要があります。ボンドに固有のオプションは指定しないでください /etc/modprobe.d/bonding.conf
、または非推奨の /etc/modprobe.conf ファイルにあります。max_bondsパラメーターはインターフェイス固有ではないため、必要に応じて以下のように /etc/modprobe.d/bonding.conf
次のように:
options bonding max_bonds=1
ただし、ifcfg-bondNファイルをBONDING_OPTSディレクティブとともに使用する場合は、このディレクティブを使用すると、ネットワークスクリプトが必要に応じてボンドインターフェイスを作成するため、max_bondsパラメーターを設定しないでください
/etc/modprobe.d/bonding.conf に対する変更は、モジュールが次にロードされるまで有効になりません。動作中のモジュールを最初にアンロードする必要があります。
複数のボンディングの作成
Red Hat Enterprise Linux 6 では、ボンドごとに、BONDING_OPTS ディレクティブを含むチャネルボンディングインターフェースが作成されます。この構成方法を使用して、複数のボンディング デバイスで異なる構成を設定することができます。複数のチャネル ボンディング インターフェイスを作成するには、次の手順に従います。
BONDING_OPTSディレクティブを使用して複数のifcfg-bondNファイルを作成します。このディレクティブにより、ネットワーク スクリプトは必要に応じてボンド インターフェイスを作成します。
接合する既存のインターフェイス構成ファイルを作成または編集し、SLAVEディレクティブを含めます
ボンディングするインターフェイス(スレーブ インターフェイス)を、MASTERディレクティブを使用してチャネル ボンディング インターフェイスに割り当てます
複数のifcfg-bondNインターフェイス構成ファイルの例
次に、チャネル ボンディング インターフェイス構成ファイルの例を示します。
DEVICE=bond N IPADDR=192.168.1.1 NETMASK=255.255.255.0 ONBOOT=yes BOOTPROTO=none USERCTL=no NM_CONTROLLED=no vBONDING_OPTS="bonding parameters separated by spaces"
この例では、Nをボンディング インターフェイスの番号に置き換えます。たとえば、2つのボンドを作成するには、ifcfg-bond0とifcfg-bond1の2つの構成ファイルを作成します
ifcfg-ethX結合インターフェイス構成ファイルの例に従って結合するインターフェイスを作成し、必要に応じてMASTER=bondNディレクティブを使用して結合インターフェイスに割り当てます。たとえば、引き続き上記の例で解説すると、ボンディングごとに2つのインターフェイスが必要な場合、2つのボンディングに対して4つのインターフェイス構成ファイルを作成し、最初の2つをMASTER=bond0を使用して、次の2つをMASTER=bond1を使用して割り当てます。
リファレンス:Linux チャネル ボンディング インターフェイス