Redian新闻
>
一次服务器非法重启导致的故障排查记录!

一次服务器非法重启导致的故障排查记录!

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

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

一、问题背景

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

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

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

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

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

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

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

到该模式下后,

  • 输入journalctl -xb命令,可查看系统日志;

  • 输入systemctl reboot命令,重启系统;

  • 输入systemctl default^D命令,再次尝试进入默认模式;

  • 输入 root 用户密码,则可以进入系统。

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

二、解决方案

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

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

  • 第一列:Filesystem文件系统的名称;

  • 第二列:Size文件系统的容量;

  • 第三列:Used已用多少的磁盘空间;

  • 第四列:Avail可用多少的磁盘空间;

  • 第五列:Use%磁盘使用率;

  • 第六列:Mounted On挂载点。

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

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



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

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

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

取消挂载

umount /dev/sdb1

尝试修复

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

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

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

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

xfs_repair -L /dev/sdb1

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


mount /dev/sdb1 /bigdata


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



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

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

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

第一步:

ll /dev/disk/by-path  # 查看需要挂的磁盘名称
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/

- EOF -



推荐阅读  点击标题可跳转

0、极客专属:几十款程序员秒懂的卫衣

1、支付宝大整改,花呗、借呗退出江湖

2、从前,有两个卖水果的公司……

3、今年这情况,咱还是留个心眼吧!


关注「程序员的那些事」加星标,不错过圈内事

点赞和在看就是最大的支持❤️

微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
视频曝光!悉尼昨晚有“UFO”?!神秘发光体飞行轨迹太奇怪,连调查记者都蒙了!美国调查记者:美国是怎样炸毁北溪天然气管道的?一次JVM GC长暂停的排查过程深度全文| 美调查记者:美国是怎样炸毁北溪天然气管道的?科技爱好者周刊(第242期):一次尴尬的服务器被黑工作焦虑?可能是无糖饮料导致的,还会遗传给后代,研究已登PNAS这菜吃一次想三天,又脆又爽香晕人,下饭神器非它莫属!如何避免服用维生素所导致的肠胃不适徐金富教授等:新冠病毒XBB突变株的由来、特点和可能导致的临床应对挑战美国入境档案--童第周、刘道元、江季平国殇日看《西线无战事》​别的简报|短视频推荐算法重新带火了《恶搞之家》让无服务器微服务超越容器,开发工具初创公司Fermyon 推出 WebAssembly 云【社会】恋足癖伪造汽车故障,引诱受害者开车加速导致车祸再进大公司,英年早逝的老板英国立法重拳打击游行、抗议,曱甴港人慌神了中国不是没有根服务器吗?《流浪地球2》的根服务器怎么在北京?忧更多"文件门"上演 档案馆致信一众前总统: 快查记录邓小平是披着羊皮的大军阀党阀情人节:无法重来的一生,好好爱自己有感染者CT出现白肺,什么是白肺?原因是什么?是奥密克戎导致的吗?刚刚,官方权威回应……【宏观市场】新资本办法重塑NCD曲线华府消息|美著名调查记者披露美国如何秘密炸破“北溪”管道记一次new ArrayList导致的cpu飙升问题排查根服务器为什么要“泡澡”?如何正确重启互联网?解析《流浪地球2》的硬核黑科技第四次服装上市潮,有何不一样?Java 微服务随机掉线排查过程怎样养出快乐温暖的孩子?3-18岁各阶段养育方法重点美资深调查记者再爆猛料 称俄乌冲突爆发前美国就制定了炸毁“北溪”计划肥胖导致的神经退化和阿尔茨海默病相似;新冠变异株CH.1.1在60多个国家检出,但对中国威胁很小|环球科学要闻《流浪地球2》重启互联网的根服务器,现实中长啥样?家里钻进乱贼,搅得天翻地覆阿瑟同款口呼吸导致的凸嘴,这位绝色美女都没逃过?
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。