2015年8月13日木曜日

KVMのNIC設定に起因する障害対応

#久しぶりの更新です。最近バタバタしてました。
#Lineスタンプの製作も別途実施中です。

■目的
 とあるセキュリティアプライアンスのVNFソリューションを導入検証していたところ
一部の通信において通信出来たり出来なかったりの障害が発生していた。
以下切り分け結果を備忘録的に記載する

■前提
 HV:KVM
 ホストOS:CentOS7.0
 OpenStack:juno
 上記プライベートクラウド上で製品版のVNFソリューションを乗せ通信フローを経由させる

■不具合事象
 VNFソリューションを経由させる通信において、遅くなる。
HTTP通信であればリクエストタイムアウト、または数分後に画面表示される。
キャプチャによる切り分けでパケットの再送が見られた。

■原因と対策
・rx-checksumming: on
・tx-checksumming: on
・tcp segmentation offload: on
をoffにすることで解決

NICに処理をオフロードする機能のようだが、offにしても特に問題はなかった。
google先生で検索すると似たような事象の記事が見受けられた。
特に以下のサイトを参考させて頂きました。
http://blog.livedoor.jp/donuts_/archives/241014.html

以下のコマンドを実行することで対象のNICでオフロード機能を無効にした。
# ethtool -K eth0 rx off tx off tso off

■後日追記
恒久対策としてrc.localにも記載するのを忘れないようにする
http://extstrg.asabiya.net/pukiwiki/index.php?TSO(TCP%20Segmentation%20Offload)%A4%CE%CC%B5%B8%FA%B2%BD

■終わり
有効な場合、高負荷時にパケロスすることがあるということだが逆に無効にした場合に速度劣化等はしないのかが気になった。
SR-IOVとかを利用する場合にも似たような設定が必要になるのか頭の片隅に残しておこう。

私の体験が誰かの生産性向上に役立っていただけることを祈って