gmirror em slice no FreeBSD

yo! Como está difícil conseguir 2 discos rígidos do mesmo tamanho, mesmo comprando o modelos iguais no final eles são diferentes! Desse modo, fazer raid 1 com geom mirror do disco inteiro como mostra no handbook é impossível. Depois de adquirir 2 discos Samsumg e 2 Western Digital de 500Gb para no final descobrir que eles tem o número de blocos diferentes, eu resolvi tomar uma abordagem diferente e fazer o gmirror do slice, assim não importa o tamanho do disco, apenas o tamanho do slice que é controlado pelo sysadmin.

Existem dois jeitos mais comuns de se fazer isso. O primeiro é com o sistema offline através do Fixit e o segundo é online, criando o raid1 no disco vazio e depois migrando os dados para ele.

A vantagem do primeiro é que é mais rápido o processo todo, pois não é necessário replicar os dados no segundo disco e a desvantagem que vejo é que o sistema precisa ficar offline por cerca de 10 minutos, tempo mais que suficiente para criar o raid1.

Optei pela primeira opção. Tem que ser offline pois o gmirror usa o último bloco do provider para gravar os metadados, ou seja, não podemos gravar metadados em um dispositivo já em uso, como por exemplo /dev/ad4s1.

Eu usei a imagem do memstick, iniciei o servidor pelo pen-drive e selecionei a opção Fixit. No terminal é só criar o raid como no handbook, trocando o device do disco pelo do slice, como na sequência de comandos abaixo:

Disco 1: ad4
Disco 2: ad6

# Copia a tabela de slices para o segundo disco:
dd if=/dev/ad4 of=/dev/ad6 bs=512 count=1

sysctl kern.geom.debugflags=17
gmirror label -vb round-robin gm0s1 /dev/ad4s1

# Precisamos adicionar o geom_mirror no boot e alterar o fstab
mount /dev/ad4s1a /mnt
echo 'geom_mirror_load="YES"' >> /mnt/boot/loader.conf
vi /mnt/etc/fstab

# Esse comando no vi irá substituir ad4s1 por mirror/gm0s1, ex: /dev/ad4s1d  -> /dev/mirror/gm0s1d
:%s/ad4s1/mirror\/gm0s1/g

# Tudo pronto, é só reiniciar o servidor
exit ou reboot

Saia do sysinstall e reinicie o servidor. Se tudo der certo, o primeiro disco está no gmirror e portanto só precisamos adicionar o segundo disco. Basta entrar como root e digitar:

 # gmirror insert -v gm0s1 /dev/ad6s1

Agora é só esperar o geom sincronizar os blocos e enquanto isso é feito, precisamos instalar o bootmrg na mbr do segundo disco. Isso pode ser feito da seguinte maneira:

 # systctl -w kern.geom.debugflags=16

Entre no sysinstall e vá na opção Configure e em Fdisk. Escolha o disco o segundo disco (ad6 no meu caso). Aperte W para gravar e escolha instalar o gerenciar de boot na MBR

Referência: http://forums.freebsd.org/showthread.php?p=106015.

Deixe uma resposta

O seu endereço de email não será publicado Campos obrigatórios são marcados *

Você pode usar estas tags e atributos de HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>