Como converter LV ou MD RAID1 e 0 para RAID5 sem perda de dados
Neste tutorial explicarei como converter de RAID 0 ou 1 para RAID 5. Como converter um software Linux mdadm ou LVM RAID1 (0) para RAID5 enquanto preserva todos os dados armazenados.
- Como transformar RAID1 (espelho) em RAID5 (paridade)
- Como mudar RAID 0 para RAID5 (parity)
- Convertendo LVRAID1 a LVRAID5
- Como converter LVRAID0 em LVRAID5
- Como recuperar dados de arrays RAID danificados
- Conclusão
- Perguntas e respostas
- Comentários
RAID O arrays são notados pela sua alta velocidade de acesso aos dados e são apenas utilizados para o aumento significativo da velocidade de leitura/escrita dos dados. Mas a sua fiabilidade e tolerância a falhas deixam muito a desejar. Porque, em caso de falha de pelo menos uma unidade, toda a informação armazenada não estará disponível. Restaurá-lo é um trabalho extremamente difícil, e os dados que podem ser obtidos são garantidamente danificados. Este tipo dificilmente pode ser considerado uma matriz, uma vez que não há redundância.
O tipo RAID1 é notado pela sua fiabilidade e tolerância a falhas porque todos os dados são espelhados, criando um completo “espelho” na segunda unidade. Mas a velocidade de leitura/escrita sofre e não pode corresponder à velocidade de trabalho como no tipo “zero” tipo.
Se tiver uma unidade adicional, o tipo “primeiro” pode ser estendido até ao nível “quinto”. Isto, por sua vez, proporcionará bónus de fiabilidade adicionais em comparação com o nível “zero”, bem como aumentará significativamente a velocidade de leitura/escrita em comparação com o tipo “first”. O resultado é um conjunto RAID 5 razoavelmente fiável, tolerante a falhas e rápido.
Parâmetro | RAID 0 | RAID 1 | RAID 5 |
---|---|---|---|
Estrutura | Striping | Espelhamento | Striping com Paridade |
Número de Discos | Mínimo 2 | Mínimo 2 | Mínimo 3 |
Desempenho | Alto | Médio | Alto |
Uso do Espaço | 100% | 50% | (n-1)/n |
Duração | Baixa | Alta | Média |
Recuperação | Nenhuma | Fácil | Mais Complexa |
Casos de Uso | Para Velocidade | Para Dados Críticos | Para Equilíbrio entre Velocidade e Confiabilidade |
Como transformar RAID1 (espelho) em RAID5 (paridade)
Então, temos um software md_RAID1 criado num sistema operativo Linux. Este conjunto é composto por dois discos.
Temos de o converter para RAID5 e adicionar mais um disco, ao mesmo tempo que precisamos da informação sobre ele para ficar onde está. Existem vários ficheiros na unidade: fotografias, vídeos, documentos, etc.
É recomendado fazer uma cópia de segurança antes de iniciar a operação de conversão, uma vez que informações importantes podem ser perdidas no processo de execução incorrecta de comandos.
Abrir um terminal, para executar os comandos como raiz, executar o comando:
sudo -i
introduzir a palavra-passe.
Próximo, se a matriz estiver montada tem de a desmontar, introduzindo o seguinte comando:
umount /dev/md0
ou
umount /mnt
Se o sistema disser que o alvo está ocupado, tente forçá-lo:
umount -f /dev/md0
Próximo, para parar o RAID1, executar o seguinte comando:
mdadm --stop /dev/md0
(md0 ou outro nome para ver o caminho)
where md0 - é o identificador do nosso RAID.
Se descarregar deste Raid, é claro que não poderá parar e será necessário usar algum LiveCD.
Próximo, é necessário substituir os metadados do antigo RAID1 criando um RAID5 sobre ele usando os mesmos discos que faziam parte do RAID1, sdb e sdc e introduzir o seguinte comando:
mdadm --create /dev/md0 -a sim -l 5 -n 2 /dev/sdb1 /dev/sdc1
onde l5 - definir o nível da matriz,
n2 - número de discos que o compõem e depois especificar esses discos.
Após executar o comando, o programa irá avisá-lo que estas unidades já estão em uso em RAID1, pressione Enter para continuar.
Para verificar se a conversão foi bem sucedida, introduza o comando:
cat /proc/mdstat
Agora temos de esperar que a reconstrução do RAID5 esteja concluída, as percentagens mostram o seu estado.
Em conclusão, o comando cat /proc/mdstat irá mostrar os seguintes dados.
Pode então adicionar o novo disco ao array e torná-lo um array RAID5 completo. O novo disco será adicionado como um disco de reserva. Para o adicionar, introduza o seguinte comando:
mdadm --add /dev/md0 /dev/sdd1
Então, é necessário estender o Raid até três unidades activas usando a unidade de reserva com este comando:
mdadm --grow /dev/md0 --raid-disks=3
Vejamos o que temos com o comando:
cat /proc/mdstat
Agora no Raid estão envolvidos 3 discos sdb, sdc, sdd e iniciou-se o processo de mudança (reshap).
A percentagem mostra o seu progresso, à espera do fim.
Finalmente, verifique se existem erros na matriz de discos com o seguinte comando:
e2fsck -f /dev/md0
e expande-o com o seguinte comando:
resize2fs -p /dev/md0
Finalmente, actualize o ficheiro de configuração executando o seguinte comando:
mdadm --examine --scan >> /etc/mdadm.conf
Se não houver falhas no processo de execução destes comandos, todos os dados que estavam no RAID 1 serão migrados para o novo conjunto RAID 5.
Monte o disco e verifique que todos os ficheiros permanecem intactos e que o nível da matriz foi alterado para o nível cinco.
Como mudar RAID 0 para RAID5 (parity)
Não há forma de converter de RAID0 para RAID5 sem formatação e sem perda de dados. Mas em vez disso há uma forma rápida de conversão usando um único comando.
Migrar de RAID0 para RAID5 só é possível quando se utilizam dois discos onde o RAID0 se sobrepõe convenientemente ao RAID5. Isto irá simplesmente alterar o nível RAID sem afectar a informação nos discos.
Este comando converte RAID 0 com duas unidades para RAID 5 com três unidades.
mdadm --grow /dev/md0 --level=5 --raid-devices=3 --add /dev/sdd --backup-file=/tmp/grow_md0.bak
Você deve desmontar a unidade antes de fazer isto.
Verifiquemos com o comando:
cat /proc/mdstat
À espera que termine reshap-а
Convertido para RAID-5 pode adicionar mais discos à matriz como mencionei acima:
mdadm --add /dev/md0 /dev/sdc1
Após reiniciar em Gestão de Disco, o seu nome mudará para RAID5.
Se existem mais de duas unidades em RAID 0, é necessário primeiro reduzir o número de unidades antes de convertê-lo para RAID5.
Convertendo LVRAID1 a LVRAID5
Se tiver usado a funcionalidade LVM para criar uma matriz RAID, neste caso pode converter um tipo para outro usando o comando:
lvconvert
Deixe correr um comando
pvdisplay
para ver informação sobre um grupo de discos.
Para mais detalhes sobre como criar um RAID MD e LV, por favor veja um dos vídeos acima.
Então, para iniciar a conversão, precisamos de desmontar o volume lógico. Introduza o comando:
umount /dev/vg1/lv1
Para converter o nível RAID, introduza o seguinte comando:
lvconvert --type raid5 /dev/vg1/lv1
Agora resta adicionar uma terceira unidade ao grupo de unidades existente, com o comando:
vgextend vg1 /dev/sdd1
Na execução, o programa avisá-lo-á de que a unidade já foi particionada, digite yes para confirmar e prima enter.
Para ver se a unidade foi adicionada ao grupo, execute o comando:
pvdisplay
Como pode ver, há 3 discos envolvidos no grupo.
Remontamos a nossa unidade e abrimo-la no gestor de ficheiros, pois pode ver todos os dados que restam onde deveriam estar beе.
Como converter LVRAID0 em LVRAID5
O mesmo comando é usado para converter RAID 0 para RAID 5. A única coisa é adicionar um terceiro disco ao grupo antes de realizar a conversão, caso contrário o sistema informará que não tem espaço suficiente para realizar este comando.
Adicionamos um terceiro disco:
vgextend vg1 /dev/sdd1
E para converter o nível RAID, introduza o seguinte comando:
lvconvert --type raid5 /dev/vg1/lv1
Montamos a nossa matriz e vemos o que resta nela. Como se pode ver, todos os ficheiros estão no seu lugar.
Como recuperar dados de arrays RAID danificados
Se ocorrer uma falha durante a conversão de um nível RAID para outro, ou se a informação for acidentalmente sobrescrita, utilizar software de recuperação de dados - Hetman RAID Recovery. O utilitário lê toda a informação do sistema sobre o controlador, a placa mãe ou o software em que a matriz de discos foi criada.
Reconstruirá o RAID danificado e permitirá a cópia da informação perdida a partir dele.
Pode ler mais detalhes sobre a recuperação RAID MD LV num dos vídeos acima, deixo a ligação na descrição.
Conclusão
A comutação de um tipo RAID para outro é feita em poucas etapas. Primeiro converta a matriz para um tipo RAID intermédio e depois volte ao tipo que pretende. Por exemplo, para converter de "primeiro" digite para "sexto" primeiro convertê-lo-ia para "quinto" nível e só depois disso pode convertê-lo para sexto" nível.