问题:在数据库服务器备份的时候显示被写文件是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