FreeBSD 10.2 – Sistema para Backup com Raiz em RAID 1 (mirror) e Dados em RAID 10 (mirror+stripe)
Posted by gondim | Posted in Dicas, FreeBSD, Software Livre, Tecnologia | Posted on 03-02-2016
Tags:FreeBSD, raid, raid1, raid10
5
Fazia um tempo que eu não postava um artigo mas recentemente fiz um Servidor de Backup e nele eu tinha apenas 4 HDs de 2TB cada. Queria aproveitar o espaço em disco e ao mesmo tempo fazer algo seguro. Não preciso dizer que Backup é algo extremamente sério e não podemos bobear com isso.
Nesse artigo vamos montar o sistema assim:
Partições do SO:
RAID 1:
/ – 50Gb
swap – 8Gb
RAID 10:
/dados – restante do espaço
Com o Raid 1 teremos o famoso mirror onde o sistema estará presente em todos os discos. Em caso de falhas os outros discos farão o trabalho de manter o sistema em pé. No Raid 10 teremos o mirror (RAID 1) para manter a segurança em caso de falhas e em cima do mirror, faremos um stripe (RAID 0) para aproveitar bem o espaço dos discos com performance aprimorada. 🙂
Para começarmos a brincadeira, tenha em mãos um CD ou pendrive com o instalador do FreeBSD 10.2-RELEASE.
Como o instalador do FreeBSD não possui suporte para criar os RAIDs durante a instalação, faremos no método manual. Observem a tela abaixo:
Nesse momento vamos para o shell fazer a nossa configuração das partições. As configurações abaixo fiz para a minha necessidade; sintam-se à vontade de alterá-las:
Temos 4 discos SATA III de 2Tb: ada0, ada1, ada2 e ada3
# gpart create -s gpt ada0
# gpart create -s gpt ada1
# gpart create -s gpt ada2
# gpart create -s gpt ada3
Criando as partições de boot nos discos:
# gpart add -s 128k -t freebsd-boot -l boot0 ada0
# gpart add -s 128k -t freebsd-boot -l boot1 ada1
# gpart add -s 128k -t freebsd-boot -l boot2 ada2
# gpart add -s 128k -t freebsd-boot -l boot3 ada3 Criando as partições de swap de 8Gb: # gpart add -a 1m -s 8G -t freebsd-swap -l swap0 ada0
# gpart add -a 1m -s 8G -t freebsd-swap -l swap1 ada1
# gpart add -a 1m -s 8G -t freebsd-swap -l swap2 ada2
# gpart add -a 1m -s 8G -t freebsd-swap -l swap3 ada3 Vamos criar o raiz do SO que vai conter todo o Sistema com 50Gb:
# gpart add -a 1m -s 50G -t freebsd-ufs -l root0 ada0
# gpart add -a 1m -s 50G -t freebsd-ufs -l root1 ada1
# gpart add -a 1m -s 50G -t freebsd-ufs -l root2 ada2
# gpart add -a 1m -s 50G -t freebsd-ufs -l root3 ada3 Por último a partição que usaremos para armazenar os backups em RAID10:
# gpart add -a 1m -t freebsd-ufs -l dados0 ada0
# gpart add -a 1m -t freebsd-ufs -l dados1 ada1
# gpart add -a 1m -t freebsd-ufs -l dados2 ada2
# gpart add -a 1m -t freebsd-ufs -l dados3 ada3 Agora que já temos as partições, precisaremos gerar o bootcode nos discos:
# gpart bootcode -b /boot/pmbr -p /boot/gptboot -i 1 ada0
# gpart bootcode -b /boot/pmbr -p /boot/gptboot -i 1 ada1
# gpart bootcode -b /boot/pmbr -p /boot/gptboot -i 1 ada2
# gpart bootcode -b /boot/pmbr -p /boot/gptboot -i 1 ada3 # true > /dev/ada0
# true > /dev/ada1
# true > /dev/ada2
# true > /dev/ada3
Agora que terminamos de definir as partições passaremos para a criação dos mirrors: Fazendo os mirrors que acomodarão o SO e swap: # kldload geom_mirror
# gmirror label -h swap /dev/gpt/swap0 /dev/gpt/swap1 /dev/gpt/swap2 /dev/gpt/swap3
# gmirror label -h root /dev/gpt/root0 /dev/gpt/root1 /dev/gpt/root2 /dev/gpt/root3
Agora faremos os mirrors das partições Dados:
# gmirror label -h dados0 /dev/gpt/dados0 /dev/gpt/dados1
# gmirror label -h dados1 /dev/gpt/dados2 /dev/gpt/dados3 Acima criamos o RAID 1 com os 2 primeiros discos para tolerância à falhas. Para confirmarmos que os mirrors estão OK: # gmirror status Agora precisamos criar o stripe e fechar o RAID 10:
# kldload geom_stripe
# gstripe label -h dados /dev/mirror/dados0 /dev/mirror/dados1 Nesse ponto teremos um device /dev/stripe/dados com aproximadamente 3.5Tb que usaremos pra armazenar nosso backup. :) # gstripe status
Agora que criamos o RAID 1 e o RAID 10, formataremos eles com UFS: # newfs -U -L root /dev/mirror/root
# newfs -U -L dados /dev/stripe/dados Caso os discos sejam SSD, adicione o parâmetro -t conforme abaixo, para habilitar o suporte à TRIM:
# newfs -t -U -L root /dev/mirror/root
# newfs -t -U -L dados /dev/stripe/dados Próximo passo montaremos o sistema de arquivos para continuarmos a instalação do sistema: # mount /dev/mirror/root /mnt # mkdir /mnt/backup # mount /dev/stripe/dados /mnt/backup Nesse momento sairemos do shell e retornaremos para a instalação do SO: # exit Instale o sistema normalmente até chegar na tela abaixo: Nesse ponto volte para o shell onde criaremos o nosso fstab: # vi /tmp/bsdinstall_etc/fstab Adicione o seguinte conteúdo:
/dev/mirror/swap none swap sw 0 0 /dev/mirror/root / ufs rw 1 1 /dev/stripe/dados /backup ufs rw 1 1 # exit Continue toda a instalação até a tela abaixo: Confirme com Yes e novamente no shell faça a configuração abaixo: # echo 'geom_mirror_load="YES"' >> /boot/loader.conf
# echo 'geom_stripe_load="YES"' >> /boot/loader.conf Acima habilitamos a carga dos drivers senão o sistema não vai subir após o boot. :) Vamos habilitar um report diário sobre o mirror e o stripe e ficarmos atentos se aparecer algum problema: # echo 'daily_status_gmirror_enable="YES"' >> /etc/periodic.conf # echo 'daily_status_gstripe_enable="YES"' >> /etc/periodic.conf Basta agora sair com exit, reiniciar e partir para o abraço. rsrsrs Espero que este post seja útil para todos. Abrs e até a próxima. Referência: https://www.ateamsystems.com/tech-blog/installing-freebsd-9-gmirror-gpt-partitions-raid-1/