事发
在一个宁静的傍晚。突然!邮箱中收到了UptimeRobot发来的上海节点down的通知(2024-01-30 18:44:59)
接着客户发来连不到服务器的信息。我想:MMP,Frank的PVE节点又崩了?于是我速速询问。
症状
断电导致UPS耗尽后母机断电停机。再次开机后主板蜂鸣器响,开机屏幕显示Job networking.service/start running (*s / no limit)
。似乎不单单是断电导致的。(2024-01-30 19:07:00)
官方解决方案
在PVE论坛搜寻很长时间后,我发现这是一个由我引起的BUG。(2024-01-30 20:26:00)
在几天前我为了能够让PVE自动同步系统时间,而安装了ntpdate。这恰恰与PVE中的ifupdown2 包之间发生了交互。只能说,PVE还是不要瞎装软件比较好,wssb。
重现步骤:
* 在 PVE 7 或 PVE 8 上:`apt install ntpsec ntpsec-ntpdate`
* 重新启动:主机在启动时无限期挂起。
如果在没有`quiet`的情况下启动,最后显示的消息是“Jobnetworking.service/start running (.../no limit)”(随着时间增加)
一些可能的解决方法:
* 为了快速修复,可以将主机引导到恢复模式,并且可以通过 `chmod -x /etc/network/if-up.d/ntpsec- 禁用 ntpsec-ntpdate 挂钩(见下文)。 ntpdate`。重新启动后,主机应再次启动。
* 首选修复:通过 `apt install chrony` 安装 chrony,这会卸载 ntpsec。
* 另一种选择是保留 ntpsec 但保留 `apt purge ntpsec-ntpdate`,如其包描述 [5] 所示:
> 如果安装了“ntpsec”包中的完整 NTP 守护程序,则不需要 ntpsec-ntpdate。
挂起的根本原因是 ntpsec、ntpsec-ntpdate 和 PVE ifupdown2 包之间的不幸交互。发生挂起是因为 ntpsec-ntpdate 安装了一个钩子 /etc/network/if-up.d/ntpsec-ntpdate
处理
得知是ntpdate导致的,现在想办法把原PVE系统中的对应软件删除掉!可是,系统已经启动不起来了。
一开始Frank尝试了rescue-mode,可以通过使用PVE安装镜像启动救援模式,但是屑Frank的PVE文件系统不是默认的,他改成了zfs!rescue-mode无法进入!报错:不支持的压缩算法(2024-01-30 20:13:00)
官方的recovery-mode不知道为什么屑Frank的PVE里居然没有,正常应该是这样的:


如果进入recovery-mode的话是可以直接输入命令的,可惜现在显然不能这样做。
那怎么办。。。只能用另一个Linux来挂载屑Frank弄的zfs文件系统,难蚌。
Frank开始尝试使用ArchISO进行挂载,结果挂载不上。ArchISO装不了zfs-utils(2024-01-30 20:45:00)
无奈,只能做一个Ubuntu虚拟磁盘文件用Ventoy启动。然后Frank找了个垃圾USB2.0的64G U盘,放弃了,读写是真的慢(2024-01-30 21:50:00)
最后又把之前装ArchISO的U盘覆盖安装Ventoy,最终进入了Ubuntu。(2024-01-30 23:33:33)
挂载PVE系统盘成功(2024-01-31 00:10:00)
使用chroot命令,“在PVE系统里执行命令”(2024-01-31 00:13:00)
sudo apt remove ntpsec-ntpdate ntpsec-ntpdig
成功卸载这两个软件(2024-01-31 00:16:00)
准备直接启动PVE系统盘,但是又有一个问题了。zfs在检测到这个池被别的系统挂载过之后,会报错,需要加-f参数强制挂载。
解决方法:https://forum.proxmox.com/threads/unable-to-reimport-zfs-pool-to-pve.108852/
最终成功启动PVE,节点恢复(2024-01-31 00:28:55)
事故持续时间:5 hours and 43 minutes
暂无评论内容