Ubuntu Server TrustyでLinux KVMを構築して、普段OpenStack環境を作ったりJuju/MAASなんかで色々動かしたりとよくやっているのですが、今日sudo apt updateをやるつもりがうっかりsudo apt upgradeをやってしまってコーヒーを注いで戻ったらアップデートが完了していました。
あ、まずいw
それ以降、なんかそのLinux KVM上で動かしているVMの通信が変...
Linux KVMの上ではMAASを動かしていました。アップデートが終わった後からMAASで管理しているノードにOSをデプロイしようとするとPXEブートに失敗しました。なんどやってもダメ、MAASサーバーを再起動してもダメ、ノードを再起動したり、一回消して再度追加しようとしてもダメです。むしろ追加できなくなりました(Enlistができない状態)。
KVMホストのifconfigを実行すると、次のような結果が出力されました。
物理NICのem1と論理NIC(ブリッジ)のbr0でdropped packetが観測されていました。em1についてはコマンドを実行していくと次第にdropped packetが増えていきます。なんかおかしい状態みたいですね。このスクリーンショットには映っていませんがem2,br1の方も同じようにdropped packetがあって、こちらも次第に増えていくのが確認されました。
VMの中でifconfigを実行するとKVMホストほどではないですが、こちらでもdropped packetが観測されました。KVMホストの問題であるのが濃厚になりました。
この後いろいろ調べて詳細を覚えていないのですが、次のようにKVMホスト上で実行したところ、ピタッと問題が解決し、MAASを使ったPXEブートができるようになりました。アップデート中に何らかの複合的な要因によりカーネルモジュールのリロードがうまく行かなかったとか、なんかそんな原因だったのかな?
Xenialにしてからこういうことは起きていないので、このサーバーもさっさとXenialにアップデートしたいですね。
$ sudo update-initramfs -u
ちなみにsyslogに次のような出力があります。br1もem2もNICは存在しますし設定も行われていてLink Upしていますし、brctl showで次のように出力されるのですが、これについては原因を調査中です。ただこれこそ再起動したら収束しそうな気はします。Kernel 4.4の最新版に切り替えるとかも有効かもしれません。
# less /var/log/syslog ... dhclient: DHCPDISCOVER on br1 to 255.255.255.255 port 67 interval 15 (xid=0x181da846) dhclient: send_packet: No such device or address dhclient: dhclient.c:2041: Failed to send 300 byte long packet over br1 interface. # brctl show bridge name bridge id STP enabled interfaces br0 8000.0025b3e20d52 no em1 vnet0 vnet1 vnet2 vnet3 vnet4 vnet5 br1 8000.0025b3e20d54 yes em2 virbr0 8000.000000000000 yes
エラーで検索した結果出てきたものがこれ。linux-firmwareを最新にして再起動すれば?とか。 もちろん現在最新バージョンがインストールされてます。
ちなみにこのサーバーも「やつ」がいます。
# lspci|grep net 02:00.0 Ethernet controller: Broadcom Corporation NetXtreme II BCM5709 Gigabit Ethernet (rev 20) 02:00.1 Ethernet controller: Broadcom Corporation NetXtreme II BCM5709 Gigabit Ethernet (rev 20) 03:00.0 Ethernet controller: Broadcom Corporation NetXtreme II BCM5709 Gigabit Ethernet (rev 20) 03:00.1 Ethernet controller: Broadcom Corporation NetXtreme II BCM5709 Gigabit Ethernet (rev 20)
[16/11/22 追記]
Ubuntu TrustyにKernel 4.4系の最新版をインストールして再起動したところ、dhclientのエラー出力は無くなりました。