小知识:一次服务器非法重启后导致的故障排查记录

大家好,我是杰哥。

前段时间遇到一个服务器问题:非法重启设备后,服务器进入救援模式,数据盘也不显示挂载是否成功。

说来这个问题,我觉得还挺奇葩。今天就来跟大家分享下整个过程以及我的处理方法。避免大家在今后的学习或工作中遇到跟我同样的问题。

一、问题背景

有一天,研发小伙伴跟我反馈有一台服务器连不上,一直卡在如下页面

%小知识:一次服务器非法重启后导致的故障排查记录-猿站网-插图

页面是 Xshell 连接某一台服务器时,建立的连接,按Ctrl+Alt+]键切换到本地 Shell 终端。当我看到卡在该页面时,毫无犹豫的自己也尝试了起来,果然也是连不上。前一天还正常连接,第二天就出问题了?

还好服务器有配置远程管理地址,通过远程控制管理页面的方式启动 iKVM HTML5 和远程管理服务器,这样就能登到这台出故障的设备上查看服务器界面处于一种什么样的状态

%小知识:一次服务器非法重启后导致的故障排查记录-1猿站网-插图

登到这台故障的服务器后,直接重启了服务器,然后 Xshell 再次尝试连接,是可以远程连接的。难道这就是传说中的重启治百病,如此简单粗暴?

%小知识:一次服务器非法重启后导致的故障排查记录-2猿站网-插图

当进入系统后,执行简单的命令都提示输入/输出错误。

%小知识:一次服务器非法重启后导致的故障排查记录-3猿站网-插图

过不久后,直接不建立连接了,彻底挂了。。。

%小知识:一次服务器非法重启后导致的故障排查记录-4猿站网-插图

再通过远程控制管理页面查看服务器当前状态,一看进入到救援模式了。

到该模式下后

输入journalctl -xb命令,可查看系统日志 输入systemctl reboot命令,重启系统 输入systemctl default或^D命令,再次尝试进入默认模式 输入 root 用户密码,则可以进入系统

%小知识:一次服务器非法重启后导致的故障排查记录-5猿站网-插图

根据日志报错提示:挂载文件系统可以纠正该问题。

%小知识:一次服务器非法重启后导致的故障排查记录-6猿站网-插图

二、解决方案

执行df -h命令,用于在 Linux 操作系统下显示文件系统的磁盘使用情况。

使用-h选项以KB以上的单位来显示,可读性高。

第一列:Filesystem文件系统的名称 第二列:Size文件系统的容量 第三列:Used已用多少的磁盘空间 第四列:Avail可用多少的磁盘空间 第五列:Use%磁盘使用率 第六列:Mounted On挂载点

%小知识:一次服务器非法重启后导致的故障排查记录-7猿站网-插图

根据上图结果来看,没有/dev/sdb1文件系统所挂载的/bigdata目录磁盘情况。

尝试将/dev/sdb1取消挂载,重新挂载,反复报不同的错误。

%小知识:一次服务器非法重启后导致的故障排查记录-8猿站网-插图

%小知识:一次服务器非法重启后导致的故障排查记录-9猿站网-插图

%小知识:一次服务器非法重启后导致的故障排查记录-10猿站网-插图

通过 RAID 卡管理界面查看状态也是 Online。

当如果重启设备,能看到如下界面,则说明正在初始化设备。

%小知识:一次服务器非法重启后导致的故障排查记录-11猿站网-插图

恰巧,这台故障的服务器有多块硬盘组成的 44T 的一个目录有存放 46% 的数据,在有数据的情况下,如何不格式化磁盘重新挂载呢?

%小知识:一次服务器非法重启后导致的故障排查记录-12猿站网-插图

取消挂载 umount /dev/sdb1 尝试修复

若不确定挂载点属于哪种文件类型时,可以执行:df -Th命令来判断。

%小知识:一次服务器非法重启后导致的故障排查记录-13猿站网-插图

如果挂载点为xfs 文件类型,可以执行:xfs_repair -L + 文件系统名称路径命令进行修复。

如果挂载点为fsck.ext2/3/4文件类型,可以执行:fsck.ext2/3/4文件类型 + 文件系统路径命令进行修复。

因为我这是xfs的文件类型,按xfs_repair命令来修复受损的 xfs 文件系统,执行如下命令进行修复/dev/sdb1。

xfs_repair L /dev/sdb1

执行修复是根据磁盘中的数据使用率来决定修复时长的,所以时间会较长,我采用放后台的形式执行的,执行完成后,查看还是否有进程存在,如有则说明未修复完,如没有则说明修复完成,然后再重新挂载。

%小知识:一次服务器非法重启后导致的故障排查记录-14猿站网-插图

mount /dev/sdb1 /bigdata

挂载完毕后,执行df -h命令来确定是否挂载成功。

%小知识:一次服务器非法重启后导致的故障排查记录-15猿站网-插图

到此,就恢复挂载完毕了。

上面案例是针对磁盘有数据时且不格式化的情况下恢复并挂载。

那么有小伙伴该问了,无存储数据的情况下,如何挂载磁盘,我这里也给大家整理出来一个详细的操作步骤

一步

ll /dev/disk/bypath # 查看需要挂的磁盘名称 fdisk l # 查看磁盘信息 lsblk # lsblk 命令默认情况下将以树状列出所有块设备,包括查看磁盘挂载信息

第二步:

parted /dev/sdb mklabel gpt # 新建 /dev/sdb 的磁盘标签类型为 GPT parted /dev/sdb mkpart primary 0 100% # 将 /dev/sdb 整个空间分给同一个分区 ignore # 忽略上述执行命令后的告警 mkfs.xfs f /dev/sdb # 格式化分区

注意:格式化分区可能会执行慢些,需耐心等待。

第三步:

mkdir /bigdata # 创建目录,自定义目录名 mount /dev/sdb /bigdata # 将 sdb 挂载到 /bigdata 目录下

第四步:

blkid # 查看 sdb 的 UUID 并复制

第五步:

vi /etc/fstab # 参考已挂载的磁盘,将 sdb 的 UUID 和挂载目录关联上,保存后重启设备

注意:UUID 一定要写对,否则重启后无法正常进入系统。

第六步:

df h # 检查是否挂载成功

按照上述操作步骤执行,肯定能操作成功。如果你有更好的解决方案,也欢迎大家留言分享。

参考文献

xfs_repair命令详解 https://bbs.qunyingkeji.com/2052/

原文地址:https://mp.weixin.qq.com/s/HBJadt6I8JaCqyr0nLXHDA

声明: 猿站网有关资源均来自网络搜集与网友提供,任何涉及商业盈利目的的均不得使用,否则产生的一切后果将由您自己承担! 本平台资源仅供个人学习交流、测试使用 所有内容请在下载后24小时内删除,制止非法恶意传播,不对任何下载或转载者造成的危害负任何法律责任!也请大家支持、购置正版! 。本站一律禁止以任何方式发布或转载任何违法的相关信息访客发现请向站长举报,会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。本网站的资源部分来源于网络,如有侵权烦请发送邮件至:2697268773@qq.com进行处理。
建站知识

小知识:arj是什么文件格式?arj文件怎么打开?

2023-3-4 18:34:49

建站知识

小知识:戴尔服务器密码忘记怎么办?(使用PE清除服务器密码)

2023-3-4 18:39:18

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索