我在一台机器上有一个软件阵列
root@c ~# mdadm --query --detail /dev/md0 /dev/md0: Version : 0.90 Creation Time : Mon Mar 17 10:22:38 2014 Raid Level : raid10 Array Size : 976772096 (931.52 GiB 1000.21 GB) Used Dev Size : 488386048 (465.76 GiB 500.11 GB) Raid Devices : 4 Total Devices : 4 Preferred Minor : 0 Persistence : Superblock is persistent Update Time : Mon Jan 19 10:30:49 2015 State : clean Active Devices : 4 Working Devices : 4 Failed Devices : 0 Spare Devices : 0 Layout : far=2 Chunk Size : 256K UUID : e21d2907:a7b46e36:220b319d:884b2099 Events : 0.296 Number Major Minor RaidDevice State 0 8 32 0 active sync /dev/sdc 1 8 48 1 active sync /dev/sdd 2 8 64 2 active sync /dev/sde 3 8 80 3 active sync /dev/sdf
md0是一个RAID-10阵列.一位同事在/ dev / sdf上创建了一个fdisk并在那里创建了三个linux分区.目前md0工作正常,但我担心服务器重启时会发生什么.
我的信息安全吗? fdisk是否摧毁了这对RAID1中的一个?如何在不损坏数组的情况下修复sdf?
提前致谢.
解决方法
您的信息不安全;你已经销毁了阵列中的一个磁盘,它不会在重新启动时出现.您的内核可能仍在使用旧分区表,因为它在fdisk完成时正在使用,但您需要执行以下步骤:
>备份你的数据(不用多说,但我想明确表示如果这个程序不起作用,我不承担任何责任;-)
>磁盘失败:mdadm –fail / dev / md0 / dev / sdf
>现在,数组应该在/ proc / mdstat中显示为降级
>从阵列中删除磁盘:mdadm –remove / dev / md0 / dev / sdf
>磁盘现在应该从/ proc / mdstat消失了
>清除分区表:dd if = / dev / zero of = / dev / sdf bs = 1k count = 1
>将磁盘重新添加到阵列:mdadm –add / dev / md0 / dev / sdf
>现在阵列应该重建.监视/ proc / mdstat直到完成.
>将您的数据再次备份到其他位置.将其与第一个备份进行比较,并确保只更改了新的/更新的文件.
在阵列联机时,您应该能够完成上述所有操作,因为RAID 10意味着每个块至少有2个副本.
您的同事对阵列所做的是不在RAID阵列中使用原始磁盘的充分理由.对于将来的阵列,您应该在FD类型的每个磁盘上创建一个分区,以便系统知道它们是RAID分区,并且任何出现的人都会在其上看到分区.你只会失去一点点空间,你会得到一个非常大的红旗,告诉人们磁盘正在使用中.
祝好运!