求助一個 PVE 虛擬機導致宿主機重啓的問題

261 天前
 MiKing233
事情是這樣, 在 PVE 平臺上建制了一臺 Windows11 qemu 虛擬機實例用作外網到内網的跳板機, 但有時候在使用時遠端連綫會莫名其妙斷開, 然後發現是 PVE 宿主機自己莫名其妙發生了一次重啓, 檢查 PVE 宿主機 syslog 也沒有報錯, 這個問題困擾了我一段時間, 不過頻率並不高只在特定情況下出現, 遂沒有過度追查

昨天通過外網遠端連綫到這臺機器的時候, 在正常使用時又發生了導致宿主機意外重啓的問題, 以下重複一遍我的經歷:

當時我打算下載 Home Assistant 的 x86-64 image, 就在快下載完成時遠端連綫會莫名其妙斷開, 排查發現 PVE 重啓, 確認開機時間是剛剛, 并且所有 VM 實例都已被關閉, 不過如我上面所説的, 檢查了 syslog 日志仍然和以前一樣沒有任何報錯日志, 無奈重新啓動 windows11 實例繼續剛才的事情, 不過發現一個細節, Home Assistant 的 image 并沒有被成功下載, Chrome 顯示崩潰而下載失敗, 所以我重新點擊了一次下載, 結果竟然復現了問題, 遠端桌面連綫再一次斷開, PVE 宿主機再一次發生了重啓

以下是 PVE 宿主機發生重啓時段的 syslog


基於當前得到的信息, 我檢查得到了如下的訊息:
在 Home Assistant 的 image 下載完成之前, Windows Defender 將會先掃描這個檔案, 該檔案為 haos_generic-x86-64-12.1.img.xz, 大小為 372MIB, 解包後的 haos_generic-x86-64-12.1.img 大小爲 6GIB, 猜測 Windows Defender 將會解壓縮掃描包内部, 在下載完之前被掃描時, Windows Defender 吃掉了不少的 CPU 并且有大量的 DISK I/O, 就是在這個期間虛擬機實例挂掉了, 順帶著連宿主機也一起帶走

對於 Syslog 中的日志輸出, 基本判斷不是 Linux 或是 ProxmoxVE 自身軟體方面問題導致重啓的
硬體方面, 對於在特定情況下復現, 應該也不會是 RAM/DISK 的問題
電源方面一開始也有懷疑過會不會是掃描導致功率瞬時衝高導致挂掉, 但是後面我用 AIDA64 烤了一會卻發現一切正常, 猜測應該也不是電源或是溫度過熱的原因

在 Windows 虛擬機實例中進行 CPU 壓力測試




此時的 ProxmoxVE 宿主機資源占用



但又有個很吊詭的事情, 當前我爲這臺 Windows VM 分配了 8 個核心, 當我嘗試分配更少的核心(測試 1/2/4Core)時重複上面的步驟, Windows Defender 就能正常掃描完下載檔案, 虛擬機不會挂掉, PVE 宿主機也不會跟著重啓, 嘗試 8/16Core 時就會復現虛擬機導致宿主機重啓的問題

下面是我復現該問題的過程
https://cdn.mknetwork.net/files/pverebootissue.mp4

可以看到在下載完成 Windows Defender 開始即時掃描后. DISK I/O 上升后虛擬機實例就死掉了, 此時刷新 PVE 的 Web 管理端也不通了, 再次連上可以看到 PVE 宿主機開機時間已經被重置

以上, 這個問題我感覺太奇怪了實在是看不明白, 各位大佬們有沒有看出些頭緒
2139 次点击
所在节点    程序员
32 条回复
MiKing233
261 天前
@gamexg 大概能清楚是哪個方向的問題了, 可以看#6 發的 PVE 論壇那篇帖子, 似乎是 7840HX 芯片組與 Linux 内核或是 qemu 方面的問題, 有很多人提到了 7840HX 在使用虛擬機時導致宿主機重啓并且沒有任何 log 輸出
liubaicai
261 天前
@qW7bo2FbzbC0 有点有趣
smartruid
261 天前
我的 4800H 没有出现这个情况。
tywtyw2002
261 天前
syslog 又没有内核调试信息

