Com o linux softraid, você pode criar um array RAID 10 com apenas dois discos.
Nomes de dispositivos usados abaixo:
md0
é a matriz antiga do tipo / nível RAID1.
md1
é a nova matriz do tipo / nível RAID10.
sda1
e sdb2
são novas partições vazias (sem dados).
sda2
e sdc1
são partições antigas (com dados cruciais).
Substitua nomes para se ajustarem ao seu caso de uso. Use, por exemplo, lsblk
para visualizar seu layout atual.
0) Backup, Backup, Backup, Backup oh e BACKUP
1) Crie a nova matriz (4 dispositivos: 2 existentes, 2 ausentes):
mdadm -v --create /dev/md1 --level=raid10 --raid-devices=4 /dev/sda1 missing /dev/sdb2 missing
Observe que, neste exemplo, o layout sda1
tem uma contraparte ausente e sdb2
outra contraparte ausente. Seus dados md1
não estão seguros neste momento (efetivamente, é RAID0 até você adicionar membros ausentes).
Para visualizar o layout e outros detalhes da matriz criada, use:
mdadm -D /dev/md1
Nota! Você deve salvar o layout da matriz:
# View current mdadm config:
cat /etc/mdadm/mdadm.conf
# Add new layout (grep is to make sure you don't re-add md0):
mdadm --detail --scan | grep "/dev/md1" | tee -a /etc/mdadm/mdadm.conf
# Save config to initramfs (to be available after reboot)
update-initramfs -u
2) Formate e monte. O /dev/md1
deve ser imediatamente utilizável, mas precisa ser formatado e depois montado.
3) Copie arquivos. Use, por exemplo, rsync para copiar dados do RAID 1 antigo para o novo RAID 10. (este é apenas um exemplo de comando, leia as páginas de manual do rsync)
rsync -arHx / /where/ever/you/mounted/the/RAID10
4) Falha na 1ª parte do antigo RAID1 (md0) e adicione-o ao novo RAID10 (md1)
mdadm /dev/md0 --fail /dev/sda2 --remove /dev/sda2
mdadm /dev/md1 --add /dev/sda2
Nota! Isso apagará os dados de sda2
. O md0
ainda deve ser utilizável, mas somente se o outro membro da raid foi totalmente operacional.
Observe também que isso começará os processos de sincronização / recuperação md1
. Para verificar o status, use um dos comandos abaixo:
# status of sync/recovery
cat /proc/mdstat
# details
mdadm -D /dev/md1
Aguarde até a recuperação terminar.
5) Instale o GRUB na nova matriz (supondo que você esteja inicializando a partir dela). Alguns CDs de inicialização / resgate do Linux funcionam melhor.
6) Inicialize na nova matriz. SE FUNCIONAR CORRETAMENTE Destrua a matriz antiga e adicione o disco restante à nova matriz.
PONTO DE RETORNO
Nesse ponto, você destruirá os dados no último membro da matriz md0 antiga. Tenha certeza absoluta de que tudo está funcionando.
mdadm --stop /dev/md0
mdadm /dev/md0 --remove /dev/sdc1
mdadm /dev/md1 --add /dev/sdc1
E novamente - aguarde até a recuperação md1
terminar.
# status of sync/recovery
cat /proc/mdstat
# details
mdadm -D /dev/md1
7) Atualize a configuração do mdadm
Lembre-se de atualizar /etc/mdadm/mdadm.conf
(remover md0).
E salve a configuração no initramfs (disponível após a reinicialização)
update-initramfs -u