一、 系统环境

redhat 6.4系统为底层承载,搭载在联想X3850物理服务器之上数据库数据盘挂载在后端FC存储上。

二、 故障现象

某日运维人员远程登陆该服务器时提示无法登录(登录拒绝)第一反应为密码被人修改,后确认无人修改此密码时,接入显示器到服务器也无法登录。此时该服务器的所有的的系统功能都正常运行着,前端应用都没有报错现象。

次日通过登录报错现象,结合多种案例初步判断为认证模块配置错误或者引用认证配置文件错误造成的,经讨论决定在适合的时间内对服务器系统进行重启并修改参数的同时为防止系统重启带来的安全隐患,开始搭建了备用的服务器环境并对数据库进行备份及还原操作,经过测试备用服务器环境可以使用。

在备用环境准备完毕前提下,夜里决定对该数据库服务器进行重启维护,我们对主机进行了重启,结果重启后系统卡在如下的界面中

                         Linux操作系统运维故障实录_linux系统

通过查询案例发现此报错是缺少bash造成的,通过ISO引导进入救援模式后对bash文件进行了重新链接,之后重启服务器后此报错消失但服务器系统还是未能正常引导(此时无人知道之前系统做过何种更改),通过各种尝试最后系统还是未能正常运行。由于时间的原因最后启用了备用环境各种测试均通过结束了该天的工作。

三、原因调查

通过ISO 进入救援模式下把原服务上的日志与历史命令导出进行分析后发现存在下面的几个问题:

Redhat 的yum 源文件被修改成CentOS-7.repo

通过该yum源安装了 lrzsz

Linux操作系统运维故障实录_服务器_02

安装 lrzsz时各种依赖被更新成 el7的包

 Linux操作系统运维故障实录_linux系统_03

结论:在redhat6系统上引用了el7的yum源里的rpm包并把 glibc、bash都更新成了el7的版本,从而造成了远程用户会话过期后无法再次登录及重启后系统崩溃。

 由于在处理问题时没得到之前相关安装操作动作,造成排障困难无法切入关键点进而无法修复系统。