记一次xfs文件系统损坏,磁盘修复问题

Input/out error
message输出日志太乱了,这里不放图
现象:重启一下好了,过一段时间后又出问题了。磁盘解决是在磁盘好的状态下处理的,不好的情况下不太好操作,前提是你要知道具体有哪些服务在读取该磁盘。
附图:
在这里插入图片描述
我的是磁盘/dev/mapper/mpathbp1 挂载到/public

解决方法:首先要卸载磁盘,卸载磁盘的话需要先停止在该磁盘读写数据的进程。然后再进行磁盘修复,磁盘检查,无问题后重新挂载。

1.停止所有进程,用lsof命令:

lsof /public

这里建议先看查看是哪些用户,再切换到该用户下去杀死进程。还有就是如果有程序停止的stop命令,建议执行stop命令停止程序,这样防止有程序会出现异常。
我这里有samba服务,nfs服务,还有interface,model用户下有进程:

/etc/init.d/smb stop   #停止smaba
/etc/init.d/nfs stop   #停止nfs服务
切换到interface下:
pkill -U interface
切换到model用户下:
pkill -U model

通用方法:当然如果你对服务器上的程序很多不了解,不知道怎么关闭,可以执行kill 命令直接杀死进程:

lsof /public/ |awk '{print $2}' |grep -v PID  |xargs kill -9

2.卸载磁盘:

umount /dev/mapper/mpathbp1

这里如果出现磁盘无法卸载,正在繁忙busy状态,100%是还有进程没清理干净,依旧在使用磁盘。因为这是linux系统的规则,不允许卸载还再使用的磁盘,防止数据出现不一致或者丢失的情况。

3.磁盘修复:

xfs_repair /dev/mapper/mpathbp1

一直等待完成即可。
4.磁盘检查:

xfs_check /dev/mapper/mpathbp1;echo $?
输出是0的话就表示没问题

5.挂载磁盘:
source /etc/rc.local
因为我的mount挂载命令已经写在了开启启动文件里面,所以直接加载下启动文件即可,你们还是mount /dev/mapper/mpathbp1 /public也行。

6.检查读写是否有问题,没有问题的话恢复服务,把哪些杀死的服务再次起来

/etc/init.d/smb start
/etc/init.d/nfs start
等等

到这里就完成了。

我这有smb,nfs,所以还需要检查其他服务器的挂载情况,都给它挂上。之后就没有出现该问题了。

猜你喜欢

转载自blog.csdn.net/qq_37369726/article/details/121884597
今日推荐