开 kernel log ,然后 dmesg 去查。
感觉应该是 kernel panic 了,然后自动重启。
feirisu
261 天前
有没有可能是 CPU 问题,比如之前 N5105 就出现过虚拟化后随机重启的问题。
lhsakudsgdsik
261 天前
很可能是 cpu 模型的问题,千万不要用 host 模式,我就碰到过,我两台宿主机一台 amd 的用 host 模式一点问题没有,一台 intel 11400 的创建虚拟机就非常卡,aida64 测试内存速度也慢的离谱,就很奇怪不是说 intel 兼容性最好吗,11400 也不是老的 cpu 啊,后来统一用 kvm 创建 cpu
flyqie
261 天前
没遇到过,没记错的话 kernel panic 写不了 syslog 吧。

还有楼主是江苏的为什么会用繁体并且写的用词这么奇怪?

历史帖子里也充满了奇奇怪怪的简繁,港台大陆混用。。
ltkun
261 天前
是 amd 不适合虚拟化? op 是小主机吗?小主机一般限制多供电都可能不足
flynaj
260 天前
裸机进 PE 用 aida64 压测一下 CPU ,i7 10700 整机待机功耗 40 瓦,aida64 压测 CPU 功耗高达 400 瓦,电源,或者主板不行可能就出问题了
MiKing233
258 天前
@wniming
@flynaj
@ltkun
基本可以排除是電源的問題, 我嘗試設定 CPU 主頻為 1.5GHz, 電源 20v5a100w, 此時透過排插檢查最大功率不超過 20w, 這種情況下不論瞬時功率能有多高電源都應該是能撐住的, 在這種情況下仍然復現了問題, 不過因爲性能變弱這個過程被往後推遲了很多, 在 Windows Defender 掃描了一會才出現而不是一開始掃描瞬間就挂掉

今天宿主機又發生了一次自動重啓, 只是因爲我點擊啓動了一臺 linux 虛擬機, 點下去的一瞬間機器就挂掉了, 但是這種方式并不能穩定復現,

到目前爲止我仍然把這個問題認定爲是 Linux 内核故障, Linux6.5 對 7x4x 的支援不充分所導致, 我在 proxmox 論壇上看到了很多 7840HS 隨機崩潰的問題, 一些回復指出可能需要 6.7+内核才能修復這個問題


@flyqie
@tywtyw2002
我使用 dmesg -wH 還是看不到崩潰發生時的内核日志, 問下大佬們對於 kernel panic 這種問題具體是用什麽方式來檢查呢


@feirisu
N5105 確實在虛擬化時會出現隨機重啓的問題, 那個更新 CPU microcode 可以修復, 但是對於我這個 CPU 我還沒有看到類似問題的討論


@lhsakudsgdsik
雖然出現了這些問題但還是得繼續改用 host 模型, 因爲我後面又測試了一下 CPU 性能, x86-64-vX 這一類相比於 host 下降了將近一半的性能, 性能損失有點無法接受

以上
tywtyw2002
257 天前
@MiKing233 google 查。
内核 debug 是通过 sysctl 或者 boot flag 开的,没开自然没有 debug 信息

pve kernel debug 大概是个一周到两周的工作,需要搞 kexec 和 kdump 。

这个帖子没给具体的步骤,但是说了什么是 kernel debug
https://forum.proxmox.com/threads/debugging-a-random-server-cold-restart-of-a-pve-node.114579/
MiKing233
257 天前
@tywtyw2002 看了很多同症狀的, 全都是是 AMD 平臺(7840HS/7940HS/7950X), PVE 自己莫名其妙重啓, 完全沒有 log, 一個能貼出 kernel log 的都沒有, 解決方案全部都是不再使用 host 模型, 我自己一個人接著 Debug 下去大概率也沒結果, 沒精力再繼續折騰了...

最當初買 AMD 的 7840HS 就是看它便宜性能不錯還帶 780M, 沒想到跑 Linux 會這樣... 現在要麽維持現狀等 PVE 更新 kernel6.7+, 不然只能換成 intel 平臺了; 最後感謝參與這個帖子爲我提供幫助的各位大佬們🫡

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1030185

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX