- 2024 家庭网络设备大升级 硬件篇
- 2024 家庭网络设备大升级 网络篇
- Zerotier: No route to host
- 给 QNAP 文件分享外链套个壳
- OpenWRT 上的 zerotier 突然无法启动了
- N100 小主机遭遇 NVMe 硬盘故障:一次系统的诊断与反思
我的 N100 小主机最近陷入了无响应的困境,一次系统级的卡顿,让我不得不深入诊断底层硬件问题。最终,故障源头被锁定在一块出现问题的 NVMe 硬盘上。
故障的发生与初步判断
故障最初表现为:系统在日常运行中,当需要读取某些特定数据时,NVMe 硬盘会陷入无响应状态。这直接导致相关进程卡滞在 D 状态(不可中断睡眠状态)。当这类进程累积过多时,整个操作系统陷入僵局,无法响应任何其他请求。
首次尝试解决,我选择了重启。然而,系统通常能坚持不到十分钟,便会在 CPU 占用率不高的正常负载情况下再次卡死。这表明问题并非偶发,而是存在深层原因。
精准定位故障源头
为了区分软件与硬件故障,我启动了 SystemRescue Live CD。在 Live CD 环境下,我开始使用 smartctl 工具检查硬盘的健康状况。令人惊讶的是,仅仅执行 smartctl -x /path/to/disk 这样的详细健康状况检查命令,就能稳定复现系统卡死的故障。
这一现象直接排除了操作系统层面的复杂问题,将故障的矛头清晰地指向了 NVMe 硬盘本身。
为了进一步验证,我将这块故障硬盘从 N100 小主机上取下,安装到另一台笔记本电脑上进行测试。结果,同样的卡死问题依然能够重现。这最终确认了硬盘是故障的根本原因,而非 N100 主机的 PCIe 接口或其他主机侧问题。
数据与保修:选择与取舍
这块 NVMe 硬盘尚未过保,这意味着我可以直接申请售后换新。然而,更换新硬盘的代价是硬盘上的所有数据。这块硬盘主要保存着我部署在 Docker 上的应用数据以及一些从网络下载的影片。
幸运的是,Docker 应用的关键数据每天都通过 restic 进行备份。因此,更换新硬盘对我来说,影响微乎其微,核心应用数据和配置都得以安全保存。至于影片文件,虽然会丢失,但并非不可恢复。
突发状况的应急预案
这次故障也促使我思考关键服务的紧急应对措施。我的 N100 宿主机上运行着一个软路由虚拟机,这意味着一旦宿主机故障,全屋的网络将随之瘫痪。
发生故障时,我的临时解决方案是:使用一根网线连接器,将 N100 主机上原本连接 LAN 与 WAN 的网线直连起来,并让家中的光猫直接充当网关。这样可以在最短时间内恢复主要的网络连接,保障家庭网络的正常运行。这为后续的故障排查与修复争取了宝贵的时间。
重要的经验教训
尽管 Docker 应用数据有定期备份,但这次经历也暴露了一个疏漏:我却忽略了软路由虚拟机磁盘映象(VM Disk Image)的备份。软路由的配置和运行状态都包含在这个映象文件中,一旦丢失,重建起来会相当耗时。
好在这次运气眷顾,通过 Live CD 成功抢救回了这份重要的虚拟机映象文件,避免了额外的麻烦。
发表回复