文件系统错误恢复

问题:在数据库服务器备份的时候显示被写文件是Read-only file system

mount或者查看 /proc/mounts 查看此文件系统是否是ro?

fdisk-l /dev/sda

你会发现有些是网络文件系统

用 touch /data/test 再次测试此文件是否是只读的。如果touch 都无法在此文件目录中写,那些此文件系统确实有问题了。

查看 mount 的选项是rw的,其他选项也没有问题的话,那么早晨此问题的可能就不是 mount 而是其他问题。

ping NFS服务器的IP地址,查看服务器是否是运行状态。如果是,查看NFS服务是否启动。

用curl命令telnet NFS端口来查看NFS服务是否启动

NFS端口可以 grepnfs/etc/services 来查看默认NFS端口

curl -vktelnet://ip:2049,如果连接建立起来,另起一个terminal,运行“netstat-na| grep IP”再次检查连接是否成功

showmount是一个专门查看nfs mount情况的命令。

如果从client端查看nfs server一切正常,下一步需要登录到NFS服务器进一步查看

首先需要查看nfs 服务的状态systemctlstatusnfs

如果运行状态正常,查看 /etc/exports 配置,配置看上去正常

ls -la /etc/exports 查看此文件的修改日期,发现最近被修改过。

/etc/exports的配置只有服务被重新加载的时候才起作用,所以要查看目前正在运行的服务的状态。

exports -s 查看到共享目录仍然是rw状态

目前看到NFS 服务器的配置看上去很正确,而Client看上去也没问题。所有可以用另一台Client测一下。

登录到另一台Client上,showmount -e 192.168.33.13 测试是否可以看到要mount的nfs

mount -tnfs192.168.33.13:/nfs /mnt

mount | grep /mnt

touch /mnt/testfile.txt 仍然报错

仍然无法解决问题,umount /mnt。放弃在此机器上的操作

返回 NFS server,journal -xe查看nfs的 log信息

如果有错误信息是关于无法打开某一文件的话,执行 mount ,看是否此文所在文件系统是被设置为 ro,查看 /etc/fstab查看是否被设置为ro,但是都设置为 rw。

再次查看 log 信息,发现磁盘错误。在Linux中,如果一个物理磁盘驱动失败,Linux 内核会以 Read-Only remount这个磁盘中的文件系统。

fsck 检查指定磁盘文件系统的一致性。fsck -y 或者e2fsck 可以修复文件系统,对于xfs文件系统,可以用xfs_repair来修复。

对于根目录用mount -o remount /来修复,文件系统修复工具会被自动调用。当然如果系统可以重启,文件系统也会被重新修复的。

更多Docker Trouble Shooting信息请关注此公众号

Linux_Performance

文件系统错误恢复_第1张图片

你可能感兴趣的:(文件系统错误恢复)