这个站运行了半年多了,也是第一次发生中断,而且一上来就搞了我两天。
1.19日13时开始,开始对手上Debian11的机器完成迁移到Debian12,升级过程参考了Debian 12 (bookworm), 64-bit PC 的发行说明。首先在本地使用了虚拟机进行测试并优先升级了优先度低的机器。
1.19日14时,开始对下载站和博客所在服务器进行升级。由于其他升级过于顺利,而且所以我并未对内容进行备份。下载站顺利升级完毕,并恢复运行,而博客则无法启动数据库。systemctl显示状态为code=dumped,signal=ILL,手动运行数据库显示Illegal instruction。首先怀疑的是软件源提供了错误的架构安装包(虽然这几乎是不可能发生的),由于数据库已经不可运行,无法对数据库进行导出,只能归档整个数据库文件夹,并同时对博客程序进行归档。更换软件源安装后无果。
1.19日15时,尝试编译安装降级数据库版本,同时在本地环境尝试恢复博客的运行来导出备份。导出的归档成功在我的本地数据库上运行,排除数据库版本问题,放弃对数据库的降级。怀疑升级破坏了云厂商的镜像,于是使用控制台的镜像切换重新安装了Debian12,问题依旧。
1.19日16时,经群友提醒,MariaDB的目标架构可能为x86_64 v3,而这台云服务器可能并不支持相关指令集,于是降级回Debian11并重新部署环境。经检查,升级到Debian12的cpu,flag如下:
而运行Debian11的cpu,flag如下:
1.19日17时,博客基本恢复运行。
1.19日18时,调查发现,无论什么方式安装的Debian12,都会缺少大量指令集。
1.19日19时,向华为云发工单描述问题,得到的答复是尝试安装其他镜像或者重新购买一台尝试,他们新开的一台机器是没有问题的。而想要联系技术人员的话需要等明早上班。
1.20日12时,我将下载站移动到了其他服务器并再次工单联系,他们登录我的服务器后首先回答了一个这边测试是有的(?),然后又承认确实没有,希望我保留一台服务器供他们测试。
1.20日14时,答复给我初步的调查结果是,如果使用Debian11创建实例,则后续切换到Debian12就会出现这个问题。
1.21日10时,答复给我了问题的调查结果,结果如下:
我发布中断公告后同意了迁移。
1.21日11时,电话联系我,当前迁移检查因跨pod 可用区不支持迁移,您的虚拟机还是正常运行状态,您先正常使用,我们这边在看下迁移的问题,后续有进展了第一时间给您反馈,谢谢。
1.21日14时,再次电话联系我,旧节点主机不支持转出操作,如果确有需要可以购买一台新主机迁移时长。我选择放弃迁移,并关闭工单。
整件事件中,1.19日13-17时中断,1.21日10时中断,总计中断时间约5小时。
虽然这次中断并不能算全是我的责任,但是我还是有责任的。对服务进行更改、升级、操作前,一定要先准备好可以快速回复的备份。在复盘过程中发现华为云是有快照功能的,但并不是在服务器中,而是在云硬盘控制台,导致我一直认为是没有快照功能的。在出现问题时应该优先回滚恢复服务而不是直接当场调查问题原因。