一个软件RAID10的磁盘被重新分区。 该怎么办?

我在一台机器上有一个软件arrays

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-10arrays。 一位同事在/ dev / sdf上创build了一个fdisk,并在那里创build了三个linux分区。 目前md0工作正常,但我担心当服务器将重新启动会发生什么。

我的信息安全吗? fdisk是否毁坏了这对RAID1中的一个? 如何修复SDF而不损坏数组?

提前致谢。

您的信息不安全; 你已经销毁了arrays中的一个磁盘,并且在重启时不会出现。 你的内核可能仍然在使用旧的分区表,因为它在fdisk完成时正在使用,但你需要采取以下步骤:

  1. 备份你的数据(应该不用说了,但是我想说清楚,如果这个过程不起作用,我不承担任何责任;-)
  2. 磁盘失败: mdadm --fail /dev/md0 /dev/sdf
    • 该数组现在应显示为/proc/mdstat降级
  3. 从arrays中删除磁盘: mdadm --remove /dev/md0 /dev/sdf
    • 磁盘现在应该从/proc/mdstat消失
  4. 清除分区表: dd if=/dev/zero of=/dev/sdf bs=1k count=1
  5. 将磁盘重新添加到数组: mdadm --add /dev/md0 /dev/sdf
  6. arrays现在应该重build。 Monitor /proc/mdstat直到完成。
  7. 将数据再次备份到不同的位置。 将其与第一个备份进行比较,并确保只有新的/更新的文件已经更改。

在arrays处于联机状态时,您应该可以执行以上所有操作,因为RAID 10意味着每块至less有两个副本。

您的同事对arrays做了什么是在RAIDarrays中不使用原始磁盘的一个很好的理由。 对于将来的arrays,您应该在FDtypes的每个磁盘上创build一个分区,以便系统知道他们是RAID分区,任何出现故障的人都会看到分区。 你只会失去很小的空间,你会得到一个非常大的红旗,告诉人们磁盘正在使用。

祝你好运!