windowsのspiceクライアントで接続するとkvmホストのネットワークが死んだ話

ハイパーバイザーお引越し後のトラブル

先日、おうちの仮想基盤のハイパーバイザーをesxiからkvmに換えてみた。

いろんな考えがあると思うが、家で使う分には基盤上で処理回したり、scp以外でファイル転送したりできる方が家で使う分には便利だなぁという点と、安いカードでRAIDが組める点を評価してKVMを選定した。

vmfsでフォーマットしているディスクのマウント、esxiのvmdkからkvmのqcow2への変換は割とすんなりでき、スムーズに移行は完了した。

SPICEクライアントが思った以上に便利

kvmの仮想マシンのGUIをリモートで触りたい場合、vncで接続するか、spiceで接続するかが選択できる。

spiceだと音声の転送や解像度をウィンドウサイズに自動調整する機能、ローカルのUSBデバイスをリモートの仮想マシンに接続する機能のがあり、Windowsのリモートデスクトップ感覚で使える。

しかも、Linuxからだけでなく、AndoridやWindowsのSPICEクライアント(Virt-Viewer)があるので、いろんな機器からリモート接続が可能になる。

ただ、過日SPICEクライアントに絡んでトラブルが発生した。
同じ事象に当った人がネット上にいなかったので情報共有したい。

WindowsのSPICEクライアントから接続するとホストの通信ができなくなる

そんな便利なSpiceだが、Windowsのspiceクライアントから接続すると、ホスト側のネットワークが切断されて通信できなくなるという事象が発生した。

原因はRealtekのr8169ドライバ問題

結論から先に書くと、犯人は蟹さんのNICだった。

LinuxではRealtekのNICドライバを正しく認識しない問題がよく知られており、今回のマシンはrealtekの8111Hがオンボで搭載されているのだが、本来、このネットワークカードだとr8168ドライバが使われるのが正しいのにr8169が使われていた。

どうしてそうなるかまでは追及していないが、WindowsのSpiceクライアントからの接続を確立しようとした時だけホスト側のネットワークが死ぬ事象が発生していたようで、r8168のドライバが使われるよう設定変更したところ問題が再現しなくなった。

厄介なのが、LinuxやAndroidのクライアントだと正常に接続できて、ネットワークが死ぬ事象も発生しないので、問題発生のトリガーに行きつくまでに時間がかかった。

また、トリガーは判明したもののsshやvncで接続する分には問題なくつながるので、NICのドライバに原因があることになかなか気付かなかった。

ただ、実は初期構築時にネットワークカードのドライバはr8168を使うようにインストールおよび設定をやっていたハズなのだが、kernelのアップデートしたタイミングでr8169を使うようになってしまったらしい。

やはり蟹さんはダメだな!(笑)

NICなら安定のINTEL。

コメント

このブログの人気の投稿

ヤマダ電機の安心会員住所変更をした

JP1の定義をドキュメント化するjp1ajs2.jobdocが超便利

curlでADのドメインユーザーでプロキシを超える