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

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

我在一台机器上有一个软件阵列

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?

提前致谢。

答案1

您的信息不安全;您已损坏阵列中的一个磁盘,重启后它将不会出现。您的内核可能仍在使用旧的分区表,因为在 fdisk 完成时它正在使用中,但您需要采取以下步骤:

  1. 备份您的数据(这应该是不言而喻的,但我想明确表示,如果此过程不起作用,我不承担任何责任;-)
  2. 磁盘故障:mdadm --fail /dev/md0 /dev/sdf
    • 该阵列现在应显示为降级/proc/mdstat
  3. 从阵列中移除磁盘: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. 阵列现在应该正在重建。监控/proc/mdstat直至完成。
  7. 将数据再次备份到其他位置。将其与第一次备份进行比较,确保只有新文件/更新文件发生了变化。

您应该能够在阵列在线时执行上述所有操作,因为 RAID 10 意味着您至少拥有每个块的 2 个副本。

您的同事对阵列所做的操作是 RAID 阵列中不使用原始磁盘的一个很好的理由。对于未来的阵列,您应该在每个 FD 类型的磁盘上创建一个分区,以便系统知道它们是 RAID 分区,并且任何访问的人都可以看到其上的分区。您只会损失少量空间,而您会获得一个非常大的红旗,告诉人们磁盘正在使用中。

祝你好运!

相关内容