通信系统对稳定性要求非常高,系统可用性要求达99.999%(即每年中断不超过 5 分钟)。因为在测试验证中需要投入大量精力对稳定性进行验证。本文中针对通信系统Linux平台的一例异常重启进行了各方面分析,提供故障判断的手段和操作。
排除外部电源异常
首先要排除设备供电异常,如断电,电流不稳定或欠压导致的系统异常。这可以通过系统是冷重启还是热重启来判断。
Linux 系统中冷重启和热重启主要有以下区别:
- 重启方式:冷重启是通过物理手段切断电源再重新通电,如直接拔掉电源插头、按下机箱上的电源开关关闭后再开启,或通过服务器的 BMC/IPMI 远程指令强制断电再上电。热重启则是在不关闭硬件电源的情况下,通过软件命令触发,如使用
reboot或shutdown -r命令。 - 进程处理:冷重启会强制终止所有进程,不会给进程保存数据的机会。热重启时,操作系统会向所有运行中的进程发送信号,让它们保存当前状态并正常关闭,但如果进程未及时响应或系统强制重启,也可能导致数据丢失。
- 数据保存:冷重启由于直接断电,磁盘缓存中的数据可能未及时写入磁盘,容易导致数据丢失或文件系统损坏。热重启通常会执行磁盘数据同步操作(如 fsync),正常情况下能保证数据写入磁盘,减少数据丢失和文件系统损坏的风险。
- 硬件状态:冷重启会清除所有硬件缓存,包括 CPU 寄存器、内存数据等,硬件需要重新进行自检等初始化过程。热重启时硬件保持通电,无需进行完整的硬件自检,仅会重新初始化部分关键硬件组件,重启速度相对较快。
可以通过以下方法从系统日志识别重启类型:
- 查看系统日志文件:在 CentOS/RHEL 系统中,相关日志通常位于
/var/log/messages,Ubuntu/Debian 系统则在/var/log/syslog。可使用tail命令或文本编辑器查看日志内容,搜索与重启相关的关键词,如 “reboot”“shutdown” 等。 - 分析日志关键词:如果日志中存在 “reboot” 相关记录,且有明确的命令执行信息,如 “reboot: Restarting system”,通常表明是通过软件命令触发的热重启。若日志中出现与电源相关的关键词,如 “power off”“power on”,或有类似 “Kernel panic - not syncing”(内核崩溃)等异常信息,且没有明显的软件重启命令记录,则可能是冷重启,可能是由于电源故障、硬件问题等导致。
- 利用 auditd 日志:对于启用了 auditd 的系统,可使用
ausearch工具查看审计日志。执行ausearch -k system_shutdown -r recent命令可查看最近的关机事件,ausearch -k system_boot -r recent可查看启动事


1443

被折叠的 条评论
为什么被折叠?



