Post em Destaque

Script para instalar o bash e configurar o ambiente com aliases e vim

Comecei minha vida *NIX usando Xenix e SCO Unix, nessa época usava “sh” como shell e “vi” como editor, isso era em 1991 à 1994 se eu me recordo bem. Nessa época eu era Programador Clipper Summer 87 no mundo DOS e Programador COBOL no mundo *NIX. Em 1996 me apresentaram minha...

Leia mais...

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:, , ,

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:

tela1

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

tela2

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

tela3
 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:

tela4


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:

tela5

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/
Share Button