对软件 raid/md 设备上的“缓冲区 I/O 错误”进行故障排除

对软件 raid/md 设备上的“缓冲区 I/O 错误”进行故障排除

我有一个 RAID-5 mdadm 阵列,读取该块时确实会导致Buffer I/O error on dev md0, logical block 1598030208, async page read写入dmesg。当然,读取实际上也会失败。此行为在重新启动后始终一致,并且始终是同一个块。

我想了解错误来自何处。据我了解,要么是某个物理驱动器导致问题,要么可能是阵列处于不一致状态。无论哪种情况,我都想知道是哪一种原因,以便我可以采取进一步措施尝试解决问题。

不幸的是,dmesg根本没有给出进一步的提示。我查看了smart所有相关驱动器的参数,但没有一个引起怀疑。我还能尝试什么来排除阵列故障?

提前致谢!

编辑:根据要求,输出mdadm --detail /dev/md0

/dev/md0:
        Version : 1.0
  Creation Time : Sat Dec 28 03:50:47 2013
     Raid Level : raid5
     Array Size : 15621798144 (14898.11 GiB 15996.72 GB)
  Used Dev Size : 3905449536 (3724.53 GiB 3999.18 GB)
   Raid Devices : 5
  Total Devices : 5
    Persistence : Superblock is persistent

    Update Time : Fri Dec 22 11:36:24 2017
          State : clean 
 Active Devices : 5
Working Devices : 5
 Failed Devices : 0
  Spare Devices : 0

         Layout : left-symmetric
     Chunk Size : 64K

           Name : 0
           UUID : 01a3d3c1:6a5ac63d:0cc10dd0:f8e7a1c4
         Events : 2132931

    Number   Major   Minor   RaidDevice State
       5       8       51        0      active sync   /dev/sdd3
       1       8       83        1      active sync   /dev/sdf3
       4       8       35        2      active sync   /dev/sdc3
       7       8       67        3      active sync   /dev/sde3
       6       8        3        4      active sync   /dev/sda3

repair更新:我尝试通过写入来清理数组md/sync_action。该过程完成,没有任何输出dmesg或 出现故障迹象/proc/mdstat。但是,在与上述相同的块中,从数组读取仍然失败1598030208

更新2,供参考:我在linux-raid邮件列表中问了这个问题:https://marc.info/?l=linux-raid&m=151486117529497&w=2

相关内容