Neste tutorial vamos instalar o Ubuntu em modo RAID (Redundant Array of Independed Disks). Se você se interessou pelo assunto e chegou até esta publicação, presumo que já saiba o que é RAID, qual sua finalidade e os prós e contras de se utilizar esta tecnologia. Portanto, não vou discorrer aqui sobre o assunto em si, apenas limitando-me a guiá-lo pelos passos necessários para uma instalação correta do sistema, no caso, o Ubuntu 20.04.
Este procedimento também foi utilizado com sucesso para instalação do Ubuntu 19.10 e Linux Mint 19.3. Acredito ser possível utilizá-lo, com as devidas adaptações, para outras versões e/ou distribuições, baseadas ou não no Debian.
Primeiramente, baixe a ISO do Ubuntu, crie a mídia de instalação (Pendrive, DVD etc.) e inicie sua máquina por ela. A partir deste momento, os procedimentos serão realizados na versão live do sistema.
Na configuração escolhida, será utilizado um arquivo para memória swap (swapfile). Portanto, não será destinada nenhuma partição para este fim. Mas se desejar, pode fazê-lo, tanto criando uma partição RAID ou um espaço em disco regular.
Ainda, mesmo que seu equipamento possua UEFI BIOS, não será necessária a criação de uma partição EFI para configuração do boot. Ignore os avisos de ausência desta partição durante a instalação do sistema e prossiga normalmente. Se seu sistema possuir LEGACY BIOS, não serão apresentados estes avisos e você pode seguir com a instalação normalmente também.
No presente caso, optei pelo RAID 0 em três arrays, sendo os dois primeiros com 3 SSDs e o terceiro com 2 HDDs (vide abaixo), mas você pode seguir os mesmos passos para diferentes tipos de RAID e para uma quantidade diferente de drives.
- SSD Sandisk 120 GB – /dev/sda
- SSD Sandisk 120 GB – /dev/sdb
- SSD Sandisk 240 GB – /dev/sdc
- HDD Samsung 1 TB – /dev/sdd
- HDD Seagate 1 TB – /dev/sde
Lembre-se de fazer as adaptações para o seu setup de discos, observando, inclusive e principalmente, a nomenclatura dos discos (sda, sdb…) do seu sistema.
Para a construção dos arrays é imprescindível que as partições sejam criadas exatamente com o mesmo tamanho e, obviamente, no mesmo formato. No meu caso, ao final do processo, a configuração ficou da seguinte forma:
- Partição md0 (RAID) 60GB (3x20GB – SSD) – Instalação do Sistema (/)
- sda1 + sdb1 + sdc1
- Partição md1 (RAID) 300GB (3x100GB – SSD)
- sda2 + sdb2 + sdc2
- Partição sdc3 120GB
- Partição md2 (RAID) 2TB (2x1TB – HDD)
- sdd1 + sde1
Criação das partições
A primeira coisa a se fazer é criar as partições, o que pode ser feito utilzando-se o terminal ou pela interface gráfica através do GParted (disponível na versão live do Ubuntu). No caso, vamos utilizar a interface gráfica, que torna mais fácil a compreensão e visualização do resultado.
Para cada array, repete-se o processo demonstrado na sequência. Neste primeiro, criaremos as partições RAID md0 e md1 dos SSDs, com 60GB e 300GB, respectivamente.
- Abra o GParted e selecione o primeiro drive (sda) e exclua as partições existentes;
- Repita o processo para cada drive a ser utilizado (sdb, sdc…);
- Volte ao drive 1 (sda) e crie a primeira partição (sda1) – No meu caso, 20 GB;
- Agora crie a segunda partição (sda2) – No meu caso, 100 GB;
- Repita o processo para os demais drives da array, criando as partições sdb1, sdb2 (…), sdc1, sdc2 (…) etc., sempre com o mesmo tamanho em cada drive, ou seja, sda1 = sdb1 = sdc1, sda2 = sdb2 = sdc2 e assim por diante.
Após a criação das partições, os drives devem ter a seguinte configuração (à exceção dos mount points, que neste momento ainda não aparecerão):
Note que, no meu caso, o drive sdc ficou com 3 partições, sendo que somente a sdc1 e a sdc2 serão utilizadas na criação das arrays.
Criando as partições RAID
Para a criação das partições RAID vamos utilizar o terminal, já que a aplicação para este fim (mdadm) não possui interface gráfica.
Primeiramente, para facilitar todo o processo, vamos utilizar diretamente o usuário root da live do Ubuntu digitando no terminal (sem aspas) “sudo su“.
Agora, vamos criar o /dev/md0, que será a partição utilizada para a instalação do sistema (/). No presente caso, ela terá 60 GB, sendo 20 GB de cada SSD. Primeiramente, verifique se o mdadm está instalado. Se não estiver, instale-o através do terminal com o comando:
apt-get update && apt install mdadm
Para a criação da primeira partição RAID (md0 – 60 GB), digite no terminal o seguinte comando (fazendo as adaptações para o seu caso e digitando “s” (ou “y”) para cada confirmação):
mdadm --create /dev/md0 --level=0 --raid-devices=3 /dev/sda1 /dev/sdb1 /dev/sdc1
No comando acima, temos md0 sendo o nome da partição, level=0 o tipo de RAID, raid-devices=3 a quantidade de drives utilizados na array e /dev/sda1 /dev/sdb1 /dev/sdc1 (etc.) o caminho de cada partição.
Na segunda partição RAID (md1 – 300 GB), temos:
mdadm --create /dev/md1 --level=0 --raid-devices=3 /dev/sda2 /dev/sdb2 /dev/sdc2
Finalizado este processo, vamos conferir se os drives RAID foram criados com sucesso digitando:
cat /proc/mdstat
O resultado deverá ser algo semelhante à:
Formatando as partições
Vamos agora formatar as partições, que, no presente caso, serão no formato ext4. Para formatar a primeira partição (md0), digite no terminal:
mkfs.ext4 /dev/md0
Para formatar a segunda partição (md1), digite:
mkfs.ext4 /dev/md1
Criando a terceira array
Para a criação da terceira array (md2 / 2TB / HDDs), repita o processo realizado para os SSDs fazendo as alterações necessárias. Se não for o seu caso, simplesmente ignore esta etapa e prossiga com a instalação do sistema.
Instalando o sistema
Agora que temos os arrays criados e suas partições devidamente formatadas, partiremos para a instalação do sistema digitando no terminal (sem aspas) “ubiquity -b“. Na sequência, será aberta o guia de instalação do Ubuntu.
Faça a instalação do sistema “normalmente”, marcando “Opção Avançada” no tipo de instalação, escolhendo a partição md0 para o ponto de montagem “/” do sistema e selecionando a opção de formatar. Opcionalmente, você pode definir a partição md1 para “/home“. Mas, se você não deseja separar a pasta home da instalação do sistema, simplesmente não defina nenhum local para sua instalação. Assim, ela será criada no mesmo drive de instalação do sistema.
IMPORTANTE!!! Ao final da instalação, NÃO REINICIE O SISTEMA!!! Se o sistema for reiniciado neste momento, ocorrerá um erro de boot e todo o trabalho será perdido. Portanto, ao final da instalação, escolha “Continuar Testando o Ubuntu“.
Reparando o GRUB no Ubuntu instalado
Vamos agora reparar o GRUB para que o sistema inicie normalmente. Primeiramente, vamos preparar o Ubuntu para o chroot (“entrar” no Ubuntu instalado) montando a partição da instalação do Ubuntu. Abra novamente o terminal e digite:
mount /dev/md0 /mnt
Na sequência, vamos montar o sys e o proc também no /mnt:
for i in /dev /dev/pts /sys /proc; do mount --bind $i /mnt/$i; done
No caso do resolv.conf estar vazio na instalação do Ubuntu, vamos configurar o nameserver manualmente. Digite:
cat /mnt/etc/resolv.conf
Se o resultado for nulo, ou seja, se não aparecer nada como resultado, digite:
echo "nameserver 1.1.1.1" > /mnt/etc/resolv.conf
Na sequência, vamos “entrar” no Ubuntu instalado e fazer as configurações. Digite no terminal:
chroot /mnt
Feito isto, já estaremos “dentro” da sua instalação do Ubuntu e a partir de agora todos os comandos serão executados na sua instalação do Ubuntu e não na live do sistema.
A primeira coisa a se fazer é a instalação do mdadm. Digite, portanto:
apt-get install mdadm
Aguarde o final da instalação. Caso ocorram alguns erros, ignore-os. Certamente são relacionados à dispositivos USB adicionais e nada têm a ver com a instalação.
IMPORTANTE: Quando o mdadm foi instalado dentro da instalação do Ubuntu em md0, o initramfs do Kernel foi criado, as configurações do GRUB foram realizadas, assim como o mdadm.conf foi escrito. Obviamente, durante a instalação “normal” do Ubuntu estes passos foram ignorados, já que o mdadm ainda não havia sido instalado.
Verificação
Vamos verificar se tudo está instalado e configurado corretamente antes de reiniciarmos o sistema. Digite no terminal:
ll /boot/grub/
O resultado será algo parecido com:
Se tudo correu bem, deverá aparecer o arquivo grub.cfg (linha 5 na imagem acima). Caso contrário, o boot não será possível.
Finalizando as configurações
Vamos agora, e finalmente, instalar o GRUB nos drives físicos (sda, sdb, sdc etc.) digitando no terminal o comando a seguir e SUBSTITUINDO O ‘X’ para cada drive utilizado na criação dos arrays:
grub-install /dev/sdX
Observação importante: Faça isto para cada drive (sda, sdb, sdc…) utilizado na criação da partição RAID onde foi realizada a instalação do sistema (/).
Se nenhum erro ocorreu, podemos “sair” do Ubuntu instalado digitando (sem aspas) “exit” e reiniciar o sistema digitando (sem aspas) “reboot“.
Se tudo correu bem, seu sistema iniciará normalmente em modo RAID e as demais partições (RAID ou não) criadas apareceção na nova instalação. No meu caso, através do gnome-disk-utility, temos:
Repare que aparecem os drives “originais” (2 de 120 GB, 1 de 240 GB e 2 de 1 TB) utilizados para a criação das partições RAID, bem como os arrays (md/2 de 2 TB, md/0 de 60 GB e md/1 de 300 GB).
Lembre-se que no futuro, caso precise por qualquer motivo alterar o initramfs ou o GRUB, é necessário reinstalar o GRUB nos drives físicos novamente (grub-install /dev/sda etc.).
Ainda, se precisar reinstalar seu sistema que já está em RAID, repita o processo à exceção da formatação dos drives. Assim você pode inclusive manter seus arquivos nos drives (RAID ou não) onde não está instalada a base do sistema (/).