我有五张服务器磁盘的原始映像(存储在一个外部硬盘上)。每个磁盘包含两个分区,它们是"Linux raid autodetect" (fd)
RAID1 的成员(与启动相关;3 个设备(2 个活动设备 + 1 个备用设备))和RAID5(其他数据;5 台设备)。
使用kpartx
(或losetup
,其实并不重要)映射设备后,我运行mdadm
以组装 RAID 阵列。RAID1 已成功组装,我可以以常规方式安装它。RAID5 正在组装(根据 ,实际上是“活动的” /proc/mdstat
),但是:
- 所有设备都是“有缺陷的“ 和 ”已删除“;
dmesg
我在( )中看到了更多错误,blk_update_request: I/O error, dev loop4, sector 16
之后又出现了更多错误(md: super_written gets error=-5
;md/raid:md0: Disk failure on loop5, disabling device.
);- 我无法安装 RAID5 阵列(足够公平)。
我尝试了在网上找到的所有建议:
- 使用
--force
键 -> 不起作用; - 使用
--create
和--assume-clean
-> 不起作用; - 使用
--zero-superblock
(类似于 2)-> 不起作用。 - 如果检查
--examine
- 所有成员设备均在干净的状态,校验和为正确的事件编号为平等的。
根据 2 和 3 - 似乎我无法写入这些映射设备。我strace
'd--zero-superblock
并且在write()
系统调用中,我得到了EPERM (Operation not permitted)
。无法想象是什么阻止我写入映射设备(根据lsblk --fpm
RAID5 设备是可写的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
直接修改映射设备上的某些扇区但失败了)。
就是这样。