目前我的 unraid 主机上有一个 win10 ltsc 虚拟机,之前一直稳定运行,直到最近使用了 gvt-g 插件,将虚拟显卡给了这台 win10 虚拟机后就出现了问题。
PS:最近从 6.8.2 升级到了 6.10.0,但应该跟这个没有关系。
按照正确步骤实现了 win10 使用核显后,虚拟机内功能一切正常,看视频确实不占用 CPU 了。但一段时间后就会出现以下问题:
1) 系统启动后能正常运行
2) 一段时间后(几小时~几天) win10 虚拟机随机情况(启动、关机、正常运行等)卡死。查看日志,有以下核显虚拟化相关的报错:
Tower kernel: gvt: vgpu 1: fail: shadow page 0000000000000000 guest entry 0xea96b3c270544d33 type 9
Tower kernel: gvt: vgpu 1: fail: spt 00000000dbaf41cb guest entry 0xea96b3c270544d33 type 9
Tower kernel: gvt: vgpu 1: fail: shadow page 00000000dbaf41cb guest entry 0xea96b3c270544d33 type 9.
Tower kernel: gvt: guest page write error, gpa 2f0a33778
3) 此时 webgui 还能正常访问,但一旦访问 vms 标签,webgui 就会立即被冻结(此时 smb、docker 等服务能正常访问)
PS:ssh到系统查看端口占用可以发现,80端口无监听了。
4) SSH 有时能连,有时不能连。
5) 无法正常重启或关机,只能强制断开电源(会导致重新校验阵列)
查看日志并 google 后,大概率是由于 gvt-g 插件虚拟出的核显调用的显存溢出了。在 gvt-g 插件的 github 项目中有人提过类似的 issue,貌似可以通过打补丁修复。
PS:虚拟机挂了可能不是什么太大的问题,但在 unraid 中由于同时会导致 webgui 冻结,这就是一个很大的问题了,会让绝大多数用户很困扰。官方是否应该考虑提供不重启服务器,仅单独重启 webgui 的方法?