修复XFS文件系统的过程
通过告警得知,有一台节点进入notready状态,登陆主机排查发现node组件异常,通过日志分析得知 数据盘异常,切换到挂载盘目录下发现无法正常写入状态如下[root@k8s-master /app ]# lsls: cannot access app: Input/output error解决方法#卸载挂载umount /app#返回设备正忙,无法卸载说明有进程还在挂载中跑#通过lsof/dev
·
通过告警得知,有一台节点进入notready状态,登陆主机排查发现node组件异常,通过日志分析得知 数据盘异常, 切换到挂载盘目录下发现无法正常写入
状态如下
[root@k8s-master /app ]# ls
ls: cannot access app: Input/output error
解决方法
#卸载挂载
umount /app
#返回设备正忙,无法卸载
说明有进程还在挂载中跑
#通过
lsof /dev/mapper/vg--docker-lvapp
#没有看到进程的相关信息
#因次换一种思路,查看所有进程下的关于这个分区的信息,通过命令
for i in /proc/[0-9]* ; do echo $i >> /tmp/mountinfo ; grep -q "/dev/mapper/vg--docker-lvapp" $i/mountinfo ; echo $? >> /tmp/mountinfo ; done
#我们会得到一个所有和挂载设备相关的进程表
grep -B 1 '^0$' /tmp/mountinfo | grep -v 0$ | awk -F"/" '{print $3}' | grep -v ^$ | grep -v ^1$ > 1.txt
##注意不要把进程1给干掉,这里手动将1进程删掉
#然后通过pid得到对应的进程
for i in `cat 1.txt`;do ps -ef | grep $i ;done > 2.txt
#上面已经把相关进程的进程id导入到2.txt了,我们这里批量杀死这些进程
for i in `cat 2.txt | awk '{print $2}'`;do kill -9 $i ;done
#进程杀死后,应该就可以卸载了
umount /dev/mapper/vg--docker-lvapp
(如果没有卸载成功说明有依旧有进程在挂载中运行)
#比如我这里是一台master节点,上面的etcd、api、sch、manager等都在,所以需要手动停止他们
#修复挂载
sudo xfs_repair -L /dev/mapper/vg--docker-lvapp
修复后正常挂载即可
更多推荐
已为社区贡献17条内容
所有评论(0)