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