bonding設定手順(CentOS 5.4)
◇bonding設定手順(CentOS 5.4)◇
CentOS 5.4でのbonding設定方法についてまとめます。
Red Hat Enterprise Linux v.5 (RHEL5) でも同じように設定可能かと・・・。
bondingの設定に関する詳細はbonding.txtをご参照ください。
http://archive.linux.or.jp/JF/JFdocs/kernel-docs-2.6/networking/bonding.txt.html
★注意★
bondingの設定方法はCentOS4やRHEL4とは異なります。bonding.txtには新しい設定方法を推奨するという記載のみで古い設定が不可である旨ははっきりと書かれていないような気もしますが(全部を読んだわけではないので、もしかしたらアナウンスされているかも・・・)、古い設定ではいくつかの問題があるので、本記事に記載する新しい設定方法を行う方が良いと思います。
◇bonding設定方法◇
ここではeth0とeth2でbond0を、eth1とeth3でbond1を設定する方法を記載します。
bondingの監視はMII監視とARP監視の2種類がありますが、今回はMII監視で設定を行っています。
なお、IPアドレスはbond0が192.168.19.100、bond1が192.168.235.100です。
(1)/etc/modprobe.confに以下の行を追加します。
(2-1)/etc/sysconfig/network-scripts/ifcfg-eth0を以下のように設定します。
(2-2)/etc/sysconfig/network-scripts/ifcfg-eth1を以下のように設定します。
(2-3)/etc/sysconfig/network-scripts/ifcfg-eth02を以下のように設定します。
(2-4)/etc/sysconfig/network-scripts/ifcfg-eth3を以下のように設定します。
(3-1)/etc/sysconfig/network-scripts/ifcfg-bond0を以下のように設定します。
(3-2)/etc/sysconfig/network-scripts/ifcfg-bond1を以下のように設定します。
◇動作確認◇
以上のコンフィグファイル修正・作成が完了したらサーバを再起動します。(再起動が必要なのは/etc/modprobe.confの反映のためで、/etc/sysconfig/network-scripts/ifcfg-*の反映はサービス/etc/init.d/networkの再起動で可能です。)
(1)ifconfigの確認
ifconfigコマンドでbond0とbond1が追加されていることを確認します。
bondingを構成する物理ポート両方と論理ポートのMACアドレスがすべて同じもの(それぞれeth0とeth1のもの)が設定されていることに注目してください。
(2)/proc/net/bonding/bondxの確認
/proc/net/bonding/bondxを参照することでbondingの状態を確認することができます。
今回の設定はbondingのモードをactice-backup(稼動系-待機系)に設定しています。bond0では正常時にはプライマリポートのeth0がカレントになっていることを確認します。
(3)切り替え評価(稼動系ダウン)
稼動系がダウンしたときに待機系に切り替わることを確認します。bond0ではeth0に対応するケーブルを抜いた後、カレントがeth2に移動していることを確認します。またeth0のステータスがdownに変わっていることも確認します。
ifconfigコマンドからもeth0がダウンしていることを確認することができます。(ステータスがSLAVE)。またbond0とeth2のMACアドレスがeth0のもののままであることに注目してください。MACアドレスが引き継がれています。
(4)切り替え評価(復旧)
復旧時の動作を確認します。先ほど抜線したeth0を挿しなおします。
今回の設定ではプライマリポートをeth0に設定しているので復旧すると自動でフェイルバックします。
ifconfigからもeth0のステータスがRUNNINGに戻っていることを確認します。
◇旧設定の問題点◇
現在2つの問題を確認しています。
・複数のbondingを作成すると2つ目以降のprimary設定が反映されない
・複数のbondingをARP監視で作成すると2つ目以降のarp_ip_targetが1つ目のものと同じになる
(2010年01月08日訂正)⇒上記の問題は複数のbondingに別々の設定を行えない制限によるものです。
別々の設定を行いたい場合、RHEL4, CentOS4では「options bond0 -o bond0 mode=~」のように-oオプションを使うと可能なようですが、RHEL5, CentOS5ではこのオプションは使えません。
以下の例は間違った設定を行った場合の動作確認だと考えてください。
/etc/modprobe.confにoption設定を行います。
/etc/sysconfig/network-scripts/ifcfg-bond0を以下のように設定します。
/etc/sysconfig/network-scripts/ifcfg-bond1を以下のように設定します。
/etc/sysconfig/network-scripts/ifcfg-eth0 ~ ifcfg-eth3はそのままです。
設定変更後はサーバを再起動して変更を反映させます。
/proc/net/bonding/bond0と/proc/net/bonding/bond1を確認するとbond1は以下の問題があることがわかります。
・「Currently Active Slave: None」となっている
・「ARP IP target/s (n.n.n.n form): 192.168.19.1」となっている
他にもいくつか問題があるかも知れませんが、古い設定は推奨されていないだけではなく、動作上も問題があることがわかります。
BONDING_OPTSのパラメータやbondingのモード、監視方法についてはまた別のタイミングで更新します。
CentOS 5.4でのbonding設定方法についてまとめます。
Red Hat Enterprise Linux v.5 (RHEL5) でも同じように設定可能かと・・・。
bondingの設定に関する詳細はbonding.txtをご参照ください。
http://archive.linux.or.jp/JF/JFdocs/kernel-docs-2.6/networking/bonding.txt.html
★注意★
bondingの設定方法はCentOS4やRHEL4とは異なります。bonding.txtには新しい設定方法を推奨するという記載のみで古い設定が不可である旨ははっきりと書かれていないような気もしますが(全部を読んだわけではないので、もしかしたらアナウンスされているかも・・・)、古い設定ではいくつかの問題があるので、本記事に記載する新しい設定方法を行う方が良いと思います。
◇bonding設定方法◇
ここではeth0とeth2でbond0を、eth1とeth3でbond1を設定する方法を記載します。
bondingの監視はMII監視とARP監視の2種類がありますが、今回はMII監視で設定を行っています。
なお、IPアドレスはbond0が192.168.19.100、bond1が192.168.235.100です。
(1)/etc/modprobe.confに以下の行を追加します。
alias bond0 bonding |
(2-1)/etc/sysconfig/network-scripts/ifcfg-eth0を以下のように設定します。
DEVICE=eth0 |
(2-2)/etc/sysconfig/network-scripts/ifcfg-eth1を以下のように設定します。
DEVICE=eth1 |
(2-3)/etc/sysconfig/network-scripts/ifcfg-eth02を以下のように設定します。
DEVICE=eth2 |
(2-4)/etc/sysconfig/network-scripts/ifcfg-eth3を以下のように設定します。
DEVICE=eth3 |
(3-1)/etc/sysconfig/network-scripts/ifcfg-bond0を以下のように設定します。
DEVICE=bond0 |
(3-2)/etc/sysconfig/network-scripts/ifcfg-bond1を以下のように設定します。
DEVICE=bond1 |
◇動作確認◇
以上のコンフィグファイル修正・作成が完了したらサーバを再起動します。(再起動が必要なのは/etc/modprobe.confの反映のためで、/etc/sysconfig/network-scripts/ifcfg-*の反映はサービス/etc/init.d/networkの再起動で可能です。)
(1)ifconfigの確認
ifconfigコマンドでbond0とbond1が追加されていることを確認します。
bondingを構成する物理ポート両方と論理ポートのMACアドレスがすべて同じもの(それぞれeth0とeth1のもの)が設定されていることに注目してください。
# ifconfig |
(2)/proc/net/bonding/bondxの確認
/proc/net/bonding/bondxを参照することでbondingの状態を確認することができます。
今回の設定はbondingのモードをactice-backup(稼動系-待機系)に設定しています。bond0では正常時にはプライマリポートのeth0がカレントになっていることを確認します。
# cat /proc/net/bonding/bond0 |
(3)切り替え評価(稼動系ダウン)
稼動系がダウンしたときに待機系に切り替わることを確認します。bond0ではeth0に対応するケーブルを抜いた後、カレントがeth2に移動していることを確認します。またeth0のステータスがdownに変わっていることも確認します。
# cat /proc/net/bonding/bond0 |
ifconfigコマンドからもeth0がダウンしていることを確認することができます。(ステータスがSLAVE)。またbond0とeth2のMACアドレスがeth0のもののままであることに注目してください。MACアドレスが引き継がれています。
# ifconfig |
(4)切り替え評価(復旧)
復旧時の動作を確認します。先ほど抜線したeth0を挿しなおします。
今回の設定ではプライマリポートをeth0に設定しているので復旧すると自動でフェイルバックします。
# cat /proc/net/bonding/bond0 |
ifconfigからもeth0のステータスがRUNNINGに戻っていることを確認します。
# ifconfig |
◇旧設定の問題点◇
・複数のbondingを作成すると2つ目以降のprimary設定が反映されない
・複数のbondingをARP監視で作成すると2つ目以降のarp_ip_targetが1つ目のものと同じになる
(2010年01月08日訂正)⇒上記の問題は複数のbondingに別々の設定を行えない制限によるものです。
別々の設定を行いたい場合、RHEL4, CentOS4では「options bond0 -o bond0 mode=~」のように-oオプションを使うと可能なようですが、RHEL5, CentOS5ではこのオプションは使えません。
以下の例は間違った設定を行った場合の動作確認だと考えてください。
/etc/modprobe.confにoption設定を行います。
alias bond0 bonding |
/etc/sysconfig/network-scripts/ifcfg-bond0を以下のように設定します。
DEVICE=bond0 |
/etc/sysconfig/network-scripts/ifcfg-bond1を以下のように設定します。
DEVICE=bond1 |
/etc/sysconfig/network-scripts/ifcfg-eth0 ~ ifcfg-eth3はそのままです。
設定変更後はサーバを再起動して変更を反映させます。
/proc/net/bonding/bond0と/proc/net/bonding/bond1を確認するとbond1は以下の問題があることがわかります。
・「Currently Active Slave: None」となっている
・「ARP IP target/s (n.n.n.n form): 192.168.19.1」となっている
# cat /proc/net/bonding/bond0 |
他にもいくつか問題があるかも知れませんが、古い設定は推奨されていないだけではなく、動作上も問題があることがわかります。
BONDING_OPTSのパラメータやbondingのモード、監視方法についてはまた別のタイミングで更新します。