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.
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.
Quais são as precauções de segurança que devem ser tomadas antes de realizar uma conversão de RAID?
É possível converter um RAID usando ferramentas de software, ou é necessário hardware especializado?
É possível converter um RAID usando ferramentas de software, como o RAID Reconstructor da Runtime Software. No entanto, para a maioria dos tipos de RAID, é necessário hardware especializado para reconstruir o array. Por exemplo, para um RAID 5, é necessário um controlador de RAID dedicado para reconstruir o array.
Qual é o processo para converter um RAID 1 ou RAID 0 em RAID 5?
É possível converter um RAID 5 de volta para RAID 1 ou RAID 0?
Não, não é possível converter um RAID 5 de volta para RAID 1 ou RAID 0. O RAID 5 é um tipo de configuração de armazenamento em que os dados são distribuídos entre três ou mais discos, com redundância para proteger os dados contra falhas de disco. Uma vez que os dados são distribuídos entre os discos, não é possível converter de volta para outros tipos de RAID.
Qual é a vantagem de usar um RAID 5 em relação a um RAID 1 ou RAID 0?
O RAID 5 oferece uma maior capacidade de armazenamento do que os outros dois tipos de RAID, pois usa vários discos para criar um único volume lógico. Além disso, ele também oferece tolerância a falhas, o que significa que se um dos discos falhar, os dados ainda estarão seguros e ainda poderão ser recuperados. O RAID 5 também oferece melhor desempenho do que o RAID 1 ou 0, pois usa todos os discos para processar os dados em paralelo.
Se tiver perguntas sobre a mudança de RAID 0 ou 1 para RAID 5, ou como converter software RAID1 (0) para RAID5, preservando todos os dados em Linux no mdadm ou LVM, por favor pergunte nos comentários.