Estendendo o RAID0 com 'mdadm --create --assume-clean'?

2

Eu tinha um array RAID0 de 1 disco que criei com o objetivo de adicionar mais discos a ele, que estava funcionando normalmente. Eu criei com (aproximadamente):

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

Em seguida, adicionei outro disco a ele com:

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

e, de acordo com o manual, mdadm converteu a matriz em RAID4 e começou a ressincronizar. O manual diz que o array será convertido novamente para o RAID0 mais tarde. No entanto, /etc/mdstat diz que levará de 2 a 3 dias para uma re-sincronização completa, e eu estou querendo saber se é possível parar a matriz, matar o superbloco em /dev/sdc e fazer algo como:

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

em vez de esperar pela re-sincronização inútil do RAID4?

Neste momento, o estado da matriz é:

$ 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)
    
por Anton Tykhyy 01.08.2018 / 13:09

1 resposta

2

Aumentar um RAID-0 de 1 disco (essencialmente, dados lineares) para RAID-0 de 2 discos (dados distribuídos) envolve remodelar / redistribuir todos esses dados. A simples criação de um novo RAID resultaria em perda total de dados.

Como tal, a re-sincronização só é inútil se não houver dados no array RAID em primeiro lugar. E, obviamente, sem dados, você pode fazer o que quiser.

Se você for recriar essa matriz RAID do zero, sugiro que também coloque uma tabela de partições em suas unidades e trabalhe com partições. Para unidades não particionadas, é fácil criar uma tabela de partição por acidente e isso danificaria seus metadados RAID.

    
por 01.08.2018 / 13:57