Linux 多路径 + SAS 阵列,被动路径的“设备错误”被记录到 dmesg 中?可以停止这种情况吗?

Linux 多路径 + SAS 阵列,被动路径的“设备错误”被记录到 dmesg 中?可以停止这种情况吗?

我有两台 OpenSuSE 11.4 主机通过 SAS 连接到 LSI CTS2600 存储阵列。每次我重新启动主机时,我都会在 dmesg 输出中看到类似

[ 255.942890] end_request: I/O 错误,设备 sdg,扇区 8
[ 256.445301] sd 5:0:1:1: [sdg] 结果:hostbyte=DID_OK driverbyte=DRIVER_SENSE
[ 256.445308] sd 5:0:1:1: [sdg] 检测密钥:非法请求 [当前]
[ 256.445315] sd 5:0:1:1: [sdg] <> ASC=0x94 ASCQ=0x1ASC=0x94 ASCQ=0x1
[ 256.445326] sd 5:0:1:1: [sdg] CDB:读取(10):28 00 00 00 00 08 00 00 08 00

碰巧的是,报告 IO 错误的设备始终是被动路径组中的设备。

首先,我想知道:为什么会发生这种情况?我认为这与系统在加载正确的设备驱动程序和/或软件之前查看连接的 SAS 硬件并对其进行查询有关,但我不确定。

其次,我该怎么做才能阻止这种情况发生?除了增加启动时间外,由于它会停留在那里并一次又一次地重新查询设备,它在日志中看起来很糟糕。并启动 Nagios 警报。总的来说很烦人。

因为我觉得它在某种程度上与驱动程序或模块相关,所以这里有一些启动信息:

INITRD_MODULES:dm-multipath、mptbase、mpt2sas、mptscsi、mptspi、mptsas、3w-sas、thermal、ata_generic、处理器、风扇

启动时加载的模块:drbd,dm-multipath

在我看来,我已经用 INITRD_MODULES 覆盖了所有基础,但我不确定。

答案1

您的阵列看起来是戴尔 MD3220 的 OEM 版本,对吗?我有一台 MD3200i,它是 LFF 和 iSCSI 版本。

我在辅助路径组上遇到了类似的错误,这是由于多路径尝试使用/检查(我不确定)到 LUN 的所有现有路径造成的。

我不确定 RDAC SCSI 设备处理程序模块是否会对您的情况有所帮助;我的 Debian 主机具有以下内容:

23:13:29 root@u14-0bA-site3:~> grep -v '^#' /etc/initramfs-tools/modules 
scsi_dh_rdac

开箱即用,这是我启动和运行所需的唯一更改。性能很差,这时像您这样的 SAS 连接版本就派上用场了。

相关内容