使用 mdadm 构建的 RAID 5 以降级模式启动。这是正常的吗?

使用 mdadm 构建的 RAID 5 以降级模式启动。这是正常的吗?

我正在 CentOS 7 安装 (10x1TB) 上设置一组新驱动器,但是在构建过程中我看到了一些烦人的情况。

当我尝试构建阵列时,它会立即被识别,但指示错误状态(降级,丢失一个磁盘。)

完整的构建命令是:

mdadm --create /dev/md1 --level=5 --raid-devices=9 /dev/sde1 /dev/sdg1 /dev/sdc1 /dev/sdd1 /dev/sdf1 /dev/sdl1 /dev/sdj1 /dev/sdi1 /dev/sdm1 --spare-devices=1 /dev/sdk1

不过,我随后在没有备用驱动器的情况下尝试了相同的操作:

mdadm --create /dev/md1 --level=5 --raid-devices=9 /dev/sde1 /dev/sdg1 /dev/sdc1 /dev/sdd1 /dev/sdf1 /dev/sdl1 /dev/sdj1 /dev/sdi1 /dev/sdm1

然后是三驱动器阵列的变体:

mdadm --create /dev/md1 --level=5 --raid-devices=3 /dev/sdj1 /dev/sdi1 /dev/sdm1

mdadm --create /dev/md1 --level=5 --raid-devices=3 /dev/sde1 /dev/sdg1 /dev/sdc1

在所有情况下,新阵列都会以预期的可用大小(变体中为 8TB 和 2TB)进行初始化。该阵列在重建期间也可用,我可以读取和写入文件。

奇怪的是,当使用备用驱动器进行构建时,备用驱动器显示出大量的读/写活动,这意味着它以某种方式参与了构建。

基本上,这是正常的吗?如果不正常,我做错了什么?

编辑:

这是以下内容的输出:mdadm --detail /dev/md1

/dev/md1:
        Version : 1.2
  Creation Time : Sun Jan  4 00:00:22 2015
     Raid Level : raid5
     Array Size : 7813042176 (7451.10 GiB 8000.56 GB)
  Used Dev Size : 976630272 (931.39 GiB 1000.07 GB)
   Raid Devices : 9
  Total Devices : 10
    Persistence : Superblock is persistent

    Update Time : Sun Jan  4 00:05:33 2015
          State : clean, degraded, recovering 
 Active Devices : 8
Working Devices : 10
 Failed Devices : 0
  Spare Devices : 2

         Layout : left-symmetric
     Chunk Size : 512K

 Rebuild Status : 0% complete

           Name : localhost.localdomain:1  (local to host localhost.localdomain)
           UUID : f2d4f470:9d5022bf:a397b5a0:45b94d28
         Events : 72

    Number   Major   Minor   RaidDevice State
       0       8       65        0      active sync   /dev/sde1
       1       8       97        1      active sync   /dev/sdg1
       2       8       33        2      active sync   /dev/sdc1
       3       8       49        3      active sync   /dev/sdd1
       4       8       81        4      active sync   /dev/sdf1
       5       8      177        5      active sync   /dev/sdl1
       6       8      145        6      active sync   /dev/sdj1
       7       8      129        7      active sync   /dev/sdi1
      10       8      193        8      spare rebuilding   /dev/sdm1

       9       8      161        -      spare   /dev/sdk1

答案1

是的,这是正常的。当您第一次创建数组时,必须计算并写入奇偶校验块,这就是您所看到的。如果您知道驱动器已填满零,则可以使用开关--assume-clean直接mdadm跳过初始重新同步。如果驱动器实际上没有填充零,那么将来对阵列执行奇偶校验检查将报告许多错误,因为您从未计算出正确的奇偶校验。

另外仅供参考,不建议使用 raid5 创建如此大的阵列,因为第二个驱动器在重建之前发生故障的可能性越来越高。您可能想改用 raid6。

相关内容