2011-10-08

複数の NIC を束ねて使用 (SL6)

NIC の冗長設定

Linux kernel の bonding モジュールを利用することで, 複数の NIC (eth0, eth1, ...) をまとめて使用することができる. これにより, NIC 関連の障害 (ハブの故障やケーブルの切断) に対する耐故障性, 負荷分散を実現できる.

設定方法

ここでは, Scientific Linux 6.1 を例に設定を説明する. CentOS 5.5 でも, 同様に設定することができる. RHEL 5, RHEL 6, CentOS 6 などでも同様に設定できるだろう.
  • /etc/modprobe.d/bond0.conf を作成する. 以下の1行を記述する.
    alias bond0 bonding
    
    オプションはここに書かず, ifcfg-bond0 へ記述する.
  • /etc/sysconfig/network-scripts/ifcfg-bond0 を記述する. 例を以下に示す.
    DEVICE=bond0
    ONBOOT=yes
    BOOTPROTO=none
    IPADDR=192.168.254.137
    NETMASK=255.255.255.0
    NM_CONTROLLED=no
    BONDING_OPTS='miimon=1000 mode=6'
    
  • BONDING_OPTS で設定可能な項目については, /usr/share/doc/kernel-doc-*/Documentation/networking/bonding.txt が参考になる. ここ も参考になる.
  • ifcfg-ethNの設定を行う. (複数の NIC を使用するので, 毎数分のファイルを設定する.) /etc/sysconfig/network-scripts/ifcfg-ethN に以下のような記述を行う. (ethN の部分は eth0, eth1, ... に置き換えること.)
    DEVICE="ethN"
    HWADDR="01:12:34:56:78:9A"
    NM_CONTROLLED=no
    MASTER=bond0
    SLAVE=yes
    
  • 最後に, システムを再起動または, 新しい設定を反映させる.
    # depmod -a
    # /etc/init.d/network restart
    

    送信速度

    複数のNFSサーバへ書き込むときの速度を測定してみた. NIC (1000BASE-T) 2枚, mode=6 の構成で, dd if=/dev/zero bs=8192 ... を同時に実行して書き込むと, 最大で 1.8Gbps となった. (8秒間隔で ifconfig bond0 を実行し, 送信バイトの増分を求めた.)
  • 0 件のコメント:

    コメントを投稿