Ext3 不断出现日志错误并变为只读

Ext3 不断出现日志错误并变为只读

我有一台 RHEL5.5 x86_64 服务器,带有 2 个 HBA,连接到 EMC 和 HP 存储阵列。由于 EMC 供应商坚持要求安装 EMC PowerPath,因此我安装了它。

我的问题是 HP 存储上的卷经常出现日志错误(见下文)并进入只读模式。

这是 SAN 问题还是操作系统问题?我该如何解决?

May 27 14:16:57 cvoddv01 kernel: journal_bmap: journal block not found at offset 6156 on dm-7
May 27 14:16:57 cvoddv01 kernel: Aborting journal on device dm-7.
May 27 14:16:57 cvoddv01 kernel: ext3_abort called.
May 27 14:16:57 cvoddv01 kernel: EXT3-fs error (device dm-7): ext3_journal_start_sb: Detected aborted journal
May 27 14:16:57 cvoddv01 kernel: Remounting filesystem read-only
May 27 14:16:57 cvoddv01 kernel: __journal_remove_journal_head: freeing b_frozen_data
May 27 14:16:57 cvoddv01 kernel: __journal_remove_journal_head: freeing b_committed_data
May 27 14:16:57 cvoddv01 kernel: __journal_remove_journal_head: freeing b_frozen_data
May 27 14:17:36 cvoddv01 kernel: ext3_abort called.
May 27 14:17:36 cvoddv01 kernel: EXT3-fs error (device dm-7): ext3_put_super: Couldn't clean up the journal

我的 modprobe.conf 是:

alias scsi_hostadapter mptbase
alias scsi_hostadapter1 mptspi
alias scsi_hostadapter2 cciss
alias scsi_hostadapter3 ata_piix
alias scsi_hostadapter4 qla2xxx
alias eth0 e1000e
alias eth2 e1000e
alias eth1 e1000e
alias eth3 e1000e
alias eth4 bnx2
alias eth5 bnx2
#Added by HP rpm installer
alias scsi_hostadapter_mptscsih_module mptscsih
#Added by HP rpm installer
alias scsi_hostadapter_mptsas_module mptsas
options qla2xxx ql2xmaxqdepth=16 ql2xloginretrycount=30 qlport_down_retry=64
options lpfc lpfc_lun_queue_depth=16 lpfc_nodev_tmo=30 lpfc_discovery_threads=32
###BEGINPP
include /etc/modprobe.conf.pp
###ENDPP

/etc/fstab 是:

/dev/VolGroup00/LogVol00 /                       ext3    defaults        1 1
LABEL=/boot             /boot                   ext3    defaults        1 2
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
/dev/VolGroup00/LogVol01 swap                    swap    defaults        0 0
#/dev/sdae1             /mnt/sda1               ext3    defaults        0 0
#/dev/sdaf1             /mnt/sdb1               ext3    defaults        0 0
#/dev/sdag1             /mnt/sdc1               ext3    defaults        0 0
#/dev/sdah1             /mnt/sdd1               ext3    defaults        0 0
/dev/vg01/lvu02         /u02                    ext3    defaults        0 0
/dev/vg01/lvu03         /u03                    ext3    defaults        0 0
/dev/vg01/lvu04         /u04                    ext3    defaults        0 0
/dev/vg01/lvu05         /u05                    ext3    defaults        0 0
/dev/vg02/lvu06         /u06                    ext3    defaults        0 0
/dev/vg02/lvu07         /u07                    ext3    defaults        0 0
/dev/vg02/lvu08         /u08                    ext3    defaults        0 0
/dev/vg02/lvu09         /u09                    ext3    defaults        0 0
shmfs                   /dev/shm                tmpfs   rw,size=22g     0 0

uanme-a

Linux cvoddv01.globetel.com 2.6.18-194.el5 #1 SMP Tue Mar 16 21:52:39 EDT 2010 x86_64 x86_64 x86_64 GNU/Linux

答案1

您实际上应该使用 dm-multipath 或 PowerPath,而不是同时使用两者。

来自PowerPath 管理指南

PowerPath 与本机 Linux 设备映射器 (DM-MPIO) 不兼容。在同一主机上配置这两种产品可能会导致系统不稳定。EMC 建议您不要在将要安装 PowerPath 的主机上配置本机设备映射器。

答案2

您是否尝试过删除并重建日志?很少有帖子解释如何重建 EXT3 日志。如果重建日志仍然出现错误,那么我会调查硬件/驱动程序。- 抱歉,我无法在这里提供更详细的信息。

答案3

所附日志中受影响的设备是 dm-7,因此我估计您对 HP 存储使用了 multipathd,对吗?如果是,请同时附上您的多路径配置。

内核名称中的 el5 表明 RHEL 5。如果您有支持合同,请尽快联系他们,他们将能够为您提供最大的帮助。

我们从数据中可以确定的是,尝试访问日志已经失败,操作系统做了唯一能做的事情,即冻结文件系统,以避免任何写入损坏它。

故障可能出在以下任何一个组件上:

  1. 存储 — 重新安装后文件系统是否正常?您可以对它进行完整的 fsck 来查看日志问题是否是唯一出错的地方,或者可能存在大量无声损坏,并且只有当错误影响到日志时才会显现出来。
  2. 这个特定的 LUN。您能否(如:是否可行)对其进行格式化、恢复数据并查看是否再次发生这种情况?
  3. 您是否可以在同一个阵列上创建另一个 LUN,然后查看是否可以重现该错误?同一存储上不同阵列上的 LUN?
  4. 多路径 - 如果您通过一条路径直接访问存储,是否可以重现错误(这需要更改存储中的 SAN 分区或 lun 屏蔽)。
  5. powerpath 和本机多路径之间的驱动程序冲突。当您未安装 powerpath 时,能否在同一个 LUN 上重现错误?

我不认为这是 ext3 代码中的错误,因为它已经存在了一段时间,但您是否使用任何奇特的挂载选项?您的存储上有 4K 块吗?有什么奇特之处吗?

服务器是否曾经正常运行?如果是,您能说出导致服务器开始出现故障的更改吗?

如果您要自行排除故障,那么最好的办法是设置一组最少的选项,使系统发生故障。更实用的方法可能是重新组织您的存储,以便在任何给定的服务器上只使用一个供应商的存储。这可以为您节省在供应商之间来回切换的时间。

不过,我认为,最好的办法是联系您的操作系统供应商并让他们推动此事。

相关内容