linux bonding 時のnicの偏りを調整する

nicが偏って困ってたらniceなentry見つけた。さすがrx7さん。

linux bonding mode=2 (balance-xor), mode=4 (802.3ad) 利用時にはdefaultでは送信元、宛先mac アドレスのxorの計算で決まる。なので、例えばbondingしているserverの宛先のほとんどがL3 router越しのclientだったりすると、宛先macアドレスはrouterの1つに固定されるのでtrafficが分散されない。

というようなときにxmit_hash_policy をdefaultの0(layer2) から2(layer2+3) に変更すると、madアドレス + ipアドレスで計算されるのでdefaultよりかは適当に分散されてとても幸せになれる。

linux bondingのパラメータをオンラインでの変更

できるものとできないものがあるみたい。

miimonの数値はオンラインのまま変更可能だった。

# echo 100 > /sys/class/net/bond0/bonding/miimon

bondingのmode, xmit_hash_policy 等はinterfaceを停止させないと変更できなかった。

# echo 2 > /sys/class/net/bond0/bonding/mode
# echo 2 > /sys/class/net/bond0/bonding/xmit_hash_policy


恒久的な設定をする場合はifcfg-bond0にBONDING_OPTS で書いておく。