虚拟机xfs文件系统因根分区爆满损坏修复

问题描述

虚拟机崩溃, 后台进去截图这样的:

且无法ssh远程登录。设备重启可以进入单用户,但单用户状态也不正常。

问题排查步骤

1、根据问题描述,可以进单用户,便进单用户看看,通过进单用户:

在grub选择内核界面选中当前内核,按E进入grub添加上rw init=/bin/bash console=tty0

2、journal | less 查看日志,发现在是文件系统有问题

3、使用xfs_repaire -L /dev/mapper/klas-root (使用大L有风险,以后还是少用,因为可能会造成数据丢失,在万不得已的情况下使用,建议先不加大L修复,如果修复失败再使用大L尝试修复)。

4、修复之后 ,还是无法进去。会卡在log界面。

5、然后再用单用户进去,这个时候文件系统已经正常,可以挂载上分区。

但通过df -hT 发现根目录已经满了,Use%=100,这也是导致系统无法正常启用的一个原因。

6、通过du –smh /* 排查到使用最大的目录是var/log目录。

继续进入里面排查,排查造成根目录满的原因。使用du -smh /var/log/* 发现在/var/log/ 中有一个文件cron文件有32G 异常的大。

7、查看corn日志文件里面的信息,全部是crontab服务的警告信息。

问题解决步骤

根据问题分析,找到造成此次虚拟机系统文件系统损坏,无法正常进入操作系统的原因。为cron日志异常增大,且后续还在持续写入,造成文件系统损坏。

先是通过进单用户xfs_repair修复文件系统,再是找到造成根分区爆满的原因为corn日志异常的大。

只需要将corn日志清空即可:

# cat /dev/null > /var/log/cron 可以清空日志。

清空日志后,再测试重启操作系统,系统正常。

问题根因分析

1、查看cron相关的定时任务:

2、分析两条定时任务:

第一条:每天的01点运行rsync同步命令,同步到远程主机中的指定目录。

-a:-a --archive :归档模式,表示递归传输并保持文件属性。等同于"-rtopgDl"。
-v:-v:显示rsync过程中详细信息。可以使用"-vvvv"获取更详细信息。
-z:-z :传输时进行压缩提高效率。
-P:-P 选项等效于 --partial --progress。 其目的是更容易为可能被中断的长传输指定这两个选项。(The  -P option is equivalent to  --partial  --progress. Its purpose is to make it much easier to specify these two options for a long transfer that may be interrupted.)

第二条:每天的23点运行指定脚本。

脚本内容如下:

3、查看系统message日志:

rsyslogd的日志不断提示对文件/var/log/corn写入错误,设备没有足够的空间。这是造成文件系统损坏的根本原因。

也能看到crond服务的警告报错日志,此信息在/var/log/cron文件中全部都是。

结论:故,造成此次文件系统损坏的根本原因为:

事件顺序:定时任务存在语法或同步问题不断在/var/log/cron日志中写入报错日志撑爆根目录,造成文件系统损坏。

解决顺序:单用户xfs_repair修复文件系统单用户清除/var/log/cron中的报错信息排查问题根因。

问题相关链接

1、进单用户:

https://blog.csdn.net/qq_41526779/article/details/122378079

2、xfs_repaire修复文件系统:

#https://www.cnblogs.com/linkenpark/p/7873202.html

3、清空日志:

https://www.shuhost.com/wiki/articl

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值