我有一个 3 磁盘 mdadm raid5 卷(由 /dev/sd[abc] 组成),当时正在重塑,要变成 5 个磁盘(添加 /dev/sd[df]),这时服务器电源断电了。这是在 ubuntu 8.10 intrepid 64 位服务器(内核 2.6.27),mdadm 版本 2.6.4 上,从源代码构建。当时 ups 监控守护程序非常好,可以执行以下命令
mdadm --stop /dev/md0
shutdown -P now
当我重新启动并运行该盒子时,我使用以下命令来重新启动突袭,因为它不会自行启动。
mdadm --assemble /dev/md0 /dev/sd[abcdf]
它恢复了,并沿着重塑过程重新启动,但只有 4 个磁盘。/dev/sdf 没有超级块,所以它不会随之而来。我尝试将其重新添加:
mdadm --add /dev/md0 /dev/sdf
但这只是将其添加为热备用,而不是作为 raid 中缺失的第 5 个成员。因此我使用 --remove 将其删除,因为此时的热备用有点无用。更糟糕的是,这会向磁盘添加一个超级块,将其标识为热备用。不过,使用 --zero-superblock 很容易摆脱它。
我想知道的是,我该如何操作这个磁盘,让它回到阵列的正确位置?我没有理由相信数据是坏的,只是超级块坏了。或者现在重塑已经在没有它的情况下取得了进展,现在尝试重新添加它是否还不合适?
/proc/mdstat 的内容:
root@FS1:~# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4]
md0 : active raid5 sda[0] sdd[4] sdc[2] sdb[1]
1953524736 blocks super 0.91 level 5, 512k chunk, algorithm 2 [5/4] [UUU_U]
[======>..............] reshape = 33.4% (326807040/976762368) finish=1175.3min speed=9216K/sec
unused devices: <none>
/etc/mdadm/mdadm.conf 的内容
root@FS1:~# cat /etc/mdadm/mdadm.conf
# mdadm.conf
#
# Please refer to mdadm.conf(5) for information about this file.
#
# by default, scan all partitions (/proc/partitions) for MD superblocks.
# alternatively, specify devices to scan, using wildcards if desired.
DEVICE partitions
# auto-create devices with Debian standard permissions
CREATE owner=root group=disk mode=0660 auto=yes
# automatically tag new arrays as belonging to the local system
HOMEHOST <system>
# instruct the monitoring daemon where to send mail alerts
MAILADDR root
# definitions of existing MD arrays
ARRAY /dev/md0 level=raid5 num-devices=3 UUID=4128dcfb:b5e905ae:60b633ef:af4ede72
# This file was auto-generated on Wed, 15 Jul 2009 09:09:57 -0400
# by mkconf $Id$
mdadm --examine --scan 的输出
root@FS1:~# mdadm --examine --scan
ARRAY /dev/md0 level=raid5 num-devices=5 UUID=4128dcfb:b5e905ae:60b633ef:af4ede72
spares=1
mdadm -D 的输出
root@FS1:~# mdadm -D /dev/md0
/dev/md0:
Version : 00.91.03
Creation Time : Sun Jul 12 15:57:27 2009
Raid Level : raid5
Array Size : 1953524736 (1863.03 GiB 2000.41 GB)
Used Dev Size : 976762368 (931.51 GiB 1000.20 GB)
Raid Devices : 5
Total Devices : 4
Preferred Minor : 0
Persistence : Superblock is persistent
Update Time : Thu Jul 16 23:34:21 2009
State : clean, degraded, recovering
Active Devices : 4
Working Devices : 4
Failed Devices : 0
Spare Devices : 0
Layout : left-symmetric
Chunk Size : 512K
Reshape Status : 33% complete
Delta Devices : 2, (3->5)
UUID : 4128dcfb:b5e905ae:60b633ef:af4ede72 (local to host FS1)
Events : 0.216044
Number Major Minor RaidDevice State
0 8 0 0 active sync /dev/sda
1 8 16 1 active sync /dev/sdb
2 8 32 2 active sync /dev/sdc
3 0 0 3 removed
4 8 48 4 active sync /dev/sdd
答案1
首先,让 md0 设备完成消化现有设置。现在不要跟它捣乱,因为它正忙着执行它唯一的命令 -让阵列恢复到干净的状态!
一旦情况稳定下来,继续删除第五个驱动器的“旧”条目。然后继续将驱动器添加到阵列中,并像最初那样重塑它,尽管这次您将从 4 个磁盘而不是 3 个磁盘开始。