使用“mdadm --create --assume-clean”扩展 RAID0?

使用“mdadm --create --assume-clean”扩展 RAID0?

我创建了一个 1 磁盘 RAID0 阵列,目的是最终向其添加更多磁盘,该阵列工作正常。我用(大约)创建它:

$ mdadm --create /dev/md0 --raid-devices=1 --level=0 /dev/sdb -f

然后我添加了另一个磁盘:

 $ mdadm --grow /dev/md0 --add /dev/sdc --raid-devices=2

并按照手册mdadm将阵列转换为 RAID4 并开始重新同步。手册上说阵列稍后将转换回RAID0。但是,/etc/mdstat说完全重新同步需要 2-3 天,我想知道是否可以停止阵列,杀死 上的超级块/dev/sdc,然后执行以下操作:

$ mdadm --create --assume-clean --verbose /dev/md0 --chunk=512 \
    --level=0 --raid-devices=2 /dev/sdb /dev/sdc

而不是等待无用的 RAID4 重新同步?

现在,数组状态是:

$ mdadm --detail /dev/md0
/dev/md0:
        Version : 1.2
  Creation Time : XXXXXXXXXXXXXXXX
     Raid Level : raid4
     Array Size : 11718754304 (11175.88 GiB 12000.00 GB)
  Used Dev Size : 11718754304 (11175.88 GiB 12000.00 GB)
   Raid Devices : 3
  Total Devices : 2

    Update Time : XXXXXXXXXXXXXXXX
          State : clean, FAILED, reshaping
 Active Devices : 1
Working Devices : 2
 Failed Devices : 0
  Spare Devices : 1

     Chunk Size : 512K

sistency Policy : resync

 Reshape Status : 2% complete
  Delta Devices : 1, (2->3)

...

[root@centos7 ~]# mdadm --stop /dev/md0
[root@centos7 ~]# mdadm -E /dev/sdb
/dev/sdb:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x44
     Array UUID : 5978222a:8f2c320c:c7059108:c3d6dc41
           Name : centos7:0  (local to host centos7)
  Creation Time : Sat Apr 28 05:15:00 2018
     Raid Level : raid4
   Raid Devices : 3

 Avail Dev Size : 23437508608 (11175.88 GiB 12000.00 GB)
     Array Size : 23437508608 (22351.75 GiB 24000.01 GB)
    Data Offset : 262144 sectors
     New Offset : 260096 sectors
   Super Offset : 8 sectors
          State : clean
    Device UUID : 9a75cd7e:bb469dab:2e0db890:69a68f54

  Reshape pos'n : 620094464 (591.37 GiB 634.98 GB)
  Delta Devices : 1 (2->3)

    Update Time : Wed Aug  1 06:12:00 2018
  Bad Block Log : 512 entries available at offset 8 sectors
       Checksum : d239a780 - correct
         Events : 608

     Chunk Size : 512K

   Device Role : Active device 0
   Array State : AA. ('A' == active, '.' == missing, 'R' == replacing)
[root@centos7 ~]# mdadm -E /dev/sdc
/dev/sdc:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x46
     Array UUID : 5978222a:8f2c320c:c7059108:c3d6dc41
           Name : centos7:0  (local to host centos7)
  Creation Time : Sat Apr 28 05:15:00 2018
     Raid Level : raid4
   Raid Devices : 3

 Avail Dev Size : 23437508608 (11175.88 GiB 12000.00 GB)
     Array Size : 23437508608 (22351.75 GiB 24000.01 GB)
    Data Offset : 262144 sectors
     New Offset : 260096 sectors
   Super Offset : 8 sectors
Recovery Offset : 620094464 sectors
          State : clean
    Device UUID : ce6e93f9:729557dc:a1afc6a4:39b954f9

  Reshape pos'n : 620094464 (591.37 GiB 634.98 GB)
  Delta Devices : 1 (2->3)

    Update Time : Wed Aug  1 06:12:00 2018
  Bad Block Log : 512 entries available at offset 264 sectors
       Checksum : 5b8389b4 - correct
         Events : 608

     Chunk Size : 512K

   Device Role : Active device 1
   Array State : AA. ('A' == active, '.' == missing, 'R' == replacing)

答案1

将 1 磁盘 RAID-0(本质上是线性数据)发展为 2 磁盘 RAID-0(条带数据)需要重新调整/重新分配所有数据。简单地创建一个新的 RAID 会导致数据完全丢失。

因此,只有当 RAID 阵列上本来就没有数据时,重新同步才有用。显然,没有数据你就可以做任何你想做的事。

如果您要从头开始重新创建 RAID 阵列,我建议您还在驱动器上放置一个分区表,然后使用分区。对于未分区的驱动器,很容易意外创建分区表,这样做会损坏您的 RAID 元数据。

相关内容