不久前,我的 raid5 中有一个驱动器出现故障。我认为问题是由于当时电源故障造成的,但最初认为可能是主板上的硬盘控制器(这是我自己组装的系统)。
从那时起,我构建了一个替换系统并将驱动器转移过来并尝试启动它们。我现在得到的是一个驱动器仍然不适合系统启动。
这是我尝试组装时得到的结果:
[root@localhost ~]# mdadm --assemble --force /dev/md0 /dev/sdf1 /dev/sde1 /dev/sdd1 /dev/sda1 -v
mdadm: looking for devices for /dev/md0
mdadm: /dev/sdf1 is identified as a member of /dev/md0, slot 0.
mdadm: /dev/sde1 is identified as a member of /dev/md0, slot 1.
mdadm: /dev/sdd1 is identified as a member of /dev/md0, slot 2.
mdadm: /dev/sda1 is identified as a member of /dev/md0, slot 3.
mdadm: added /dev/sde1 to /dev/md0 as 1
mdadm: added /dev/sdd1 to /dev/md0 as 2
mdadm: added /dev/sda1 to /dev/md0 as 3 (possibly out of date)
mdadm: no uptodate device for slot 8 of /dev/md0
mdadm: added /dev/sdf1 to /dev/md0 as 0
mdadm: /dev/md0 assembled from 3 drives - not enough to start the array.
当我检查驱动器时,我得到以下信息:
[root@localhost ~]# mdadm --examine /dev/sd[a-z]1
/dev/sda1:
Magic : a92b4efc
Version : 1.1
Feature Map : 0x1
Array UUID : 491fdb85:372da78e:8022a675:04a2932c
Name : kenya:0
Creation Time : Wed Aug 21 14:18:41 2013
Raid Level : raid5
Raid Devices : 5
Avail Dev Size : 3906764800 (1862.89 GiB 2000.26 GB)
Array Size : 7813527552 (7451.56 GiB 8001.05 GB)
Used Dev Size : 3906763776 (1862.89 GiB 2000.26 GB)
Data Offset : 262144 sectors
Super Offset : 0 sectors
Unused Space : before=262072 sectors, after=1024 sectors
State : clean
Device UUID : 879d0ddf:9f9c91c5:ffb0185f:c69dd71f
Internal Bitmap : 8 sectors from superblock
Update Time : Thu Feb 5 06:05:09 2015
Checksum : 758a6362 - correct
Events : 624481
Layout : left-symmetric
Chunk Size : 512K
Device Role : Active device 3
Array State : AAAA. ('A' == active, '.' == missing, 'R' == replacing)
mdadm: No md superblock detected on /dev/sdb1.
/dev/sdd1:
Magic : a92b4efc
Version : 1.1
Feature Map : 0x1
Array UUID : 491fdb85:372da78e:8022a675:04a2932c
Name : kenya:0
Creation Time : Wed Aug 21 14:18:41 2013
Raid Level : raid5
Raid Devices : 5
Avail Dev Size : 3906764800 (1862.89 GiB 2000.26 GB)
Array Size : 7813527552 (7451.56 GiB 8001.05 GB)
Used Dev Size : 3906763776 (1862.89 GiB 2000.26 GB)
Data Offset : 262144 sectors
Super Offset : 0 sectors
Unused Space : before=262072 sectors, after=1024 sectors
State : clean
Device UUID : 3a403437:9a1690ea:f6ce8525:730d1d9c
Internal Bitmap : 8 sectors from superblock
Update Time : Thu Feb 5 06:07:11 2015
Checksum : 355d0e32 - correct
Events : 624485
Layout : left-symmetric
Chunk Size : 512K
Device Role : Active device 2
Array State : AAA.. ('A' == active, '.' == missing, 'R' == replacing)
/dev/sde1:
Magic : a92b4efc
Version : 1.1
Feature Map : 0x1
Array UUID : 491fdb85:372da78e:8022a675:04a2932c
Name : kenya:0
Creation Time : Wed Aug 21 14:18:41 2013
Raid Level : raid5
Raid Devices : 5
Avail Dev Size : 3906764800 (1862.89 GiB 2000.26 GB)
Array Size : 7813527552 (7451.56 GiB 8001.05 GB)
Used Dev Size : 3906763776 (1862.89 GiB 2000.26 GB)
Data Offset : 262144 sectors
Super Offset : 0 sectors
Unused Space : before=262072 sectors, after=1024 sectors
State : clean
Device UUID : 7d7ec5fe:b4b55c4e:4e903357:1aa3bae3
Internal Bitmap : 8 sectors from superblock
Update Time : Thu Feb 5 06:07:11 2015
Checksum : da06428d - correct
Events : 624485
Layout : left-symmetric
Chunk Size : 512K
Device Role : Active device 1
Array State : AAA.. ('A' == active, '.' == missing, 'R' == replacing)
/dev/sdf1:
Magic : a92b4efc
Version : 1.1
Feature Map : 0x1
Array UUID : 491fdb85:372da78e:8022a675:04a2932c
Name : kenya:0
Creation Time : Wed Aug 21 14:18:41 2013
Raid Level : raid5
Raid Devices : 5
Avail Dev Size : 3906764800 (1862.89 GiB 2000.26 GB)
Array Size : 7813527552 (7451.56 GiB 8001.05 GB)
Used Dev Size : 3906763776 (1862.89 GiB 2000.26 GB)
Data Offset : 262144 sectors
Super Offset : 0 sectors
Unused Space : before=262072 sectors, after=1024 sectors
State : clean
Device UUID : c091025f:8296517b:0237935f:5cc03cfc
Internal Bitmap : 8 sectors from superblock
Update Time : Thu Feb 5 06:07:11 2015
Checksum : 8819fa93 - correct
Events : 624485
Layout : left-symmetric
Chunk Size : 512K
Device Role : Active device 0
Array State : AAA.. ('A' == active, '.' == missing, 'R' == replacing)
/dev/sdg1:
MBR Magic : aa55
Partition[0] : 808960 sectors at 0 (type 17)
然后就是这个:
[root@localhost ~]# cat /proc/mdstat
Personalities : [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] [linear]
unused devices: <none>
我从启动进入恢复过程中收集了这些信息。系统是centos 6.2。我从一些 irc 帮助中了解到 sda 驱动器与其他驱动器不同步。我相信发生故障的驱动器现在被列为 sdg,但我不确定这一点。我还知道驱动器的顺序现在是 feda(sdf、sde、sdd、sda)。
我已经准备好一个替换驱动器来替换坏掉的驱动器,以便在我可以构建其余部分时插入。我原本打算尝试将其列为从数组中删除,但我无法获得该状态。
我尝试注册并使用 linux-raid 邮件列表,这让我想知道它是否还处于活动状态。 (“交付至[电子邮件受保护]永久失败。”)centos irc 频道的帮助建议从该来源获取进一步的帮助。我现在在这里尝试。
我也阅读了这篇文章,但想在尝试线程末尾的任何建议之前在另一个论坛中询问更具体的意见:http://ubuntuforums.org/showthread.php?t=2276699。
如果有 mdadm 或 linux-raid 的有效电子邮件线程,我愿意在那里发帖。如果可以提供有关此情况的更多数据,请告诉我。
答案1
首先,备份驱动器dd
是一件好事——这是一个非常明智的第一步。
您可以从事件计数器和上次更新时间戳中看到 sda 从数组中删除,但从它删除到上次访问之间没有太大变化。您还可以在 sda 上看到设备状态,其中 0–3 处于活动状态,4 缺失(mdadm 从 0 开始计数);在其他驱动器上,0-2 个处于活动状态,3 和 4 个缺失。因此,您在 RAID5 上遇到了第二个磁盘故障,这当然会导致阵列停止运行。
所以基本上你需要要求mdadm
忽略 sda 已经过时的事实,并无论如何组装阵列。这就是--force
——所以应该已经工作了。您可能只需要添加--run
(或使用--scan
)。我认为这就是这里发生的事情。
另一种可能性是引导脚本已半组装阵列,使设备繁忙。检查(例如,cat
或less
)/proc/mdstat
以确保没有发生这种情况,并且mdadm --stop
存在任何不需要的数组。
您还可以添加--verbose
以更好地了解 mdadm 不组装数组的原因。
阵列组装完毕后,您可以mdadm -a
将新磁盘添加到其中,并且应该立即开始重建。您还应该考虑更换 sda,因为它看起来不稳定(它之前已退出)。
无论如何,将超级块归零是恢复阵列的一种激烈的、近乎最后的方法。这里不应该需要它。