我有一台 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 与本机 Linux 设备映射器 (DM-MPIO) 不兼容。在同一主机上配置这两种产品可能会导致系统不稳定。EMC 建议您不要在将要安装 PowerPath 的主机上配置本机设备映射器。
答案2
您是否尝试过删除并重建日志?很少有帖子解释如何重建 EXT3 日志。如果重建日志仍然出现错误,那么我会调查硬件/驱动程序。- 抱歉,我无法在这里提供更详细的信息。
答案3
所附日志中受影响的设备是 dm-7,因此我估计您对 HP 存储使用了 multipathd,对吗?如果是,请同时附上您的多路径配置。
内核名称中的 el5 表明 RHEL 5。如果您有支持合同,请尽快联系他们,他们将能够为您提供最大的帮助。
我们从数据中可以确定的是,尝试访问日志已经失败,操作系统做了唯一能做的事情,即冻结文件系统,以避免任何写入损坏它。
故障可能出在以下任何一个组件上:
- 存储 — 重新安装后文件系统是否正常?您可以对它进行完整的 fsck 来查看日志问题是否是唯一出错的地方,或者可能存在大量无声损坏,并且只有当错误影响到日志时才会显现出来。
- 这个特定的 LUN。您能否(如:是否可行)对其进行格式化、恢复数据并查看是否再次发生这种情况?
- 您是否可以在同一个阵列上创建另一个 LUN,然后查看是否可以重现该错误?同一存储上不同阵列上的 LUN?
- 多路径 - 如果您通过一条路径直接访问存储,是否可以重现错误(这需要更改存储中的 SAN 分区或 lun 屏蔽)。
- powerpath 和本机多路径之间的驱动程序冲突。当您未安装 powerpath 时,能否在同一个 LUN 上重现错误?
我不认为这是 ext3 代码中的错误,因为它已经存在了一段时间,但您是否使用任何奇特的挂载选项?您的存储上有 4K 块吗?有什么奇特之处吗?
服务器是否曾经正常运行?如果是,您能说出导致服务器开始出现故障的更改吗?
如果您要自行排除故障,那么最好的办法是设置一组最少的选项,使系统发生故障。更实用的方法可能是重新组织您的存储,以便在任何给定的服务器上只使用一个供应商的存储。这可以为您节省在供应商之间来回切换的时间。
不过,我认为,最好的办法是联系您的操作系统供应商并让他们推动此事。