FUG-BR / Grupo Brasileiro de Usuarios de FreeBSD - Fazendo RAID 0, 1 e 10 no FreeBSD
 
23.04  
Inicio arrow Artigos arrow Fazendo RAID 0, 1 e 10 no FreeBSD
Principal
Inicio
Noticias
Artigos
Regras da Lista
Assinar a Lista
Histrico da Lista
Forum
Keyserver
PC-BSD: Artigos
PC-BSD: Notcias
Galeria de Imagens
Contador Usurios FUG
FUGs Estaduais
Downloads
Enquetes
FAQ
Resumo do Site
Links
Pesquisar
Contato
Sobre a FUG-BR
RSS / Twitter
-
DOC-BR (FUG BR)
Introduo
Projeto DOC-BR
Handbook
FAQ Oficial
-
+ Noticias
Alertas de Seguranca
Alertas em Ports
BSD em Geral
DaemonNews (Ingles)
MyFreeBSD
Todas Categorias
-
Login
Nome de Usurio

Senha

Lembrar login
Esqueceu sua senha?
Sem conta? Crie uma


Fazendo RAID 0, 1 e 10 no FreeBSD PDF Imprimir E-mail
Por Alexandre Vasconcelos   
07/02/2008

ImageEste documento tem o objetivo de demonstrar na prática o funcionamento e a configuração de 3 níveis de RAID no FreeBSD 6.3 utilizando as ferramentas do GEOM(4) para isso. Todas as implementaçõees foram feitas no VMware Server por falta de discos reais.

Lembrando que o Handbook do FreeBSD também nos traz boas informações sobre este assunto aqui .

Nossos agradecimentos ao Danilo Egêa que nos enviou este artigo, valeu Danilo! O original, em formato PDF pode ser obtido aqui.

 

 

1 RAID, níveis de RAID e o GEOM(4)

RAID é o agrupamento de discos, a grosso modo é pegar 2 ou mais discos e fazê-los trabalhar como se fossem um. Existem vários níveis diferentes de RAID, entenda-se por níveis a maneira como o RAID vai trabalhar.

GEOM(4) é um framework criado para o desenvolvimento de drivers de disco com suporte a infra-estrutura que permite a utilização de vários discos como se fossem um. Com ele é possível unir, replicar e distribuir dados em vários discos e até em uma rede, criando assim uma redundância de dados. Nas próximas seções demonstrarei como configurar os níveis 0, 1 e 10 de RAID no seu sistema FreeBSD.

 

2 RAID 0


O nível 0 de RAID é a união de dois ou mais discos de tamanhos iguais, seus tamanhos são somados aumentando assim a capacidade de armazenamento da unidade. O GEOM(4) permite a criação de RAID de nível 0 com a ferramenta gstripe(8).

Pois bem, como dito na introdução eu não tinha discos reais para fazer todo o trabalho em uma máquina real, ai tive que apelar para o uso do VMware Server. Criei 5 discos no VMware, 1 para a instalação do sistema e outros 4 para a configuração do RAID, 2 IDE e 2 SCSI. Vamos utilizar os dois discos IDE para a configuração do RAID 0. Bom, o primeiro passo é configurar os módulos necessários para carregarem automaticamente no sistema, para isso inclua as 2 linhas abaixo no arquivo /boot/loader.conf:

geom_stripe_load="YES"
geom_mirror_load="YES"


Muito bem, os discos que usarei para configurar o RAID são ad1 e ad3. O
comando para criar o RAID é:

gstripe label -v gs0 ad1 ad3


Onde gs0 é o nome do dispositivo que será criado, esse pode ser qualquer nome,
como raid0 por exemplo. Como retorno do comando temos:


GEOM_STRIPE: Device gs0 created (id=3059829028).
GEOM_STRIPE: Disk ad1 attached to gs0.
GEOM_STRIPE: Disk ad3 attached to gs0.
GEOM_STRIPE: Device gs0 activated.

É fascinante como FreeBSD é simples, basta apenas formatar o dispositivo gs0 para termos nosso RAID 0 pronto para usar:

newfs /dev/stripe/gs0

Agora jé podemos montar nosso dispositivo e usar como bem entendermos:

mount /dev/stripe/gs0 /raid0


Não é preciso declarar em lugar nenhum que você desaja carregar seu RAID agora, pois sempre que o módulo é carregado o RAID é ativado automaticamente.


2.1 Manutenção do RAID 0

Como todo bom RAID 0, se você perder um dos discos você perde todos os seus dados, e como inserir novos discos exige a formatação do RAID novamente, não há muito o que ser feito na questão manutenção do RAID 0. Podemos verificar o estado do RAID com o comando:

gstripe status

E obteremos a seguinte informação:

Name Status Components
stripe/gs0 UP ad1
ad3


2.2 Desativando o RAID 0


Os passos abaixo desativam o RAID e removem as informações do GEOM(4) dos discos:

umount /raid0
gstripe stop -v gs0
gstripe unload -v
gstripe clear -v ad1 ad3



