我有4个磁盘在我的服务器。 sda和sdb被组合到RAID1并且具有操作系统。 sdc和sdd是第二个RAID1设备,它有一个卷组和一堆LVM。 sdd死了,所以我的数据RAID降级了。 在更换sdd之后(但在添加到RAID之前),grub决定失去主意并拒绝启动。 解决最快的方法是重新安装操作系统,因为没有什么重要的。
我在安装过程中删除了sdc和sdd,以确保它们没有被错误覆盖。 安装完成后,我把驱动器放回去,Centos自动find我的卷组。 sdc不再是RAIDarrays的一部分。
它是分区的/ dev / sdc1 Linux raid自动检测
我的问题是 – 如何使用mdadm重新创buildsdc1,sdd1 RAIDarrays而不会丢失sdc上的数据?
我最好的猜测是先用sdc1创build数组,然后再添加sdd1(所以从sdc重build到sdd)
编辑再次看看/ cat / mdstat的输出后,我注意到一些奇怪的东西。 我的数据磁盘显示为RAIDarrays的一部分,但是我的一个操作系统RAIDarrays丢失了(并且fstab试图将我的交换机连接到我的数据磁盘)。
fdisk / dev / sda 设备引导启动结束块Id系统 / dev / sda1 * 1 32 257008+ fd Linux raid autodetect / dev / sda2 33 2072 16386300 fd Linux raid autodetect / dev / sda3 2073 30401 227552692+ fd Linux raid autodetect
md1应该是/ dev / sda2和/ dev / sdb2,但是缺less
cat / proc / mdstat
个性:[raid1]
md2:激活raid1 sdb1 [1] sda1 [0]
256896 blocks [2/2] [UU]
md3:active raid1 sdc1 [0]
1465135936 blocks [2/1] [U_]
md0:活动raid1 sdb3 [1] sda3 [0]
227552576块[2/2] [UU]
当我尝试创buildmd2时,我得到:
[root @ xen2〜]#mdadm --create / dev / md1 --level = 1 --raid-disks = 2 / dev / sda2 / dev / sdb2
mdadm:/ dev / sda2似乎是raid数组的一部分:
level = raid1 devices = 2 ctime = Wed Aug 15 02:48:06 2012
mdadm:/ dev / sdb2似乎是raid数组的一部分:
level = raid1 devices = 2 ctime = Wed Aug 15 02:48:06 2012
继续创build数组? ñ
mdadm扫描也显示它丢失
[root @ xen2〜]#mdadm --detail --scan ARRAY / dev / md0 level = raid1 num-devices = 2 metadata = 0.90 UUID = 51ef54bd:770bb58e:90183df1:d82a79c7 ARRAY / dev / md3 level = raid1 num-devices = 2 metadata = 0.90 UUID = 2d7dfb1e:6b091396:a7558ec2:4d288e6f ARRAY / dev / md2 level = raid1 num-devices = 2 metadata = 0.90 UUID = ecdd769b:c49d51b6:fe43f166:465b7073
我不确定为什么/ dev / md1在重启之后决定迷路,但重build它是否安全?
是的,您需要使用sdc驱动器以降级模式启动arrays。 然后,您可以重新添加发生故障的驱动器sdd。
我通常使用命令mdadm和选项–assemble来组装并以降级模式启动arrays,只使用一个磁盘。 像这样的东西:
$ mdadm --assemble /dev/md1 /dev/sda2
您可能需要使用-f选项来强制启动降级arrays。
如果这工作正常,您可以继续通过重新添加更换的驱动器。
$ mdadm --re-add /dev/md1 /dev/sdb2
我以前多次使用这些命令,没有遇到任何数据丢失。 当驱动器正常时,他们工作顺利。
注意事项:运行此类命令之前,请备份您的硬盘,以免造成数据丢失。