请注意,本文编写于 678 天前,最后修改于 652 天前,其中某些信息可能已经过时。
本文地址:blog.lucien.ink/archives/536
0. 前言
懒得看过程可直接移步第 2 部分
之前入手了 N5105 + i225-V,收到后装了 PVE 7.2 作为底层系统,虚拟化 iKuai + OpenWRT 来做软路由。
随着 iKuai 系统的升级,逐渐发现一些问题,比如断流、频繁重启等。OpenWRT 也时不时会毫无征兆的宕机,只是不频繁。
上网搜索了很多资料,很多都是基于经验的尝试,比如说换用 32 位的 iKuai,关掉 ASPM 、ROM-Bar、NUMA,更改 MTU 等等。也有的说换用 ESXi 之后就不重启了等等。在这里就不一一列举了。
下面提供两种解决方案,一种是治标,另一种是治本。
1. 更换旧版本的 iKuai
最开始我的策略是换用低版本的 iKuai,经过实测,3.4.9 版本是很稳定的,可以前往 iKuai 历史版本下载 进行下载。
但这样的问题是,新的一些特性都没有办法享受,比如静态 DHCP 指定网关、DNS。
再加上,即便 iKuai 不崩了,OpenWRT 也还处于摇摇欲坠的状态,于是我便开始尝试治本。
2. 打补丁
我注意到当连接数增多,譬如进行 PT 下载时,iKuai 崩溃、重启的概率会大大增加,加之我在 iKuai 的更新日志里看到了关于内核的升级,于是大胆猜测本质上应该是更底层的原因,与设置无关。
费尽九牛二虎之力,终于是搜到了一位大佬的文章:PVE详细安装op、ikuai教程,含修改国内源、直通、更新内核,里面讲了很多内容,也包含了关于虚拟机重启的解决方案,在这里作个提炼。
- 更新内核、安装微代码更新套件
apt update
apt install pve-kernel-6.1 iucode-tool
- 重启
- 安装微代码补丁
wget http://http.us.debian.org/debian/pool/non-free/i/intel-microcode/intel-microcode_3.20221108.1_amd64.deb
dpkg -i intel-microcode/intel-microcode_3.20221108.1_amd64.deb
update-initramfs -u -k all
- 再次重启
执行完上述 4 个步骤,经历 2 次重启之后,补丁就算是打完了。经过实测,连接数到达 3200 时 iKuai 3.6.13 也能稳定运行,OpenWRT 也暂时没有出现重启的情况。
6 条评论
CPU 补丁直接用 apt install -y intel-microcode 安装就可以,重启生效
感谢提醒。
因为写文章时,apt install 出来的是旧版本的微补丁,不能解决问题,指定版本的话提示找不到,所以当时采用了直接下载的方式。
wget http://http.us.debian.org/debian/pool/non-free/i/intel-microcode/intel-microcode_3.20221108.1_amd64.deb 这个地址404了
我也不知道为啥这个 package 下的文件变得很频繁,具体的地址:http://http.us.debian.org/debian/pool/non-free/i/intel-microcode/,现在是 http://http.us.debian.org/debian/pool/non-free/i/intel-microcode/intel-microcode_3.20220510.1~deb11u1_amd64.deb
dkpg → dpkg
已更改,感谢指正!Orz