系统重启后,我的 MDADM 阵列突然显示非常旧的(超过一年)数据。我假设其中一个磁盘(sdd1)大部分时间都处于离线状态,重启后,我现在只看到该磁盘,而不是较新的磁盘(sdc1)。幸运的是,两个磁盘都完好无损,所以我认为我没有丢失任何数据。我的目标是将旧磁盘从阵列中取出,然后将较新的磁盘添加到阵列中。验证并备份数据后,我想重建阵列,以便两个磁盘都能正常工作。
# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : active raid1 sdd1[1]
976630336 blocks super 1.2 [2/1] [_U]
unused devices: <none>
# mdadm --detail /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Wed Feb 27 00:29:21 2013
Raid Level : raid1
Array Size : 976630336 (931.39 GiB 1000.07 GB)
Used Dev Size : 976630336 (931.39 GiB 1000.07 GB)
Raid Devices : 2
Total Devices : 1
Persistence : Superblock is persistent
Update Time : Wed Oct 4 10:55:30 2017
State : clean, degraded
Active Devices : 1
Working Devices : 1
Failed Devices : 0
Spare Devices : 0
Name : hypervisor:0 (local to host hypervisor)
UUID : 3676c254:c804e29a:1150107a:a390f263
Events : 12989
Number Major Minor RaidDevice State
0 0 0 0 removed
1 8 49 1 active sync /dev/sdd1
# mdadm --examine /dev/sdc1
/dev/sdc1:
Magic : a92b4efc
Version : 1.2
Feature Map : 0x0
Array UUID : 3676c254:c804e29a:1150107a:a390f263
Name : hypervisor:0 (local to host hypervisor)
Creation Time : Wed Feb 27 00:29:21 2013
Raid Level : raid1
Raid Devices : 2
Avail Dev Size : 1953260976 (931.39 GiB 1000.07 GB)
Array Size : 976630336 (931.39 GiB 1000.07 GB)
Used Dev Size : 1953260672 (931.39 GiB 1000.07 GB)
Data Offset : 262144 sectors
Super Offset : 8 sectors
State : clean
Device UUID : 67dcc89f:185338b3:9724c8e6:0d437f28
Update Time : Tue Oct 3 22:04:15 2017
Checksum : 75e1922c - correct
Events : 1329213
Device Role : Active device 0
Array State : A. ('A' == active, '.' == missing)
# mdadm --examine /dev/sdd1
/dev/sdd1:
Magic : a92b4efc
Version : 1.2
Feature Map : 0x0
Array UUID : 3676c254:c804e29a:1150107a:a390f263
Name : hypervisor:0 (local to host hypervisor)
Creation Time : Wed Feb 27 00:29:21 2013
Raid Level : raid1
Raid Devices : 2
Avail Dev Size : 1953260976 (931.39 GiB 1000.07 GB)
Array Size : 976630336 (931.39 GiB 1000.07 GB)
Used Dev Size : 1953260672 (931.39 GiB 1000.07 GB)
Data Offset : 262144 sectors
Super Offset : 8 sectors
State : clean
Device UUID : 56c78b79:a587561c:07e7785e:9c6845e2
Update Time : Wed Oct 4 10:55:30 2017
Checksum : ea2a38e7 - correct
Events : 12989
Device Role : Active device 1
Array State : .A ('A' == active, '.' == missing)
请注意,sdc1 的“事件”计数远高于 sdd1。另请注意,没有磁盘显示为故障,但其中一个磁盘 (sdc1) 显示为已移除。
备份 sdc 和 sdd 后,我可以安全地执行以下操作吗:
mdadm /dev/md0 -f /dev/sdd1
mdadm /dev/md0 -r /dev/sdd1
mdadm /dev/md0 -a /dev/sdc1
任何投入将不胜感激。
答案1
不,您不能 setfaulty+remove 阵列的单个驱动器。
最好的办法是取出sdd
并放入sdc
。也许它可以自动检测到,也许不能(因为目前驱动器不包括在内)。
您可以使用命令mdadm
使当前阵列脱机并使阵列联机sdc
,但由于它们可能具有相同的 GUID,因此这可能很难。
顺便说一句,我真的很想知道这里发生了什么。也许sdc
没有raid-autodetect
分区?显示了什么fdisk -lu /dev/sdc
?