V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
MiKing233
V2EX  ›  程序员

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

  •  
  •   MiKing233 · 23 天前 · 1314 次点击
    事情是這樣, 在 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 宿主機開機時間已經被重置

    以上, 這個問題我感覺太奇怪了實在是看不明白, 各位大佬們有沒有看出些頭緒
    32 条回复    2024-04-11 11:04:06 +08:00
    hi2hi
        1
    hi2hi  
       23 天前
    试试加一个其它的安全软件?例如火绒
    Eiden
        2
    Eiden  
       23 天前
    pve ui 不能设置繁体吗
    zengxs
        3
    zengxs  
       23 天前
    按你的报错信息搜了一下

    看到有个案例是磁盘满了导致这个问题
    https://forum.proxmox.com/threads/error-kvm-cpu0-unhandled-wrmsr-unhandled-rdmsr.5046/
    wniming
        4
    wniming  
       23 天前
    应该跟 pve 无关,我之前也遇到过类似的问题,我当时是启动 windows 虚拟机时分配的核心多会导致物理机重启,猜测是因为 window 虚拟机启动时会执行一些特殊的高功耗的指令,而我又在 bios 里把 cpu 频率固定,导致负载在瞬加增加很多,超过了电源负载瞬态支持的最大值,所以电源断电导致物理机重启。

    建议在 bios 里把 cpu 的睿频关闭,用默频试试,先排除电源供电问题。
    jasonyang9
        5
    jasonyang9  
       23 天前 via Android
    同意楼上的老铁,如果 pve 连写日志的机会都没就重启了看着像是硬件问题
    yyzh
        6
    yyzh  
       23 天前   ❤️ 1
    这里也有讨论 TL;DR:windows 下跑 pve 如果 cpu 模型选 host 会有些奇奇怪怪的问题,选其他的 cpu 模型就行
    https://forum.proxmox.com/threads/win11-vm-opening-many-tabs-at-once-crashes-proxmox-host.140670/
    MiKing233
        7
    MiKing233  
    OP
       23 天前
    @zengxs 不過我確認我的虛擬機實例和 PVE 的 DISK 空閑空間都很多, 應該和這個沒關係, Syslog 上面的那些輸出都不至於讓宿主機重啓
    MiKing233
        8
    MiKing233  
    OP
       23 天前
    @jasonyang9 是的 PVE 連寫 log 的機會都沒有直接就被輸出了--Reboot--, 在這一點基本就可以排除是軟體故障了
    podel
        9
    podel  
       23 天前
    最近我也有遇到最新的 pve 会异常重启的问题。
    qW7bo2FbzbC0
        10
    qW7bo2FbzbC0  
       23 天前
    看了下感觉基本是大陆简体转繁体,不是港澳台那边的口气语法
    MiKing233
        11
    MiKing233  
    OP
       23 天前
    @wniming 不過我長時間烤機都不會造成重啓應該也可以排除供電的問題了吧, 我的電源是 100w, 跑 PVE 沒有使用核顯, 此時 CPU 滿載整機功耗都不到 70w
    MiKing233
        12
    MiKing233  
    OP
       23 天前
    @yyzh 這個確實跟我很相似并且 CPU 型號也一樣, 但這似乎更偏向於是一個軟體故障? 如果是軟體故障爲何 PVE 連 log 都來不及輸出就重啓了
    wniming
        13
    wniming  
       23 天前
    @MiKing233 #11 按我的经验来说不能完全排除,因为我当时固定 cpu 频率就是为了全核心编译大型项目时能更快一些,当时编译程序时所有 cpu 满载并不会导致重启。

    即便你烤机用的是 aida64 的单烤 fpu ,我觉得也不能完全排除供电的问题,更何况你用的电源是 100W 的,这个更让人怀疑是电源问题了,现在主流的电源都是 500w 起步了吧,就算是 flex 电源也很少有 100 瓦的了。
    crazyweeds
        14
    crazyweeds  
       23 天前
    根据楼上的一些回答,建议把 BIOS 恢复默认值再重试。
    wniming
        15
    wniming  
       23 天前
    @MiKing233 #11 烤机时整机功耗没达到电源额定最大输出不代表电源够用,你可以看一下 yt 上翼王的电源相关的评测,电源还有各种稳定性的问题,很多太专业的我也不好转述,你自己搜搜看吧。
    MiKing233
        16
    MiKing233  
    OP
       23 天前
    @wniming 7840HS 是 LAPTOP 平臺的處理器, 而且這臺設備是個迷你主機, 100w 的電源對他來説已經完全夠了, 另外根據#6 所講的, 我嘗試將 CPU 類型設定爲 x86-64-v4 后重複操作發現是正常的沒有問題, 這個問題似乎和設定的 CPU 類型有關, 但是我不明白的是他沒有任何日志輸出, 在那篇帖子中也看到有很多人反應這個問題...
    wniming
        17
    wniming  
       23 天前 via Android
    @MiKing233 #16 “ 我嘗試將 CPU 類型設定爲 x86-64-v4 后重複操作發現是正常的沒有問題”

    也有可能是 cpu 选 host 模式时 Windows 虚拟机会执行特殊指令导致瞬间功耗变得非常高 ,选其他的 cpu 模型虚拟机就没有这些特殊指令。

    也有可能是虚拟化的问题,是虚拟机逃逸影响到了物理机,但这种可能性极低,我从来没见到过,更何给虚拟机分配的 cpu 比较少时就不会出现问题,如果是选择的 cpu 模型问题就不应跟分配的 cpu 数量有关。

    如果想进一步确定原因,可以尝试给物理机 cpu 降频再试试,如果仅仅降频就可以让问题消失,那么基本确定是硬件问题。
    gamexg
        18
    gamexg  
       23 天前
    特定操作挂,第一反应是硬盘有坏道,操作涉及的文件正好在坏道处.
    不过硬盘问题一般是特定操作卡顿,直接重启的倒是少见.
    LanhuaMa
        19
    LanhuaMa  
       23 天前
    @MiKing233 是“平台”不是“平臺”,幾乎沒有看到過這麼用的
    MiKing233
        20
    MiKing233  
    OP
       23 天前
    @LanhuaMa 謝謝不需要您教我怎麽講話
    MiKing233
        21
    MiKing233  
    OP
       23 天前
    @gamexg 大概能清楚是哪個方向的問題了, 可以看#6 發的 PVE 論壇那篇帖子, 似乎是 7840HX 芯片組與 Linux 内核或是 qemu 方面的問題, 有很多人提到了 7840HX 在使用虛擬機時導致宿主機重啓并且沒有任何 log 輸出
    liubaicai
        22
    liubaicai  
       23 天前
    @qW7bo2FbzbC0 有点有趣
    smartruid
        23
    smartruid  
       23 天前
    我的 4800H 没有出现这个情况。
    tywtyw2002
        24
    tywtyw2002  
       23 天前
    syslog 又没有内核调试信息

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

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

    历史帖子里也充满了奇奇怪怪的简繁,港台大陆混用。。
    ltkun
        28
    ltkun  
       23 天前 via Android
    是 amd 不适合虚拟化? op 是小主机吗?小主机一般限制多供电都可能不足
    flynaj
        29
    flynaj  
       22 天前 via Android
    裸机进 PE 用 aida64 压测一下 CPU ,i7 10700 整机待机功耗 40 瓦,aida64 压测 CPU 功耗高达 400 瓦,电源,或者主板不行可能就出问题了
    MiKing233
        30
    MiKing233  
    OP
       19 天前
    @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
        31
    tywtyw2002  
       19 天前 via iPhone
    @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
        32
    MiKing233  
    OP
       19 天前
    @tywtyw2002 看了很多同症狀的, 全都是是 AMD 平臺(7840HS/7940HS/7950X), PVE 自己莫名其妙重啓, 完全沒有 log, 一個能貼出 kernel log 的都沒有, 解決方案全部都是不再使用 host 模型, 我自己一個人接著 Debug 下去大概率也沒結果, 沒精力再繼續折騰了...

    最當初買 AMD 的 7840HS 就是看它便宜性能不錯還帶 780M, 沒想到跑 Linux 會這樣... 現在要麽維持現狀等 PVE 更新 kernel6.7+, 不然只能換成 intel 平臺了; 最後感謝參與這個帖子爲我提供幫助的各位大佬們🫡
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5284 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 355ms · UTC 08:23 · PVG 16:23 · LAX 01:23 · JFK 04:23
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.