我当前的 mdstat:
$ cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4] [linear] [multipath] [raid0] [raid1] [raid10]
md0 : active raid6 sde[8] sdh[4] sdg[1] sdd[6] sdb[5] sdc[7]
9766914560 blocks super 1.2 level 6, 512k chunk, algorithm 2 [7/6] [UUUUU_U]
unused devices: <none>
这是 mdadm --detail:
$ sudo mdadm --detail /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Fri Apr 26 21:52:21 2013
Raid Level : raid6
Array Size : 9766914560 (9314.46 GiB 10001.32 GB)
Used Dev Size : 1953382912 (1862.89 GiB 2000.26 GB)
Raid Devices : 7
Total Devices : 6
Persistence : Superblock is persistent
Update Time : Tue Mar 28 15:19:34 2017
State : clean, degraded
Active Devices : 6
Working Devices : 6
Failed Devices : 0
Spare Devices : 0
Layout : left-symmetric
Chunk Size : 512K
Name : server:0 (local to host server)
UUID : 7dfb32ef:8454e49b:ec03ac98:cdb2e691
Events : 34230
Number Major Minor RaidDevice State
8 8 64 0 active sync /dev/sde
1 8 96 1 active sync /dev/sdg
4 8 112 2 active sync /dev/sdh
5 8 16 3 active sync /dev/sdb
6 8 48 4 active sync /dev/sdd
10 0 0 10 removed
7 8 32 6 active sync /dev/sdc
我的问题是:
- 我该如何找出被移除的硬盘?没有技巧和猜测,例如从系统中所有可用的硬盘中减去 mdadm 输出中显示的磁盘组 (ls /dev/sd*) 等...
- 为什么 mdadm 可以删除磁盘?如果我运行 smartctl 测试并且成功完成,可以重新添加它吗?
更新 正确答案是 sdf。我通过比较 mdadm 输出中显示的磁盘组和系统中的所有磁盘(sda - 是带有操作系统的启动盘)找到了它,但我仍然觉得这个过程太难了。
答案1
您可以运行mdadm --detail /dev/md0
来获取 RAID 阵列的 UUID,在您的情况下它是“7dfb32ef:8454e49b:ec03ac98:cdb2e691”。
然后运行mdadm --examine /dev/sda
并检查Array UID
它属于哪个。如果相同,并且mdadm --detail /dev/md0
输出中缺少 sda,则很可能是被移除的磁盘。
我无法回答mdadm
移除磁盘的原因,除此之外您应该能够在dmesg
和中找到更多信息/var/log
。
如果这些地方看起来没问题,并且SMART
表明磁盘没问题,那么再次添加它应该是安全的。
我建议您进行配置mdadm --monitor
,以便它运行并监控您的 RAID 集,并在发生任何事情时向您发送电子邮件。
答案2
磁盘阵列中的磁盘顺序很重要。您可以在命令的输出中看到它mdadm --detail /dev/md0
。在您的示例中,它是:
sde sdg sdh sdb sdd missed sdc
如果磁盘已损坏或拔出,则它仍属于 RAID 阵列。在您的示例中,磁盘是通过 mdadm 命令手动从 RAID 阵列中移除的。smartctl
是一个显示磁盘健康状况的好程序。但如果您不知道阵列中有什么磁盘,这个程序就帮不了您。