当磁盘开始慢慢失效时,多路径开始出现故障和恢复路径,并且这种情况将永远持续下去..(我使用带有 SAS-JBOD 的 LSI-3008HBA 卡,而不是 FC 网络)
消息;
Sep 13 11:20:17 DEV2 kernel: sd 0:0:190:0: attempting task abort! scmd(ffff88110e632948)
Sep 13 11:20:17 DEV2 kernel: sd 0:0:190:0: [sdft] tag#3 CDB: opcode=0x0 00 00 00 00 00 00
Sep 13 11:20:17 DEV2 kernel: scsi target0:0:190: handle(0x0037), sas_address(0x5000c50093d4e7c6), phy(38)
Sep 13 11:20:17 DEV2 kernel: scsi target0:0:190: enclosure_logical_id(0x500304800929ec7f), slot(37)
Sep 13 11:20:17 DEV2 kernel: scsi target0:0:190: enclosure level(0x0001),connector name(1 )
Sep 13 11:20:17 DEV2 kernel: sd 0:0:190:0: task abort: SUCCESS scmd(ffff88110e632948)
Sep 13 11:20:18 DEV2 kernel: device-mapper: multipath: Failing path 130:240.
Sep 13 11:25:34 DEV2 kernel: device-mapper: multipath: Reinstating path 130:240.
正如您所看到的,内核中止了任务,并且在多路径失败之后。所以我想通过告诉 Multipath“不要恢复路径”来摆脱这个问题。
此方法将使僵尸磁盘保持死亡状态。
我怎样才能做到这一点?
答案1
我们需要知道多路径如何确定路径是否有效。如果你看多路径配置文件您将看到有一个可选的 path_checkeroption
您可以看到它们的列表(默认为readsector0
)。要做的另一件事是制定路径优先级排序,以便对路径进行分组,禁用故障恢复将阻止使用它,除非出现紧急情况。根据https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/6/html/storage_administration_guide/removing-path-to-storage-device删除对 的手动引用后,sdft
您可以使用以下内容(但可以替换sdft
以sda
匹配您给出的情况):
使用 使路径离线
echo offline > /sys/block/sda/device/state
。这将导致发送到此路径上的设备的任何后续 I/O 立即失败。设备映射器多路径将继续使用设备的剩余路径。