3 RAID 1

RAID 1 é o espelhamento entre dois ou mais discos, onde todos os discos são cópias idênticas. A ferramenta para configuração de RAID 1 no FreeBSD é o gmirror(8). Bom, como no RAID 0 o RAID 1 também é muito fácil de configurar. Antes de criar o RAID temos que desativar a proteção contra gavação na MBR dos discos, para isso sete a MIB Sysctl kern.geom.debugflags com o valor 16:

sysctl kern.geom.debugflags=16

O comando abaixo cria um RAID 1 chamado gm0 já com dois discos e os sincroniza automaticamente:

gmirror label -v -b load gm0 ad1 ad3
gmirror load


Assim temos a seguinte saída do kernel:

GEOM_MIRROR: Device gm0 created (id=1545084164).
GEOM_MIRROR: Device gm0: provider ad3 detected.
GEOM_MIRROR: Device gm0: provider ad1 detected.
GEOM_MIRROR: Device gm0: provider ad3 activated.
GEOM_MIRROR: Device gm0: provider ad1 activated.
GEOM_MIRROR: Device gm0: provider mirror/gm0 launched.


Pronto, se o seu primeiro disco já estava formatado é só montar a partição:

mount /dev/mirror/gm0 /raid1


Ou senão formatá-lo:

newfs /dev/mirror/gm0


3.1 Consideraçõoes importantes sobre o gmirror(8)

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).
Você também pode criar um RAID com um disco que possui um sistema já instalado tranqüilamente. Caso o faça, para cada label existente em sua partição FreeBSD será criado um dispositivo /dev/mirror/gm0s1x. Exemplo:

ls /dev/mirror/
gm0 gm0s1 gm0s1a gm0s1b gm0s1c gm0s1d gm0s1e gm0s1f

Para iniciar o sistema pelo RAID basta substituir em seu /etc/fstab o disco /dev/ad0 por /dev/mirror/gm0 :

/dev/mirror/gm0s1b none swap sw 0 0
/dev/mirror/gm0s1a / ufs rw 1 1
/dev/mirror/gm0s1e /tmp ufs rw 2 2
/dev/mirror/gm0s1f /usr ufs rw 2 2
/dev/mirror/gm0s1d /var ufs rw 2 2



3.2 Inserindo mais um disco no RAID 1

Inserir outro disco no arranjo é muito simples, o comando abaixo insere o disco da0 no RAID:

gmirror insert -v gm0 da0

É possível ver o andamento da sincronização com o comando gmirror status:

Name Status Components
mirror/gm0 DEGRADED ad1
ad3
da0 (3%)



3.3 Removendo um disco do RAID 1

Caso seja preciso trocar um disco da máquina que pertença ao RAID, será necessário removê-lo do arranjo, o comando abaixo remove o disco ad3 do RAID:

gmirror remove -v gm0 ad3

Com o comando gmirror status é possível ver que o disco ad3 não está mais no RAID:

Name Status Components
mirror/gm0 COMPLETE ad1
da0


3.4 Desativando o RAID 1

Semelhante ao visto na seção sobre RAID 0, desativar um RAID 1 também é muito simples (pra variar). O comando abaixo desativa o arranjo e limpa as informações do GEOM(8) dos discos:

gmirror stop -v gm0
gmirror unload -v
gmirror clear -v ad1 da0



4 RAID 10

O nível de RAID 10 (1+0) precisa no mínimo de 4 discos para funcionar corretamente, o objetivo deste estrutura é fornecer um alto nível de redundância. A ilustração abaixo tenta mostrar a organização dos discos em um RAID 10:

DISCO0 DISCO1   DISCO2 DISCO3
      |               |

    RAID1           RAID1
      |               |

      ------RAID0------



Como podemos ver, primeiramente os discos são dividos em 2 pares de RAID 1 e depois é feito um RAID 0 com os dois arranjos de nível 1. Simples demais. Bom, vamos lá então, dividi os discos em ad1 e ad3 e da0 e da1, um RAID 1 de dois discos IDE e outro de dois discos SCSI respectivamente. Primeiro vamos criar os arranjos de nível 1:

gmirror label -v -b load gm0 ad1 ad3
...
gmirror label -v -b load gm1 da0 da1
...


Com o comando gmirror status vemos que os dois arranjos foram criados:

Name Status Components
mirror/gm0 COMPLETE ad1
ad3
mirror/gm1 COMPLETE da0
da1


Bem, vamos agora criar o RAID 0 com os dois arranjos gm0 e gm1:

gstripe label -v gs0 /dev/mirror/gm0 /dev/mirror/gm1
...


Com o comando gstripe status vemos que o RAID 0 foi criado:

Name Status Components
stripe/gs0 UP mirror/gm0
mirror/gm1


Pronto, falta somente formatar o RAID e usar como quiser:

newfs /dev/stripe/gs0
..
mount /dev/stripe/gs0 /raid10


