terça-feira, março 24, 2009

Howto gmirror on FreeBSD, geom raid1

Bom pessoal, o objetivo deste howto, é mostrar como criar um raid1 para armazenamento, e não um raid1 para instalar o sistema operacional.

Estou postando este howto para a seguinte solução: criar um servidor de arquivos, onde o sistema operacional esta instalado em 1 HD, e os dados ficam em outra unidade, sendo esta unidade em raid1 com 2 HDs.

Raid1: espelhamento de 2 HD.

Para montar este raid1, vou usar o GEOM, do qual tem varias ferramentas para fazer raid ou mesmo concatenamento, chame como você achar melhor, mas lembre-se, concatenamento é a junção de 1 ou mais HDs, formando uma unica unidade.

O ferramenta utilizada é o gmirror.

Estou utilizando o FreeBSD 7.1-RELEASE.

1. Inicialize o modulo do geom:
servidor# kldload /boot/kernel/geom_mirror.ko

2. Agora vamos desativar a proteção contra gravação na MBR dos discos, para isso sete a MIB sysctl com o comando abaixo:
servidor# sysctl kern.geom.debugflags=16

3. Agora vamos colocar essa flag como padrão após todo boot, pois depois que você reiniciar, ela puda para o padrão. Segue o comando:
servidor# echo "kern.geom.debugflags=16" >> /etc/sysctl.conf

4. Agora vamos criar o RAID1, chamado de gm0, com dois discos, o ad4 e o ad6:
servidor# gmirror label -v -b load gm0 /dev/ad4 /dev/ad6

5. Vamos formatar a partição:
servidor# newfs /dev/mirror/gm0

6. Vamos montar a unidade:
servidor# mount /dev/mirror/gm0 /mnt

Para saber se realmente está montado a unidade, digite o comando abaixo e veja a saida:
servidor# df -ah

Observe se aparece a linha abaixo, provavelmente será a ultima linha:

Filesystem Size Used Avail Capacity Mounted on
/dev/mirror/gm0 451G 4.0K 415G 0% /mnt

Se aparecer o dispositivo /dev/mirror/gm0, quer dizer que esta montado, as outras informações irão mudar, conforme o tamanho e utilização de seu HD até aquele momento.

Parabéns, você já tem o seu RAID1 montado e funcionando.


OBS: O parâmetro -b indica o algoritmo que será usado para escolher a maneira como os dados serão lidos dos discos, load é um algoritmo que lê preferencialmente do disco com menos carga. Outros algoritmos podem ser encontrados nas páginas de manual do gmirror(8).


Agora vamos fazer algumas configurações, para que quando o servidor seja reiniciado, ele monte automaticamente o RAID1.

7. Use o comando abaixo para inserir as informações necessárias para montar automaticamente a unidade durante o boot:
servidor# echo "/dev/mirror/gm0 /mnt ufs rw 2 2" >> /etc/fstab

8. Use o comando abaixo para inserir as informações necessárias para iniciar o modulo do gmirror durante o boot:
servidor# echo 'gmirror_load="YES"' >> /boot/loader.conf

Algumas das fontes de pesquisa:
http://www.fug.com.br/content/view/440/9/
http://www.freebsd.org/doc/en/books/handbook/geom-striping.html
http://www.freebsd.org/cgi/man.cgi?query=geom&sektion=4&manpath=FreeBSD+7.1-RELEASE


TAG: freebsd, raid, raid0, raid1, geom, gmirror, servidor, linux, storage, armazenamento,

3 comentários:

Paulo disse...
Este comentário foi removido pelo autor.
Paulo disse...
Este comentário foi removido pelo autor.
Paulo disse...

Amigão, descobri o erro. Seu passo número 8 está errado.

Ao invés de digitar:
# echo 'gmirror_load="YES"' >> /boot/loader.conf

Digite:
# echo 'geom_mirror_load="YES"' >> /boot/loader.conf

Era o nome do módulo que estava errado... Fica ai a dica para quem tiver dificuldades! O resto, tá show de bola, tutorial bem explicativo e bem tranquilo de fazer! Abraço!