应用系统在创建文件失败,查看报错日志,错误信息为文件系统只读。
排查过程1、 检查磁盘空间是否占满;
通过 df -h 查看各分区使用情况。
分区磁盘使用率在50% 以下,排除。
2、 确认是否应该主备切换导致的只读;
确认系统是否类keepalive 主备模式,排除因master节点异常,导致slave 节点切主但没有修改写权限成功。
经排查,该系统不存在主从,为多台服务器高可用。
3、 检查系统message 日志;
在发现问题时间点,对照message日志查看,发现报错如下
kernel: sd 2:0:1:0: [sdb] Unhandled sense code
kernel: sd 2:0:1:0: [sdb] Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
kernel: sd 2:0:1:0: [sdb] Sense Key : Medium Error [current]
kernel: sd 2:0:1:0: [sdb] Add. Sense: Unrecovered read error
kernel: sd 2:0:1:0: [sdb] CDB: Write(10): 2a
kernel: Aborting journal on device sdb1-8.
kernel: EXT4-fs (sdb1): delayed 电脑block allocation failed for inode 25 at logical offset 0 with
max blocks 23 with error -30
kernel: kernel: This should not happen!! Data will be lost
kernel: EXT4-fs error (device sdb1) in ext4_da_writepages: Journal has aborted
kernel: EXT4-fs error (device sdb1): ext4_journal_start_sb: Detected aborted journal
kernel: EXT4-fs (sdb1): Remounting filesystem read-only
kernel: EXT4-fs (sdb1): ext4_da_writepages: jbd2_start: 1016 pages, ino 25035545; err -30
EXT4-fs分区错误,导致系统将分区置为只读。
Linux 内核对EXT4的错误处理主要有三种:继续(不处理);内核panic(挂起);将错误分区设置为只读(继续)。
处理模式设置主要是在文件系统物理分区上或者通过mount 参数配置。前者可以通过tune2fs -l /dev/sdb1 查看Errors behavior;后者可以通过mount命令帮助文档了解设置。具体的情况可通过内核源码进确认。
可能原因可能由于磁盘掉电,文件系统错误,坏道,驱动,HBA卡、RAID卡故障,磁盘老旧长期大量的读写、文件系统文件被破坏、磁盘碎片文件、异常断电、读写中断等。
错误处理思路电脑1、通过fdisk -l 查看分区具体信息;
2、通过tune2fs -l /dev/sdb1 查看有无错误相关信息。
3、将该节点踢出应用集群,确认该分区的数据,备份该分区数据,避免修复中出现无法mount的情况。
4、尝试使用fsck修复磁盘。
# 1、确认出问题分区编号$ fdisk -l# 2、卸载分区$ unmount /dev/sdb1# 3、检查并修复分区$fsck /dev/sdb1## 注:fsck 可能会导致磁盘损坏或者数据丢失# 4、重新挂载$ mount -a ## fsck 退出码如下:# 0:没有错误# 1:修复了一些文件系统错误# 2:系统需要被重启# 4:文件系统错误未被修复# 8:操作错误# 16:使用或语法错误# 32:fsck 被用户取消# 128:共享库出错# fsck 常用参数:-t : 给定档案系统的型式,若在 /etc/fstab 中已有定义或 kernel 本身已支援的则不需加上此参数-s : 依序一个一个地执行 fsck 的指令来检查-A : 对/etc/fstab 中所有列出来的 分区(partition)做检查-C : 显示完整的检查进度-d : 打印出 e2fsck 的 debug 结果-p : 同时有 -A 条件时,同时有多个 fsck 的检查一起执行-电脑 R : 同时有 -A 条件时,省略 / 不检查-V : 详细显示模式-a : 如果检查有错则自动修复-r : 如果检查有错则由使用者回答是否修复-y : 选项指定检测每个文件是自动输入yes,在不确定那些是不正常的时候,可以执行 # fsck -y 全部检查修复。
电脑 电脑