対象
ソフトウェア
Proxmox Virtual Environment 7.2-7
ハードウェア
Intel NICでe1000用のドライバを使うもの。
今回はIntel NUC 5i5RYKというモデル
NICはIntel® Ethernet Connection I218-V
となってた。
現象
Proxmox上のVMでsambaを動かして、1Gbpsフルに使い切るようなファイル転送をしたところハングアップして応答しなくなった。
VMだけでなくProxmox本体の応答もなくなった。
モニタもキーボードも接続しないヘッドレス状態だったため対処できなくなった。
対処
Proxmoxの再起動
モニタとキーボードを接続し、コンソールからログインして再起動した。
本来はエラーメッセージなどがあった場合は記録しておきましょう。
スマホで撮影するとかでもいいと思うので。
何が起きたか調べるヒントになる。
今回は予測ついてたし焦ってたのもあって、何もなし。
仮対処
再起動後にProxmoxが使えるようになったら、Proxmoxからホストのコンソールを開く。
今回はe1000に関する問題だとわかってるので、dmesgでネットワークデバイス名を調べた。
pve0は作業したコンピュータのホスト名。
root@pve0:~# dmesg|grep e1000
[ 1.632344] e1000e: Intel(R) PRO/1000 Network Driver
[ 1.632347] e1000e: Copyright(c) 1999 - 2015 Intel Corporation.
[ 1.632628] e1000e 0000:00:19.0: Interrupt Throttling Rate (ints/sec) set to dynamic conservative mode
[ 1.709325] e1000e 0000:00:19.0 0000:00:19.0 (uninitialized): registered PHC clock
[ 1.777825] e1000e 0000:00:19.0 eth0: (PCI Express:2.5GT/s:Width x1) b8:ae:ed:7b:82:df
[ 1.777830] e1000e 0000:00:19.0 eth0: Intel(R) PRO/1000 Network Connection
[ 1.777859] e1000e 0000:00:19.0 eth0: MAC: 11, PHY: 12, PBA No: FFFFFF-0FF
[ 1.785755] e1000e 0000:00:19.0 enp0s25: renamed from eth0
[ 98.102321] e1000e 0000:00:19.0 enp0s25: NIC Link is Up 1000 Mbps Full Duplex, Flow Control: Rx/Tx
root@pve0:~#
起動時はeth0だったのが、enp0s25とリネームされている。
ethtoolを使って、e1000ドライバのtsoをoffにする。
root@pve0:~# ethtool -K enp0s25 tso off
root@pve0:~#
本当は実行前に確認が必要。
tsoがoffでハングしてたなら別の原因がある
設定できてるかを確認。
root@pve0:~# ethtool -k enp0s25 | grep tcp-segmentation-offload
tcp-segmentation-offload: off
root@pve0:~#
この設定は、次の再起動まで有効。
再起動後はデフォルト(=tso on
)に戻る
対処の永続化
vi /etc/network/interfaces
でファイルを編集
上記のサイトを参考に、物理I/Fのところにoffload-* off
を追記。
再起動で反映
offload-gso off
offload-gro off
offload-tso off
offload-rx off
offload-tx off
offload-rxvlan off
offload-txvlan off
offload-sg off
proxmoxはDebian Linuxをベースとしているため、設定ファイルも同じ場所にある様子
参考にしたページ
- Nutanix CEでIntel製NIC(e1000e)が繰り返しハングする場合の対処方法│smzklab
- NICのオフロード設定の変更方法(Linux) | アカスブログ
- e1000e 0000:00:1f.6 eno1: Detected Hardware Unit Hang: | 自鯖