linux NICバインドbonding

4129 ワード

Bondingの目的は、システムの可用性を向上させ、物理的なネットワークポートや回線の単一の障害を防止することです.
  • Linux環境がbondingをサポートしているかどうかを確認し、次のコマンド
  • を実行します.
    [root@compute ~]# modinfo bonding
    filename:       /lib/modules/2.6.32-431.el6.x86_64/kernel/drivers/net/bonding/bonding.ko
    author:         Thomas Davis, [email protected] and many others
    description:    Ethernet Channel Bonding Driver, v3.6.0
    version:        3.6.0
    license:        GPL
    srcversion:     353B1DC123506708446C57B
    depends:        8021q,ipv6
    vermagic:       2.6.32-431.el6.x86_64 SMP mod_unload modversions 
    

    上に返される情報は、ライブラリファイル、バージョン、ライセンス、説明などがあり、bondingをサポートしていることを示しています(上記の情報がなければ、カーネルを再インストールまたはコンパイルする可能性があります).
  • Linuxの下にロードバランシングの実行ファイル(ロードバランシングツール、bonding)があるかどうかをチェックし、次のコマンド
  • を実行します.
    [root@compute ~]# which ifenslave
    /sbin/ifenslave
    
  • bondingドライバプロファイルを作成し、次のコマンド
  • を実行します.
    [root@compute ~]# cp /etc/sysconfig/network-scripts/ifcfg-eth0 ifcfg-bond0
    [root@compute ~]# vi /etc/sysconfig/network-scripts/ifcfg-bond0
    DEVICE=bond0   ---    (  )
    BOOTPROTO=static  ---    IP  (  ,  =none   )
    BROADCAST=192.168.1.255 ---(  )
    IPADDR=192.168.1.10 ---(  )
    NETMASK=255.255.255.0 ---(  )
    GATEWAY=192.168.1.254 ---(  )
    NETWORK=192.168.1.0
    ONBOOT=yes ---     (  )
    TYPE=Ethernet ---    (  ,    )
    USERCTL=no ---USERCTL=no        root     (  ,    )
    
  • ifcfg-eth 0 NICのプロパティ
  • を変更
    [root@compute ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
    DEVICE=eth0
    #HWADDR=00:0E:1E:8D:9B:40 ---    ,     bonding   
    ONBOOT=yes 
    BOOTPROTO=none 
    MASTER=bond0 ---MASTER=bond0  eth0   bond0   。
    SLAVE=yes 
    USERCTL=no
    
  • ifcfg-eth 0 NICのプロパティ
  • を変更
    [root@compute ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
    DEVICE=eth0
    #HWADDR=00:0E:1E:8D:9B:41 ---    ,     bonding   
    ONBOOT=yes 
    BOOTPROTO=none 
    MASTER=bond0 ---MASTER=bond0  eth0   bond0   。
    SLAVE=yes 
    USERCTL=no
    

    以上の手順4、5は、NIC eth 0とNIC eth 1を仮想NIC bond 0にバインドし、NICを高可用性にする
  • 編集/etc/modprobe.d/bonding.confファイル、以下の内容
  • を加える
    [root@compute ~]# vi /etc/modprobe.d/bonding.conf
    alias bond0 bonding 
    options bond0 miimon=80 mode=0 
    

    説明:modeはbond 0の動作モード(0-6モード)を指定し、通常は0、1、6、0と6が負荷等化方式、1が主従方式を表し、必要に応じて自分で配置することができる.よく使われるのは0,1,6の3種類です.mode=0は、load balancing(round-robin)が負荷等化方式であり、2つのNICが動作するが、bondingを行う2つのNICは同じMACアドレスを使用するため、NICに接続されたスイッチポートは特殊な構成をしなければならないことを示す.mode=1はfault-tolerance(active-backup)が冗長機能を提供していることを示し、動作方式はプライマリ・スタンバイの動作方式であり、つまりデフォルトでは1つのNICのみが動作し、もう1つはバックアップを行う.bondingは、ホストからスイッチへのリンクがオンになっているかどうかのリンクモニタリングのみを提供します.スイッチの外部リンクだけがダウンし、スイッチ自体が故障していない場合は、bondingはリンクに問題がないと判断して使用を継続します.miimonはリンクモニタリングに用いられる.例えば、miimon=80であれば、システムは100 msごとにリンク接続状態を監視し、1つの回線が通じない場合は別の回線に移行する.mode=6は、load balancing(round-robin)が負荷等化方式であり、2つのNICが動作することを示すが、bondingを行う2つのNICは異なるMACアドレスを使用するため、このモードではスイッチを構成する必要はない.
  • 加入/etc/rc.d/rc.local起動項目(オプション)[root@compute ~]# vi/etc/rc.d/rc.local ifenslave bond 0 eth 0 eth 1---このコマンド
  • を最後に追加
  • ネットワークを再起動[root@compute ~]# service network restart
  • bonding状態情報をチェック[root@compute12 ~]# more/proc/net/bonding/bond0 Ethernet Channel Bonding Driver: v3.6.0 (September 26, 2009)

  • Bonding Mode: load balancing (round-robin) MII Status: up MII Polling Interval (ms): 80 Up Delay (ms): 0 Down Delay (ms): 0
    Slave Interface: eth0 MII Status: up Speed: 1000 Mbps Duplex: full Link Failure Count: 0 Permanent HW addr: a8:3a:72:ce:8a:9c Slave queue ID: 0
    Slave Interface: eth1 MII Status: up Speed: 1000 Mbps Duplex: full Link Failure Count: 0 Permanent HW addr: a8:3a:72:ce:7a:9d Slave queue ID: 0
  • 完了後にシステムを再起動し、ping 192.168.1.254テスト注意:
  • すべてのethxx構成時にMACアドレスを削除する.
  • NetworkMangerサービスを完全にオフにする必要があります.そうしないと、bondネットワークと競合します.service NetworkManger stop chkconfig NetworkManger off
  • RHEL 6 Xバージョンの「/etc/modprobe.d/」ファイルの下に「bonding.conf」
  • を手動で新規作成
  • 複数のbongingファイル構成モードが一致しています.たとえば、[root@compute modprobe.d]# cat bonding.conf alias bond0 bonding alias bond1 bonding options bond0 miimon=80 mode=0 options bond1 miimon=80 mode=0

  • 注:上記の「(必要)」は必ず内容が必要で、「(オプション)」は記入してもよいし、記入しなくてもよい