Num RAID 10 você pode perder qualquer um discos que o funcionamento do sistema não será afetado.


4.1 Desativando um RAID 10

Para desativar um RAID 10 você deve primeiro desativar o RAID 0:

gstripe stop -v gs0
gstripe unload -v
gstripe clear -v /dev/mirror/gm0 /dev/mirror/gm1


E depois desativar os RAID 1:

gmirror stop -v gm0
gmirror stop -v gm1
gmirror unload -v
gmirror clear -v ad1 ad3 da0 da1


Pronto, nos livramos de todos eles.

Danilo Egêa Gondolfo
daniloegea at yahoo.com.br
http://daniloegea.wordpress.com

Comentrios
Primeiro artigo no FUG
Por Danilo Ega em 07/02/2008 19:07:37
Esse foi meu primeiro artigo aqui no FUG. Bom, a indentao de algumas partes do artigo ficaram meio fora dos eixos hehe. 
 
A verso em PDF pode ser obtida aqui: http://daniloegea.files.wordpress.com/2008/02/fazendo_raid_0_1_e_10_no_freebsd.pdf 
 
Obrigado pela publicao Patrick. 
 
Abraos...
Parabns, tima contribuio, e obrigado
Por Patrick Tracanelli em 08/02/2008 10:28:56
Danilo, obrigado pela contribuio, uma das primeiros contribuies "brincando de lego" com Geom, que combina mais de um recurso pra obter uma terceira abordagem. 
 
Quem publicou foi o Alexandre, felizmente, mais rapido do que eu daria conta hehehe. 
 
Tentei te agradecer por e-mail mas o Yahoo tem bloqueado meus e-mails pra voce que dizem "obrigado" hehe. Provavelmente "obrigado" SPAM. At comentei isso na FUG hehe. 
 
Otima contribuio :)
Obrigado !
Por Danilo Ega em 08/02/2008 14:02:36
Ops, desculpe Alexandre, muito obrigado a voc tambm ! 
 
Abraos...
Por alex.vasconcelos em 08/02/2008 14:17:46
Ns que te agradecemos Danilo, sempre bom ter contribuies de pessoas da comunidade. Sempre que puder nos envie artigos e notcias. 
 
Abraos, 
Alexandre
Parabens!
Por Danton Dorati - urisso em 09/02/2008 11:02:06
Que seja o primeiro de muitos!
Parabns pelo artigo Danilo!!!!
Por mmaycon em 14/02/2008 23:35:44
muito bom mesmo! coloquei pra funcionar o RAID 1 com dois discos IDE em produo e ficou beleza! 
Gostaria de compartilhar inclusive alguns detalhes da implantao do RAID 1 para um sistema bsd j instalado porque que acho que alguns podem ter alguma dificuldade assim como eu (leigo) tive. 
Aps a instalao do S.O. todos os tens do tutorial devem estar instalados e configurados, ou seja, executar #gmirror label -v -b load gm0 ad1 ad3 
#gmirror load 
adicionar ao /boot/loader.conf o geom_mirror_load="YES", adicionar ao /etc/sysctl.conf o kern.geom.debugflags=16 e alterar o nome dos dispositivos no /etc/fstab conforme o tutorial com o nome que voc deu ao array e por ltimo faa o seguinte: 
 
#gmirror rebuild gm0 ad3(este comando reconstruir o dispositivo ad3 que receber as informaes do ad1 pois ao montar o array ele no sincroniza automaticamente a no ser que coloque a opo -a) 
#gmirror configure -a gm0 (-a liga a sincronia automtica) 
fiz assim porque achei mais seguro rsrsr... 
 
bom, isso! espero que ajude algum! 
 
um abrao a todos!
Obrigado !
Por Danilo Ega Gondolfo em 15/02/2008 08:52:37
Muito obrigado pelas observaes ! 
 
Abraos ... 
 
Danilo Ega Gondolfo
raid no msm hd (2 parties)
Por marcos em 13/04/2009 09:12:15
Bom dia caros colegas, 
 
tenho um trabalho na faculdade que trata da aplicao de RAID com o FREEBSD, o problema que no posso fazer alteraes de hardware nos micros da faculdade, ou seja preciso fazer com a configurao atual (1 unico HD), minha duvida , posso fazer o RAID usando uma maquina virtual, assim o sistema reconheceria AD1 e AD2 (criaria 2 discos na configurao da maquina virtual), ou instalaria efetivamente uma distro BSD e particionaria com uma partio a +? Qual a soluo ideal?


Comente!*
Nome:
E-mail
Homepage
Ttulo:
Comentrio:

Cdigo:* Code

ltima Atualizao ( 18/02/2008 )
 
< Anterior   Prximo >
FUG-BR - Espalhando BSD
Dicas Rpidas:
 






Wallpapers
Sua Opiniao
Online:
Ns temos 15 visitantes online


Devil Store - Sua loja BSD
FreeBSD Brasil LTDA

FUG-BR: Desde 1999, espalhando BSD pelo Brasil.