Reconstruindo a matriz RAID 5 do mdadm com várias unidades com falha

0

Eu tinha uma matriz de 5 unidades Raid5 e tive duas unidades com falha. Eu tenho novas unidades para trocar, mas quando eu estou tentando iniciá-lo, reclama '/ dev / md / 0 montado a partir de 3 unidades - não é suficiente para iniciar o array'

os dados do superbloco de uma das unidades originais:

mdadm -E /dev/sdb
/dev/sdb:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x1
     Array UUID : eece6340:50c5f548:fec6e083:8e175d25
           Name : nas2:0  (local to host nas2)
  Creation Time : Sat Jun 11 15:08:47 2016
     Raid Level : raid5
   Raid Devices : 5

 Avail Dev Size : 3906767024 (1862.89 GiB 2000.26 GB)
     Array Size : 7813533696 (7451.57 GiB 8001.06 GB)
  Used Dev Size : 3906766848 (1862.89 GiB 2000.26 GB)
    Data Offset : 262144 sectors
   Super Offset : 8 sectors
   Unused Space : before=262056 sectors, after=176 sectors
          State : clean
    Device UUID : f99f8f44:bbf30563:35183897:5563d56a

Internal Bitmap : 8 sectors from superblock
    Update Time : Sun Aug 12 15:01:12 2018
  Bad Block Log : 512 entries available at offset 72 sectors
       Checksum : 3c38edaa - correct
         Events : 364523

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

e aqui está a saída da tentativa de montagem:

mdadm: /dev/sdb is identified as a member of /dev/md/0, slot 0.
mdadm: /dev/sdf is identified as a member of /dev/md/0, slot 4.
mdadm: /dev/sdc is identified as a member of /dev/md/0, slot 1.
mdadm: added /dev/sdc to /dev/md/0 as 1
mdadm: no uptodate device for slot 2 of /dev/md/0
mdadm: no uptodate device for slot 3 of /dev/md/0
mdadm: added /dev/sdf to /dev/md/0 as 4
mdadm: added /dev/sdb to /dev/md/0 as 0
mdadm: /dev/md/0 assembled from 3 drives - not enough to start the array.
mdadm: looking for devices for further assembly
mdadm: No arrays found in config file or automatically

Existe alguma maneira de clonar dados de superblocos (como dd) em uma nova unidade para permitir que a matriz seja montada?

    
por Neil R Wylie 18.08.2018 / 06:25

2 respostas

2

RAID 5

Trecho do artigo da Wikipédia :

It requires that all drives but one be present to operate. Upon failure of a single drive, subsequent reads can be calculated from the distributed parity such that no data is lost.

Portanto, minha conclusão é que, se essas duas unidades estiverem realmente mortas, agora é impossível montar a matriz, desculpe.

    
por 18.08.2018 / 10:29
2

Você não pode remontar sem perda de dados uma matriz RAID-5 com mais de uma unidade inativa. Em teoria, você poderia ler dados do restante das unidades, mas você teria pedaços faltando no meio.

A estrutura de um 5-disco RAID-5 é algo como isto: D é pedaços de dados, pedaços de paridade P.

12345
DDDDP
DDDPD
DDPDD
DPDDD
PDDDD

Com duas unidades inativas, você tem 8 blocos de dados e 2 blocos de paridade ausentes de cada 20 blocos de dados e 5 blocos de paridade. A maneira como a paridade funciona, o sistema pode recuperar um único pedaço de dados em falta se a paridade estiver intacta (por cada linha no diagrama). Com dois fragmentos de dados ausentes, não há uma maneira única de reconstruir os fragmentos. Portanto, os blocos de paridade restantes são inúteis e você fica com 12 blocos de dados de cada 20. Você perdeu 40% dos dados.

De acordo com a página do manual do mdadm , os blocos são 512 kB por padrão, Assim, você pode encontrar dados intactos de até 1,5 MB. Mas o código do sistema de arquivos não ficará satisfeito em ver grandes partes de metadados ausentes e quaisquer arquivos maiores do que isso seriam com grande probabilidade de estar faltando partes, mesmo se você pudesse encontrar os blocos de dispositivos corretos em que os dados do arquivo estavam localizados.

    
por 18.08.2018 / 12:03