问题描述
用户在例行巡检过程发现es有data节点处于停止状态,进行启动后,页面进度条显示绿色已完成,但实际进程启动失败了。
排查步骤
看日志报错
- 排查节点日志,发现不能访问数据路径,报错关键内容如下:
Unable to access ‘path.data’ (/mnt/elasticsearch/slave/data)……
检查磁盘空间
- 检查挂载磁盘,
df -Th
或lsblk -f
发现磁盘没有占满,使用容量还有剩余很多,文件系统为xfs
。
简单测试文件系统
- cd到数据路径,没有报错,ls有报错:ls: cannot open directory Input/output error。据此怀疑磁盘或文件系统故障。我们先排除文件系统故障。
重启机器
- 此时设备已经处于不可用状态,先尝试重启机器(reboot)-> 就这样解决了。
还未解决?
那需要进行文件系统修复操作了。
文件系统修复步骤
如果重启没有解决,依然是Input/output error,那么尝试进行文件系统修复操作如下:
1. 从【2】中获取到要修复的挂载点,如/dev/sdb
2. xfs的文件系统,使用如下命令进行修复:xfs_repair /dev/sdb
3. 正常的话要提示“设备或资源忙”,“couldn’t initialize XFS library”,需要先取消挂载umount /dev/sdb
4. 继续执行修复:
xfs_repair /dev/sdb -L
Phase 1 - find and verify superblock...
Phase 2 - using internal log
- zero log...
Phase 4 - check for duplicate blocks...
- setting up duplicate extent list...
- check for inodes claiming duplicate blocks...
- agno = 0
- agno = 3
- agno = 4
- agno = 2
- agno = 5
- agno = 6
- agno = 1
- agno = 7
Phase 5 - rebuild AG headers and trees...
- reset superblock...
Phase 6 - check inode connectivity...
- resetting contents of realtime bitmap and summary inodes
- traversing filesystem ...
- traversal finished ...
- moving disconnected inodes to lost+found ...
Phase 7 - verify and correct link counts...
done
```
修复完成后再把磁盘挂上,即可生效:mount /dev/sdb /mnt/elasticsearch/data
。
最后
如果修复失败,硬件报修。