BondingによるNIC冗長化(目次)


Table of Contents

はじめに

bondingを利用して、アクティブ/バックアップのNIC冗長化を行います。

インストール環境

  • OS
    • CentOS 5.5 (kernel 2.6.18-194.3.1.el5 x86_64)

bondingモジュールのロード

  • modules.confでbondingモジュールの設定を行ないます。
    # vi /etc/modprobe.conf
    
    alias bond0 bonding

ボンディングインターフェース(bond0)の作成

  • インターフェースbond0を作成します。
    # vi /etc/sysconfig/network-scripts/ifcfg-bond0
    
    DEVICE=bond0
    BOOTPROTO=static
    ONBOOT=yes
    NETMASK=255.255.255.0
    IPADDR=192.168.11.100
    TYPE=Ethernet
    BONDING_OPTS="mode=1 primary=eth0 miimon=100 updelay=5000"

    ※BONDING_OPTSについて
    オプション説明
    modebondigの動作モードを指定します。詳細は以下を参照
    primaryアクティブにするインターフェースを指定します。
    miimonMII監視間隔を1/1000秒単位で指定します。
    updelayリンクアップを検知後、該当NICに切り替えるまでの時間を1/1000秒単位で指定します。対向のスイッチとの通信を確立させるタイミングを調整するために利用します。

    ※bondingの動作モードは以下の通りです。
    モードによっては対向のNW機器で設定が必要になります。
    (引用元:http://www.jp.redhat.com/magazine/jp/200904/rhel.html

    mode0:balance-rr
     負荷分散と耐障害性を提供します。
     負荷分散方式はラウンドロビンです。
     モードを指定しなかった場合にはこのモードが利用されます。
     trunkに対応したネットワークスイッチが必要です。

    mode1:active-backup
     耐障害性を提供します。
     1つのNICのみが通信を行い、障害が発生した場合は、他のNICに切り替わります。
     特別なネットワーク機器は特に必要ありません。
     非常に良く利用されるモードです。

    mode2:balance-xor
     負荷分散と耐障害性を提供します。
     分散方式は送信先/送信元MACアドレスのxorが使われます。
     オプションでMACアドレスをキーとしたハッシュを利用することも可能です。
     trunkに対応したネットワークスイッチが必要です。

    mode3:broadcast
     特殊な環境を除き、ほとんど利用されることはありません。
     束ねたNIC全てからパケットが送信されます。

    mode4:802.3ad
     IEEE 802.3ad Dynamic link aggregation規格で接続します。
     IEEE 802.3adに対応したネットワークスイッチが必要です。

    mode5:balance-tlb
     負荷分散と耐障害性を提供します。
     NICの速度及び負荷に応じて負荷分散を行います。
     特別なネットワーク機器は特に必要ありません。

    mode6:balance-alb
     負荷分散と耐障害性を提供します。
     NICの速度及び負荷に応じて負荷分散を行います。
     特別なネットワーク機器は特に必要ありません。

スレーブインターフェースの設定

ボンディングを構成するインターフェースをスレーブインターフェースと言いますが、その設定を行ないます。

  • 設定の前にバックアップを取ります。
    # cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth0.bak
    # cp /etc/sysconfig/network-scripts/ifcfg-eth1 /etc/sysconfig/network-scripts/ifcfg-eth1.bak


  • eth0にスレーブインターフェースの設定を行ないます。
    # vi /etc/sysconfig/network-scripts/ifcfg-eth0
    
    DEVICE=eth0
    BOOTPROTO=none
    ONBOOT=yes
    TYPE=Ethernet
    MASTER=bond0
    SLAVE=yes

  • eth1も同様にスレーブインターフェースの設定を行ないます。
    # vi /etc/sysconfig/network-scripts/ifcfg-eth1
    
    DEVICE=eth1
    BOOTPROTO=none
    ONBOOT=yes
    TYPE=Ethernet
    MASTER=bond0
    SLAVE=yes

  • ネットワークサービスを再起動して設定変更を有効にします。
    # /etc/init.d/network restart

動作確認

  • インターフェースの起動確認をします。
    # ifconfig -a
    
    bond0     Link encap:Ethernet  HWaddr 00:0C:29:58:27:89
              inet addr:192.168.11.100  Bcast:192.168.11.255  Mask:255.255.255.0
              inet6 addr: fe80::20c:29ff:fe58:2789/64 Scope:Link
              UP BROADCAST RUNNING MASTER MULTICAST  MTU:1500  Metric:1
              RX packets:378 errors:0 dropped:0 overruns:0 frame:0
              TX packets:124 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:0
              RX bytes:30026 (29.3 KiB)  TX bytes:13573 (13.2 KiB)
    
    eth0      Link encap:Ethernet  HWaddr 00:0C:29:58:27:89
              UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1
              RX packets:254 errors:0 dropped:0 overruns:0 frame:0
              TX packets:68 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000
              RX bytes:21643 (21.1 KiB)  TX bytes:7049 (6.8 KiB)
              Interrupt:177 Base address:0x1400
    
    eth1      Link encap:Ethernet  HWaddr 00:0C:29:58:27:89
              UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1
              RX packets:129 errors:0 dropped:0 overruns:0 frame:0
              TX packets:69 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000
              RX bytes:8683 (8.4 KiB)  TX bytes:8526 (8.3 KiB)
              Interrupt:185 Base address:0x1480


  • LANケーブルを抜いて、ボンディングの動作確認をして下さい。

参考

このエントリーをはてなブックマークに追加
Last-modified: 2010-09-12 (日) 13:09:16   最終更新のRSS