MD raid5 阵列似乎突然停止工作。症状有些相似这个问题因为我收到有关没有足够的设备来启动阵列的错误,但在我的情况下,所有三个驱动器上的事件计数是相等的。这是一个 raid 5 阵列,应该有 2 个活动驱动器和一个奇偶校验,但是每个驱动器上的 mdadm --examine 显示其中两个的角色列为备用驱动器,只有一个作为活动驱动器。
我试过了mdadm --stop /dev/md1其次是mdadm --汇编 /dev/md1(包括尝试使用 --force 和 --run 标志)。
SMART 数据并不表明驱动器有任何问题(当前待处理和重新分配的扇区计数均为零),我已经尝试过raid.wiki.kernel.org 指南下面由frostschutz 链接了涉及设置映射覆盖设备的步骤。
然后,我假设运行以下命令将创建一个 raid 阵列,然后我可以尝试以只读方式挂载该阵列,并查看这是否会导致可读文件系统或只是乱码(即确定我对 sdf1 的猜测是否是奇偶校验)驱动器是正确的,或者我是否应该使用 sde1 重试) - 但它给出了下面显示的错误(还按照相关的循环设备进行了尝试丢失设置--列表,结果相同)。
mdadm --create /dev/md2 --assume-clean --level=5 --chunk=64K --metadata=1.2 --data-offset=261888s --raid-devices=3 缺少 /dev/mapper/sdh1 /开发/映射器/sdf1
mdadm: super1.x cannot open /dev/mapper/sdh1: Device or resource busy
mdadm: /dev/mapper/sdh1 is not suitable for this array.
mdadm: super1.x cannot open /dev/mapper/sdf1: Device or resource busy
mdadm: /dev/mapper/sdf1 is not suitable for this array.
mdadm: create aborted
另外,同时mdadm --详细信息 /dev/md1之前给出了下面的输出(进一步),现在给出了:
/dev/md1:
Version : 1.2
Raid Level : raid0
Total Devices : 3
Persistence : Superblock is persistent
State : inactive
Working Devices : 3
Name : bob:1 (local to host bob)
UUID : 07ff9ba9:e8100e68:94c12c1a:3d7ad811
Events : 373364
Number Major Minor RaidDevice
- 253 11 - /dev/dm-11
- 253 10 - /dev/dm-10
- 253 9 - /dev/dm-9
另外,我还注意到dm安装状态为所有三个覆盖提供相同的信息,并且有一个看起来可疑的数字,它可能指的是原始 raid 阵列 (16TB) 而不是单个驱动器 (8TB) 的大小 - 不确定这是否应该如此?
sde1: 0 15627528888 snapshot 16/16777216000 16
sdh1: 0 15627528888 snapshot 16/16777216000 16
sdf1: 0 15627528888 snapshot 16/16777216000 16
不知道如何从这一点开始尝试创建设备,安装并检查文件系统以确认我是否猜到了正确的奇偶校验设备,使用覆盖层来防止将任何内容写入实际驱动器。
更新:根据下面的弗罗斯特舒茨的建议,阵列不知何故处于某种状态,在能够对底层驱动器执行任何操作之前,需要发出 --stop 。我之前就低估了这种可能性猫 /proc/mdstat将阵列显示为非活动状态,我认为这意味着它不可能是捆绑驱动器的原因,但事实并非如此(我之前也运行过 --stop,但似乎有些东西是之后完成触发它返回到不间断状态)。在获得正确的驱动器顺序后(不是第一次尝试,很高兴我使用了覆盖),阵列通过了 fsck 检查,没有报告错误,并且现在已启动并运行,就像什么都没发生过一样。
运行其他诊断命令的结果:
猫 /proc/mdstat:
Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10]
md1 : inactive sdh1[1](S) sde1[3](S) sdf1[0](S)
23440900500 blocks super 1.2
mdadm --详细信息 /dev/md1:
/dev/md1:
Version : 1.2
Raid Level : raid0
Total Devices : 3
Persistence : Superblock is persistent
State : inactive
Working Devices : 3
Name : bob:1 (local to host bob)
UUID : 07ff9ba9:e8100e68:94c12c1a:3d7ad811
Events : 373364
Number Major Minor RaidDevice
- 8 113 - /dev/sdh1
- 8 81 - /dev/sdf1
- 8 65 - /dev/sde1
尝试时 dmesg 中出现的行mdadm --汇编 /dev/md1:
md/raid:md1: device sdh1 operational as raid disk 1
md/raid:md1: not enough operational devices (2/3 failed)
md/raid:md1: failed to run raid set.
md: pers->run() failed ..
和mdadm——检查s
/dev/sde1:
Magic : a92b4efc
Version : 1.2
Feature Map : 0x1
Array UUID : 07ff9ba9:e8100e68:94c12c1a:3d7ad811
Name : bob:1 (local to host bob)
Creation Time : Mon Mar 4 22:10:29 2019
Raid Level : raid5
Raid Devices : 3
Avail Dev Size : 15627267000 (7451.66 GiB 8001.16 GB)
Array Size : 15627266688 (14903.32 GiB 16002.32 GB)
Used Dev Size : 15627266688 (7451.66 GiB 8001.16 GB)
Data Offset : 261888 sectors
Super Offset : 8 sectors
Unused Space : before=261808 sectors, after=312 sectors
State : clean
Device UUID : e856f539:6a1b5822:b3b8bfb7:4d0f4741
Internal Bitmap : 8 sectors from superblock
Update Time : Sun May 30 00:22:45 2021
Bad Block Log : 512 entries available at offset 40 sectors
Checksum : 9b5703bc - correct
Events : 373364
Layout : left-symmetric
Chunk Size : 64K
Device Role : spare
Array State : .AA ('A' == active, '.' == missing, 'R' == replacing)
/dev/sdf1:
Magic : a92b4efc
Version : 1.2
Feature Map : 0x1
Array UUID : 07ff9ba9:e8100e68:94c12c1a:3d7ad811
Name : bob:1 (local to host bob)
Creation Time : Mon Mar 4 22:10:29 2019
Raid Level : raid5
Raid Devices : 3
Avail Dev Size : 15627267000 (7451.66 GiB 8001.16 GB)
Array Size : 15627266688 (14903.32 GiB 16002.32 GB)
Used Dev Size : 15627266688 (7451.66 GiB 8001.16 GB)
Data Offset : 261888 sectors
Super Offset : 8 sectors
Unused Space : before=261800 sectors, after=312 sectors
State : clean
Device UUID : 7919e56f:2e08430e:95a4c4a6:1e64606a
Internal Bitmap : 8 sectors from superblock
Update Time : Sun May 30 00:22:45 2021
Bad Block Log : 512 entries available at offset 72 sectors
Checksum : d54ff3e1 - correct
Events : 373364
Layout : left-symmetric
Chunk Size : 64K
Device Role : spare
Array State : .AA ('A' == active, '.' == missing, 'R' == replacing)
/dev/sdh1:
Magic : a92b4efc
Version : 1.2
Feature Map : 0x1
Array UUID : 07ff9ba9:e8100e68:94c12c1a:3d7ad811
Name : bob:1 (local to host bob)
Creation Time : Mon Mar 4 22:10:29 2019
Raid Level : raid5
Raid Devices : 3
Avail Dev Size : 15627267000 (7451.66 GiB 8001.16 GB)
Array Size : 15627266688 (14903.32 GiB 16002.32 GB)
Used Dev Size : 15627266688 (7451.66 GiB 8001.16 GB)
Data Offset : 261888 sectors
Super Offset : 8 sectors
Unused Space : before=261800 sectors, after=312 sectors
State : clean
Device UUID : 0c9a8237:7e79a439:d4e35b31:659f3c86
Internal Bitmap : 8 sectors from superblock
Update Time : Sun May 30 00:22:45 2021
Bad Block Log : 512 entries available at offset 72 sectors
Checksum : 6ec2604b - correct
Events : 373364
Layout : left-symmetric
Chunk Size : 64K
Device Role : Active device 1
Array State : .AA ('A' == active, '.' == missing, 'R' == replacing)
答案1
看起来很奇怪。你可能必须mdadm --使用覆盖层创建对于这一点(具有正确的数据偏移、块大小和驱动器顺序)。也许第一个驱动器丢失了,因为它似乎首先失败了......
一旦驱动器甚至不再记住其设备角色,基本上就无法使用传统方法进行恢复。两者都说它们是“备用”,因此不知道驱动器是角色 0 还是角色 2,或者根本什么都没有(某些 raid5 设置实际上由于某种原因使用备用驱动器)。所以还不清楚:是否有关于它们的有用数据,如果有的话,它们的顺序是什么。你必须自己决定。
当您执行此操作时,还要检查 SMART 数据,并ddrescue
首先使用这些驱动器是否确实已重新分配或挂起扇区,这些扇区可能会导致 raid 失败。