标签归档:PVE

N5105,ALL IN ONE 主机,PVE下VM卡死,故障处理,方式方法,记录 2023-05-04

一、需求描述

如前两篇博客记录的,我购买了一个N5105主机,配置了PVE虚拟化,安装了一些VM虚拟机,主要为Debian 11系统的VM,运行了几天,发现了一个很严重的问题。

那就是,VM虚拟机,会出现卡死的现象,具体表现为,在整体资源使用率不高的情况下,虚拟机VM,无法SSH连接登录,此时从PVE后台VM的Console页面观察,login:后面的光标不再跳动,部分时候,Console页面,出现cpu类型的错误提示页面

二、问题分析

这样就很尴尬了,这个不知道是设备散热问题,还是设备的CPU通道的性能问题,对于自己而言,这个稳定性,就有很大的问题了,低功耗设备不堪大用呀,下次一定买桌面级CPU的设备玩,不玩低功耗的了。

后续查了一下谷歌,好像,这个是一个N5105的普遍现象,属于已知的Bug存在,网络的处理办法,就是更新Microcode,PVE的Linux核,这个好像即便更新了,也作用不大。也有说,必须换成Windows平台做虚拟底层才行。

我这里已经部署了PVE,也不想大折腾了,下次换桌面CPU的设备就是了,就这样吧,这个小破玩具。

这个现象,不知道有没有朋友遇到过类似的故障场景,有更好处理办法的,有的话,务必留言告诉我。

三、处理办法(我自己的处理方式,临时)

临时处理方式也简单,对于,跑在这台N5105设备上的VM,我对其要求只要10分钟内,能自愈恢复即可,那即便它VM卡死,只要一旦发现其出现卡死的情况,需要对其进行强制关机,开机一下即可。

每个VM卡死,人工点击 虚机的硬关机、启动,终究是不行的,我这里使用Python设置定时轮询检测任务,配置定时的检测,逻辑为一旦出现3次无法登录该VM(每次间隔几十秒),即进行VM强制重启的操作。

三、执行处理,含代码部分 * 开源

https://github.com/fdmove/PublicCodex/blob/main/vm_status_command_monitor.py

为了简化操作,我这里,使用了SSH的私钥登录Debian 11虚机,这样,代码就简化了,不必使用SSH用户名/密码的方式。

需要使用字典,静态化定义VM的 IP、SSH端口、SSH超时时间秒数、PVE内的VMID几个参数

检测的时间间隔,为20秒

检测逻辑为,私钥SSH登录VM,执行 echo OK命令,能返回OK字符串,即可认为虚机VM是正常的,其他或异常就认为VM卡死了

代码没什么的,非常简单,配置一个轮循的定时任务即可,我配置的是8分钟执行一次VM状态的检测工作。

配置在PVE宿主机内的cron任务如下:

#  SSH ECHO 方式
*/8 * * * * /usr/bin/python3 /root/sh/vm_status_command_monitor.py  > /root/sh/Log_vm_status_command_monitor.log

这样,配置下来,发现也就没什么了,基本,即便VM卡死,在上面的代码帮助下,VM也能10分钟~20分钟内恢复,也算是一个不错的临时的解决办法。

四、后续1官方社区,给到的处理办法(推荐)

更新于 2023-05-05

根据proxmox社区的话题讨论,对于N5105虚拟化,可选升级到5.19内核,会稳定一点

https://forum.proxmox.com/threads/opt-in-linux-5-19-kernel-for-proxmox-ve-7-x-available.115090/

升级操作

apt update
apt install pve-kernel-5.19
reboot

也就死马当作活马医,升级内核试试看了,升级后的版本如下(更新时间 2023-05-05),升级后,把我的监控脚本,暂时停掉或者设置一个长间隔时间运行,观察看看。

root@pve:~# uname -a
Linux pve 5.19.17-2-pve #1 SMP PREEMPT_DYNAMIC PVE 5.19.17-2 (Sat, 28 Jan 2023 16:40:25  x86_64 GNU/Linux
root@pve:~# 

升级后,第四天了,VM虚机基本非常平稳的运行着,只有1台VM有点问题。相比之前,已经稳定非常多了。

附录1、

博客内,所有教程为手打原创教程,如果技术教程对您有所帮助,欢迎打赏作者

对于博客内已提及的专业知识,如果需要技术指导,欢迎联系我,仅需支付工时费

Twitter: Dasmz

Youtube: @DasmzStudio

Donate
云乞讨

Proxmox Virtual Environment 配置双ISP上联的网络 2023-1-3

段落1、需求描述

在Proxmox Virtual Environment(以下简称PVE)环境中,除了当前管理网络,增加了一个网卡,接入另一个网络,以后,各个业务系统,可根据需求,选择默认的路由为某一个ISP运营商。

物理接网线:

整个PVE为单台台式机/工作站的独立环境,未配置PVE集群,故而,场景,还简单一点。

PVE 以太网卡1 — 网线 — 电信IP的路由器1(主管理PVE,管理地址)

PVE 以太网卡2 — 网线 — 联通IP的路由器2

假设,其中一个虚拟机VM,安装有Ubuntu 20.04 LTS,需要使用电信网络作为管理网络,使用联通网络为业务网络。

依据黑色加粗的需求,对PVE作出配置,登录PVE的WEB地址,进入数据中心内宿主机的网络选项

一般,初始时候,只有默认网络的桥接,这里我们需要对另一个桥接进行添加

创建 / Linux Bridge / 桥接端口 enp3s1 / 备注联通

完成添加的样子,PVE内,具备vmbr0(桥接电信网络),vmbr1(桥接联通网络)双ISP网络的能力了。

然后,就是对对应的虚拟机VM,增加网络设备

网络设备net1 ,桥接vmbr0,电信,限速5MB/s,管理网络

网络设备net0,桥接vmbr1,联通,限速30MB/s,业务网络

Linux系统内,按照我们需要的这个场景,还需要自定义一下路由表,让默认路由到 net0 联通网络,通过开机启动指定路由即可。

root@server:/etc/network/if-up.d# cat route.sh 
#!/bin/sh
# START
/sbin/ip  route del default via 电信网关IP地址 dev ens19  
/sbin/ip  route add default via 联通网关IP地址 dev ens18  
# END
root@server:/etc/network/if-up.d# 

# 其中,两个网关IP地址,需要自定义,按实际的来,网络在主机内部对应的名称,可能是ens18,ens19,ens3,ens5,eth0,eth1,根据实际来。

这样配置的好处是,即便是业务流量,在某个方向跑满带宽出现拥堵的场景,管理方向,永远可以保持一个空闲的可用状态。