我在Ubuntu系统上使用RAID1软件RAID分区遇到以下问题(10.04 LTS,2.6.32-24服务器,以防万一)。
我的一个磁盘(sdb5)报告了I / O错误,因此被标记为阵列故障。然后使用一个有源设备将阵列降级。因此,我更换了硬盘,克隆了分区表,并将所有新分区添加到我的RAID阵列中。同步后,所有分区最终运行良好,只有2个活动设备-其中一个除外。但是,之前报告了故障磁盘的分区并未将新分区包括为活动设备,而是作为备用磁盘:
md3 : active raid1 sdb5[2] sda5[1]
4881344 blocks [2/1] [_U]
详细的外观显示:
root@server:~# mdadm --detail /dev/md3
[...]
Number Major Minor RaidDevice State
2 8 21 0 spare rebuilding /dev/sdb5
1 8 5 1 active sync /dev/sda5
所以这是一个问题:我如何告诉我的团队将备用磁盘变成活动磁盘?为何将它作为备用设备添加?重新创建或重组数组不是一种选择,因为它是我的根分区。而且在Software Raid HOWTO中找不到关于该主题的任何提示。
任何帮助,将不胜感激。
当前解决方案
我找到了解决问题的方法,但是我不确定这是否是解决问题的实际方法。仔细查看我的团队,我发现sdb5始终被列为备用设备:
mdadm --examine /dev/sdb5
[...]
Number Major Minor RaidDevice State
this 2 8 21 2 spare /dev/sdb5
0 0 0 0 0 removed
1 1 8 5 1 active sync /dev/sda5
2 2 8 21 2 spare /dev/sdb5
因此,将设备sdb5读入数组md3总是导致将设备作为备用设备添加。
最后我只是重新创建了数组
mdadm --create /dev/md3 --level=1 -n2 -x0 /dev/sda5 /dev/sdb5
起作用了。
但是问题仍然对我开放:是否有更好的方法来操纵超级块中的摘要,并告诉阵列将sdb5从备用磁盘转换为活动磁盘?我仍然很想知道答案。