Quem usa RAID1 normalmente é porque necessita manter os seus dados com mais alguma segurança. O RAID1 permite que um dos dois discos falhe sem que os dados se percam.
Hoje em dia com a demanda de multimédia que nos deparamos no nosso dia a dia sabemos que mais cedo ou mais tarde iremos encher os nossos discos. Principalmente a nível profissional onde não nos podemos dar ao luxo de destruir informação seja ela qual for. Hoje a informação é cada vez mais importante.
Então e quando o nosso RAID1 não poder guardar mais informação, devido ao facto de os discos não terem mais espaço livre para guarda-la? Neste artigo vou descrever como podemos substituir os discos do nosso RAID1, por discos de maior capacidade, sem que a informação seja destruída.
Este artigo parte do principio que já temos o nosso RAID1 em perfeito funcionamento!
Vamos lá ao trabalho!
Para sabermos informações sobre o nosso dispositivo RAID, corremos este comando que nos mostra com detalhe as informações que necessitamos:
Como podemos ver pelas letras a vermelho que o meu RAID1 tem a capacidade de 2GB e que os discos usados são /dev/sdb e /dev/sdc.
Então e quanto ao espaço livre que este dispositivo tem? Bem neste exemplo está completamente vazio, ora vejamos:
Como podemos ver este dispositivo apenas está a utilizar 6M de 2GB.
Para que seja possível provar que depois de substituir os discos a informação está intacta, eu vou criar um ficheiro na directório /data que ocupe toda a partição. Depois irei criar um hash MD5 do ficheiro. Depois no final do artigo, quando já tivermos substituído os discos, irei fazer novamente um hash MD5 do ficheiro e comparar para confirmar que o ficheiro não sofreu alterações.
Para criar o ficheiro com dados aleatórios, que ocupe os 1,9GB livres em /data, eu vou usar o comando dd. Desta forma:
Agora voltamos a confirmar o espaço livre em data:
Como podemos confirmar a vermelho a partição ficou sem espaço livre disponível.
Agora iremos criar o hash MD5 para mais tarde confirmarmos que os dados não sofreram qualquer mudança, assim:
Agora que temos em mão as informações que necessitamos para realizar esta operação já podemos dar inicio à troca dos discos.
Este processo tem de ser feito seguindo todos os passos que vou descrever e pela mesma ordem. Se não se sente à vontade com estes passes treine primeiro em uma maquina virtual.
Como sabemos pelas informações recolhidas o nosso RAID usa os discos /dev/sdb /dev/sdc este processo não pode ser feito todo de uma só vez. Para já iremos trabalhar no primeiro disco do array /dev/sdb.
Para tal temos de informar o RAID que este dispositivo falhou. Para isso corremos o comando mdadm com os seguintes parâmetros:
Agora temos de remover o disco do RAID1. Para isso corremos o comando mdadm com os seguintes parâmetros:
Agora podemos confirmar o estado do RAID desta forma:
Como podemos confirmar o disco foi removido.
Neste momento temos de desligar a maquina e substituir o primeiro disco fisicamente por um de maior capacidade, apenas o primeiro disco . Depois iniciamos novamente a maquina. Para desligar a maquina corremos o comando poweroff :
Agora que já substituímos o primeiro disco e iniciamos a máquina, vamos ter de preparar o novo disco para junta-lo ao RAID. A primeira coisa a fazer é formatar o disco com uma partição Linux raid autodetect. Para isso usamos o fdisk:
A vermelho estão os valores que escolhi para criar a partição.
Neste momento já temos o nosso novo disco formatado e pronto, agora vamos junta-lo ao RAID. Para isso voltamos a usar o comando mdadm com os seguintes parâmetros:
Agora temos de esperar pela reconstrução do RAID, para sabermos o estado da reconstrução corremos:
Como podemos ver o processo ainda não terminou, neste momento vai a 64,4%, vamos ter de esperar mais um pouco e executar o comando novamente. O processo de reconstrução poderá demorar bastante em discos de 4TB.
Agora como podemos ver o processo terminou como podemos ver pelas letras a vermelho.
Agora iremos obrigar o segundo disco a falhar e remove-lo do RAID para substitui-lo por outro de maior capacidade.
Neste momento temos de desligar a maquina e substituir o segundo disco fisicamente por um de maior capacidade, apenas o segundo disco . Depois iniciamos novamente a maquina. Para desligar a maquina corremos o comando poweroff :
Agora que já substituímos o segundo disco e iniciamos a máquina, vamos ter de preparar o novo disco para junta-lo ao RAID. Podemos formatar este disco como fizemos com o primeiro ou copiar a tabela de partições do primeiro disco para o segundo. Eu vou copiar a tabela de partições da seguinte forma:
Neste momento já temos o segundo disco formatado e pronto, agora vamos junta-lo ao RAID. Para isso voltamos a usar o comando mdadm com os seguintes parâmetros:
Como podemos ver o processo ainda não terminou, neste momento vai a 23,3%, vamos ter de esperar mais um pouco e executar o comando novamente:
Neste momento já temos os nossos discos de maior capacidade no sistema, no meu caso tinha discos de 2GB e troquei por discos de 8GB. Mas vamos ver os detalhes do nosso RAID novamente:
Como podemos ver a vermelho, o RAID apenas reconhece os 2GB que reconhecia antes da troca dos discos. Para este processo perigoso é necessário desmontar o RAID. Para isso usamos o seguinte comando:
Agora vamos ter de informar o RAID para usar todo o espaço disponível nos discos. Para isso usamos o comando mdadm com os seguintes parâmetros:
Como podemos ver a vermelho, o tamanho do dispositivo aumentou para 8386560K que são 8GB o tamanho dos meus novos discos.
Agora vamos verificar o sistema de ficheiros do dispositivo /dev/md0. Para isso usamos o comando fsck.ext4
Agora vamos aumentar o sistema de ficheiros para ocupar os 8GB, toda a capacidade dos dispositivo md0. Para isso usamos o comando resize2fs:
Neste momento já finalizamos todo o processo de substituição dos discos bem como a sua reconfiguração.
Vamos então agora montar o dispositivo novamente. Para isso corremos o comando:
Neste momento vamos confirmar a capacidade do dispositivo e o seu espaço livre. Para isso corremos o comando df novamente:
E como podemos ver já faz uso da capacidade dos novos discos. O espaço ocupado é de 1,9GB, que é o ficheiro que criamos para provar que os dados não são corrompidos neste processo. Bem agora só nos falta mesmo verificar o ficheiro para ver se realmente não foi alterado. Para isso corremos novamente o comando md5sum:
E como podemos confirmar o hash MD5 é igual ao primeiro que fizemos antes de todo o processo de substituição dos discos. Portanto prova que este processo realizado de forma correta, não afecta os dados já existentes no dispositivo RAID.
Espero que este artigo possa ajudar alguém. Pelo menos para mim servirá como apontamentos. Comentem, partilhem e dêem ideias para novos artigos!