RAID5 mdadm 故障/blk_update_request:I/O 错误

RAID5 mdadm 故障/blk_update_request:I/O 错误

我有五张服务器磁盘的原始映像(存储在一个外部硬盘上)。每个磁盘包含两个分区,它们是"Linux raid autodetect" (fd)RAID1 的成员(与启动相关;3 个设备(2 个活动设备 + 1 个备用设备))和RAID5(其他数据;5 台设备)。

使用kpartx(或losetup,其实并不重要)映射设备后,我运行mdadm以组装 RAID 阵列。RAID1 已成功组装,我可以以常规方式安装它。RAID5 正在组装(根据 ,实际上是“活动的” /proc/mdstat),但是:

  1. 所有设备都是“有缺陷的“ 和 ”已删除“;
  2. dmesg我在( )中看到了更多错误,blk_update_request: I/O error, dev loop4, sector 16之后又出现了更多错误(md: super_written gets error=-5md/raid:md0: Disk failure on loop5, disabling device.);
  3. 我无法安装 RAID5 阵列(足够公平)。

我尝试了在网上找到的所有建议:

  1. 使用--force键 -> 不起作用;
  2. 使用--create--assume-clean-> 不起作用;
  3. 使用--zero-superblock(类似于 2)-> 不起作用。
  4. 如果检查--examine- 所有成员设备均在干净的状态,校验和为正确的事件编号为平等的

根据 2 和 3 - 似乎我无法写入这些映射设备。我strace'd--zero-superblock并且在write()系统调用中,我得到了EPERM (Operation not permitted)。无法想象是什么阻止我写入映射设备(根据lsblk --fpmRAID5 设备是可写的brw-rw----)。

另一个奇怪的细节。上面我提到我进入了I/O error部门16。我检查了每个循环(映射)RAID5 设备中扇区 16(偏移量 8192 字节)的内容。似乎它以魔法数字0x6d746962(ASCII:“ bitm”)开头 - 可能bitmap相关:

00002000  62 69 74 6d 04 00 00 00  48 a7 15 94 56 79 23 ed  |bitm....H...Vy#.|<br/>
00002010  7d 7b 33 bc b9 f8 71 7a  d0 03 00 00 00 00 00 00  |}{3...qz........|<br/>
00002020  d0 03 00 00 00 00 00 00  00 b0 d8 0d 00 00 00 00  |................|

我不确定这是否相关(至少我不知道如何在组装数组时使用位图)但很明显系统无法成功blk_update_request操作(可能是缺少某些权限或找不到所需的内容)。

我故意不张贴日志墙——如果需要,请告诉我。我会附上一些能更好地描述情况的信息。

md0 : active raid5 dm-6[5](F) dm-8[4](F) dm-2[3](F) dm-4[2](F) dm-10[1](F)
      464609280 blocks super 1.2 level 5, 512k chunk, algorithm 2 [5/0] [_____]
      bitmap: 0/1 pages [0KB], 65536KB chunk

输出结果如下--detail

Number   Major   Minor   RaidDevice State
       0       0        0        0      removed
       2       0        0        2      removed
       4       0        0        4      removed
       6       0        0        6      removed
       8       0        0        8      removed

       1     252       10        -      faulty   /dev/dm-10
       2     252        2        -      faulty   /dev/dm-2
       3     252        4        -      faulty   /dev/dm-4
       4     252        8        -      faulty   /dev/dm-8
       5     252        6        -      faulty   /dev/dm-6

今天是我“更加努力”的第三天了……如果您能给我一些建议,我将不胜感激。谢谢。

答案1

因此,我终于成功组装了 RAID5。问题似乎出在以下方面(我的问题中没有提到)。我拥有的磁盘映像是 E01 格式,分成多个部分。我之前使用过的映射分区ewfmount(包括-X allow_root)将多个 E01“组装”成一个文件。结果发现保险丝,尽管您看到您的图像已安装为RW,但不知何故阻止了它们,从而制作了设备read-only(即使您编辑/etc/fuse.conf)。

在排除故障时,我的一个尝试是将多个 E01 导出到五个常规/生的格式化的图像并直接使用它们,ewfmount从“方案”中排除。

导出完成后,我使用映射原始磁盘kpartx,并且能够以常规方式组装 RAID5,没有任何问题。

多个Operation not permitted问题I/O error显而易见,必须给我提示,但是由于未知原因,我拒绝了它们(直到我尝试dd直接修改映射设备上的某些扇区但失败了)。

就是这样。

相关内容