mdadm
parece não suportar o crescimento de uma matriz do nível 1 ao nível 10.
Eu tenho dois discos no RAID 1. Quero adicionar dois novos discos e converter a matriz em uma matriz RAID 10 de quatro discos.
Minha estratégia atual:
- Faça um bom backup.
- Crie uma matriz RAID 10 de 4 discos degradada com dois discos ausentes.
rsync
the RAID 1 array with the RAID 10 array.
um disco da matriz RAID 1.fail
and remove- Adicione o disco disponível à matriz RAID 10 e aguarde a conclusão da ressincronização.
- Destrua a matriz RAID 1 e adicione o último disco à matriz RAID 10.
O problema é a falta de redundância na etapa 5.
Existe uma maneira melhor?
linux
software-raid
mdadm
Hans Malherbe
fonte
fonte
Respostas:
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
esdb2
são novas partições vazias (sem dados).sda2
esdc1
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):
Observe que, neste exemplo, o layout
sda1
tem uma contraparte ausente esdb2
outra contraparte ausente. Seus dadosmd1
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:
Nota! Você deve salvar o layout da matriz:
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)
4) Falha na 1ª parte do antigo RAID1 (md0) e adicione-o ao novo RAID10 (md1)
Nota! Isso apagará os dados de
sda2
. Omd0
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: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.
E novamente - aguarde até a recuperação
md1
terminar.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)
fonte
Siga o mesmo procedimento que Mark Turner, mas ao criar a matriz de incursões, mencione 2 discos ausentes
E então prossiga com outras etapas.
Em resumo, crie RAID10 com um total de 4 discos (dos quais 2 estão ausentes), ressincronize e adicione outros dois discos depois disso.
fonte
Acabei de passar do LVM em dois RAID 1 de mdadm de disco de 2 TB para o LVM em um RAID 10 de quatro discos (dois originais + dois novos discos).
Como o @aditsu observou, a ordem das unidades é importante ao criar a matriz.
O código acima fornece uma matriz utilizável com dois discos ausentes (adicione números de partição se você não estiver usando discos inteiros). Assim que o terceiro disco for adicionado, ele começará a sincronizar. Eu adicionei o quarto disco antes que o terceiro terminasse a sincronização. Ele apareceu como sobressalente até o terceiro disco terminar e começou a sincronizar.
Passos para a minha situação:
Faça um bom backup.
Crie uma matriz RAID 10 de 4 discos degradada com dois discos ausentes (chamaremos os discos ausentes # 2 e 4).
Diga à esposa para não alterar / adicionar nenhum arquivo de que ela se importe
Falha e remova um disco da matriz RAID 1 (disco 4).
Mova as extensões físicas da matriz RAID 1 para a matriz RAID 10, deixando o disco 2 vazio.
Mate a matriz RAID 1 ativa, adicione esse disco agora vazio (disco 2) à matriz RAID 10 e aguarde a conclusão da ressincronização.
Adicione o primeiro disco removido do RAID 1 (disco 4) à matriz RAID 10.
Dê esposa vá em frente.
Na etapa 7, acho que a unidade 1, 2 ou OR pode falhar (durante a ressincronização do disco 4) sem matar a matriz. Se a unidade 3 falhar, os dados na matriz são brindados.
fonte
Eu mudei meu raid1 para raid10 agora e enquanto esta página me ajudou, mas há algumas coisas ausentes nas respostas acima. Especialmente meu objetivo era manter os horários de nascimento ext4.
a configuração foi:
como já foi dito antes: a etapa zero deve ser backup e sempre pode haver algo errado no processo, resultando em dataloss extremo
CÓPIA DE SEGURANÇA
configuração do novo ataque
criar um novo ataque
(eu achei que o layout é importante. o 2º e o 4º parecem ser as duplicatas em um ataque padrão 'near')
migrar
agora recuperando os dados ... eu estava primeiro tentando usar o rsync que funcionava, mas não conseguia manter o nascimento ... use o dd para clonar do antigo ataque para o novo
ESPERE POR ISSO,
você pode verificar enviando USR1 para esse processo
consertar o ataque
gparted é uma ótima ferramenta: você deve verificar e corrigir a partição e redimensioná-la para o tamanho máximo desse disco com apenas alguns cliques do mouse;)
defina um novo uuid para essa partição e atualize seu fstab com ele (mude o uuid)
armazene seu ataque em conf
e remova o antigo
destruindo o antigo
falhar no primeiro e adicioná-lo ao novo ataque
então faça gpt nesse dispositivo e defina uma nova partição vazia
ESPERE POR ISSO,
você pode verificar com
pare o segundo
então faça gpt nesse último dispositivo e defina uma nova partição vazia novamente
Aguarde novamente
fonte
Eu fiz isso com o LVM. Configuração inicial: - sda2, sdb2 - e criou o raid1 md1 no topo. sda1 e sdb1 foram usados para a segunda raid1 para a partição / boot. - md1 era pv no espaço do grupo de volumes, com alguns lvm nele.
Adicionei discos sdc e sdd e criei partições como no sda / sdb.
Tão:
criou md10 como:
mdadm --criar / dev / md10 --nível raid10 --raid-devices = 4 / dev / sdc2 ausente / dev / sdd2
estender vg nele:
pvcreate / dev / md10 vgextend espaço / dev / md10
volumes movidos de md1 para md10:
pvmove -v / dev / md1 / dev / md10
(aguarde a conclusão) 4. reduza o grupo de volumes:
Parar matriz md1:
mdadm -S / dev / md1
adicione discos do md1 antigo para o md10:
mdadm -a / dev / md10 / dev / sda2 / dev / sdb2
atualize a configuração em /etc/mdadm/mdadm.conf:
mdadm -E --scan >> / dev / mdadm / mdadm.conf
(e remova lá md1 velho)
Tudo feito no sistema ativo, com volumes ativos usados para kvm's;)
fonte