mdadm RAID5 3 * 3TB, 1 Unidade com dados

1

Eu tenho um disco ( sdd ) no qual atualmente armazenei meus dados. Agora tenho dois novos discos de 3 TB ( sdb&sdc ) e quero criar uma matriz RAID5 em todos os três discos.

  • sdb : tabela gpt, partição vazia sdb1
  • sdc : tabela gpt, partição vazia sdc1
  • sdd : gpt table, btrfs-partição sdd1 com meus dados

Meu plano é assim:

  • Criar matriz RAID5 md0 over sdb1 e sdc1
  • Crie um sistema de arquivos btrfs nele.
  • Copie os dados de sdd1 para md0
  • Re-particionar (= limpar) sdd
  • Cresça a matriz em sdd1

Atualmente estou preso na criação do array RAID5 de 2 discos. Eu construí a matriz

# mdadm --create --verbose /dev/md0 --level=5 --raid-devices=2 /dev/sdc1 /dev/sdb1
mdadm: layout defaults to left-symmetric
mdadm: layout defaults to left-symmetric
mdadm: chunk size defaults to 512K
mdadm: size set to 2900832256K
mdadm: automatically enabling write-intent bitmap on large array
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.

e /proc/mdstat mostram que está fazendo a sincronização inicial: Eu tenho um disco ( sdd ) no qual atualmente tenho armazenado meus dados. Agora tenho dois novos discos de 3 TB ( sdb&sdc ) e quero criar uma matriz RAID5 em todos os três discos.

  • sdb : tabela gpt, partição vazia sdb1
  • sdc : tabela gpt, partição vazia sdc1
  • sdd : gpt table, btrfs-partição sdd1 com meus dados

Meu plano é assim:

  • Criar matriz RAID5 md0 over sdb1 e sdc1
  • Crie um sistema de arquivos btrfs nele.
  • Copie os dados de sdd1 para md0
  • Re-particionar (= limpar) sdd
  • Cresça a matriz em sdd1

Atualmente estou preso na criação do array RAID5 de 2 discos. Eu construí a matriz

# mdadm --create --verbose /dev/md0 --level=5 --raid-devices=2 /dev/sdc1 /dev/sdb1
mdadm: layout defaults to left-symmetric
mdadm: layout defaults to left-symmetric
mdadm: chunk size defaults to 512K
mdadm: size set to 2900832256K
mdadm: automatically enabling write-intent bitmap on large array
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.

e /proc/mdstat mostram que está fazendo a sincronização inicial:

Personalities : [raid6] [raid5] [raid4] [linear] [multipath] [raid0] [raid1] [raid10]
        md0 : active raid5 sdb1[2] sdc1[0]
          2900832256 blocks super 1.2 level 5, 512k chunk, algorithm 2 [2/1] [U_]
          [>....................]  recovery =  0.6% (19693440/2900832256) finish=308.8min speed=155487K/sec
          bitmap: 0/22 pages [0KB], 65536KB chunk

    unused devices: <none>

top mostra que, durante esse tempo, md (adm) usa ~ 35% de CPU:

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
  989 root      20   0       0      0      0 S  29.1  0.0   0:17.69 md0_raid5
  994 root      20   0       0      0      0 D   6.6  0.0   0:03.54 md0_resync

Até aí tudo bem. Isso deve levar ~ 6 horas. Na minha primeira tentativa eu tive que reiniciar meu servidor e, assim, parar a matriz após ~ 5h e a segunda vez que minha unidade sdb desapareceu misteriosamente, então eu também tive que reiniciar o sistema.

O array começou automaticamente, mas a barra de progresso desapareceu:

Personalities : [raid6] [raid5] [raid4] [linear] [multipath] [raid0] [raid1] [raid10]      
md127 : active (auto-read-only) raid5 sdb1[2] sdc1[0]
      2900832256 blocks super 1.2 level 5, 512k chunk, algorithm 2 [2/1] [U_]
      bitmap: 0/22 pages [0KB], 65536KB chunk

unused devices: <none>

e top não informam uso da CPU.

Por isso, tentei pará-lo e montá-lo manualmente:

~# mdadm --stop /dev/md127
mdadm: stopped /dev/md127
~# mdadm --assemble --verbose /dev/md0 /dev/sdc1 /dev/sdb1
mdadm: looking for devices for /dev/md0
mdadm: /dev/sdc1 is identified as a member of /dev/md0, slot 0.
mdadm: /dev/sdb1 is identified as a member of /dev/md0, slot 1.
mdadm: added /dev/sdb1 to /dev/md0 as 1
mdadm: added /dev/sdc1 to /dev/md0 as 0
mdadm: /dev/md0 has been started with 1 drive (out of 2) and 1 rebuilding.

Embora diga que está sendo reconstruído, o mdstat não mostra nenhum sinal disso:

Personalities : [raid6] [raid5] [raid4] [linear] [multipath] [raid0] [raid1] [raid10] 
md0 : active (auto-read-only) raid5 sdc1[0] sdb1[2]
      2900832256 blocks super 1.2 level 5, 512k chunk, algorithm 2 [2/1] [U_]
      bitmap: 0/22 pages [0KB], 65536KB chunk

unused devices: <none>

também top novamente não mostra uso da CPU.

Por isso, pesquisei na Web um método para forçar manualmente uma sincronização e encontrei --update=resync , mas tentar isso também não deu uma vitória:

~# mdadm --stop /dev/md0
mdadm: stopped /dev/md0
~# mdadm --assemble --verbose --force --run --update=resync /dev/md0 /dev/sdc1 /dev/sdb1
mdadm: looking for devices for /dev/md0
mdadm: /dev/sdc1 is identified as a member of /dev/md0, slot 0.
mdadm: /dev/sdb1 is identified as a member of /dev/md0, slot 1.
mdadm: Marking array /dev/md0 as 'clean'
mdadm: added /dev/sdb1 to /dev/md0 as 1
mdadm: added /dev/sdc1 to /dev/md0 as 0
mdadm: /dev/md0 has been started with 1 drive (out of 2) and 1 rebuilding.
root@server:~# cat /proc/mdstat 
Personalities : [raid6] [raid5] [raid4] [linear] [multipath] [raid0] [raid1] [raid10] 
md0 : active (auto-read-only) raid5 sdc1[0] sdb1[2]
      2900832256 blocks super 1.2 level 5, 512k chunk, algorithm 2 [2/1] [U_]
      bitmap: 0/22 pages [0KB], 65536KB chunk

unused devices: <none>

(ainda sem uso da CPU)

Depois de dois dias tentando consertá-lo eu ficaria muito grato por qualquer ajuda ou conselho

    
por voogheag 31.12.2017 / 19:33

1 resposta

0

Como não há nada na matriz de ataque, a opção mais fácil é simplesmente apagar tudo e começar de novo:

  • mdadm /dev/md127 --fail /dev/sdb1; mdadm /dev/md127 --fail /dev/sdc1; mdadm /dev/md127 --remove failed
  • wipefs -a /dev/sdb1; wipefs -a /dev/sdc1

Incidentalmente, recomendo criar um array RAID 5 degradado e adicionar o terceiro disco a ele. Uma reconstrução geralmente é mais rápida do que uma reformulação, embora haja uma chance maior de perda de dados se um disco falhar durante a reconstrução (você tem um backup, não é?)

  • mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 /dev/sdc1 /dev/sdb1 missing
  • Crie o novo sistema de arquivos
  • Copie os dados
  • wipefs -a /dev/sdd1
  • mdadm /dev/md0 --add /dev/sdd1
por 20.01.2018 / 04:05