Grub com Raid
Posted on jan 24, 2009 under Dicas Linux, Sem categoria | 4 ComentáriosDepois de um tempo sem novidades no blog, consegui um tempo para fazer um artigo sobre o grub com raid1.
Neste artigo trago um exemplo hipotético de Raid com dois Hard Drives Raid nível 1, com o bootloader grub.
Não viso mostrar como fazer o Raid via software no Linux; a intenção é somente como configurar o grub para que funcione nos dois discos.
O primeiro problema é instalar o grub na MBR dois HDs.
Então vamos resolver o primeiro problema com os seguintes comandos:
localhost # grub
grub>find /boot/grub/stage1
(hd0,0)
(hd1,0)
Com a resposta do comando podemos ver que existem os arquivos necessários para instalar o grub nos dois discos (hd0,0)=hda ou sda, e (h1,0)=hdb ou sbd.
Bom agora é só instalar manualmente o grub em cada disco.
grub>device (hd0) /dev/sda ou (/dev/hda se for ide)
grub>root (hd0,0)
grub>setup (hd0)
grub>device (hd1) /dev/sdb
grub>root (hd1,0)
grub>setup (hd1)
grub>quit
Pronto! O primeiro problema está resolvido. Vamos ao segundo que é a configuração do grub, para que reconheça o sistema em raid.
Quando o disco principal falhar, o boot deve ocorrer normalmente com o disco secundário no caso do raid1 com dois discos.
Vou mostrar somente a parte mais importante da configuração do arquivo /boot/grub/menu.lst, o restante não necessita ser modificado.
fallback 1
title Gentoo
root (hd0,0)
kernel /boot/vmlinuz-2.6.11.7 root=/dev/md0 md=0,/dev/sda1,/dev/sdb1 ro
boot
title Gentoo (RAID Recovery)
root (hd1,0)
kernel /boot/vmlinuz-2.6.11.7 root=/dev/md0 md=0,/dev/sdb1 ro
boot
Beleza pessoal, este foi o primeiro artigo do ano.
Sucesso para todos nós em 2009.

Caro Marlon,
Achei interesantissima a matéria e estou realizando os procedimentos em laboratorio, entretanto enfrento um problema. Segue abaixo.
grub> find /boot/grub/stage1
(hd0,0)
grub>
Como vimos o comando acima lista apenas um dos meus discos. Segue os dados do RAID que criei.
/dev/md0:srv-pge-011:~ # mdadm -D /dev/md0
/dev/md0:
Version : 00.90.03
Creation Time : Tue Mar 24 19:07:27 2009
Raid Level : raid1
Array Size : 160521408 (153.09 GiB 164.37 GB)
Used Dev Size : 160521408 (153.09 GiB 164.37 GB)
Raid Devices : 2
Total Devices : 2
Preferred Minor : 0
Persistence : Superblock is persistent
Update Time : Wed Mar 25 19:03:08 2009
State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
UUID : 4a41c4b7:37ae1318:c1524fcd:5479ef34
Events : 0.4620
Number Major Minor RaidDevice State
0 8 2 0 active sync /dev/sda2
1 8 17 1 active sync /dev/sdb1
Ou seja, vemos que o raid está operacional.
Minha pergunta é, do comando grub> find /boot/grub/stage1 me retornar um resultado como visto acima como devo proceder.
Desde de já agradeço.
Rodrigo
Olá Rodrigo
Verifica se os hds estão sincronizados com o comando
cat /proc/mdstat
ou monta o hd secundário e verifica se possuí os arquivos.
Atenciosamente,
Marlon
Olá Marlon.
Em primeiro lugar muito obrigado por responder.
Vejamos o que eu fiz ok.
srv-pge-012:~ # cat /proc/mdstat
Personalities : [raid1] [raid0] [raid5] [raid4] [linear]
md0 : active raid1 sda2[0] sdb1[1]
160521408 blocks [2/2] [UU]
unused devices:
Aí vemos os dois discos.
mount /dev/md0 /mnt/raid
srv-pge-012:/mnt/raid # l
total 31
drwxr-xr-x 22 root root 536 Mar 26 17:06 ./
drwxr-xr-x 3 root root 72 Mar 26 16:53 ../
-rw——- 1 root root 1024 Mar 24 16:02 .rnd
drwxr-xr-x 2 root root 2920 Mar 25 12:04 bin/
drwxr-xr-x 2 root root 48 Mar 24 15:29 boot/
drwxr-xr-x 5 root root 1136 Mar 24 15:29 dev/
drwxr-xr-x 77 root sys 6552 Mar 26 17:14 etc/
drwxr-xr-x 2 root root 48 May 3 2007 home/
drwxrwxr-x 7 root root 328 Mar 26 17:06 jre/
drwxr-xr-x 12 root root 4328 Mar 25 12:11 lib/
drwxr-xr-x 4 root root 96 Mar 26 16:57 media/
drwxr-xr-x 3 root root 72 Mar 26 16:53 mnt/
drwxr-xr-x 6 root sys 144 Mar 26 17:08 opt/
drwxr-xr-x 3 root root 72 Mar 24 15:29 proc/
drwx—— 24 root root 1080 Mar 26 17:08 root/
drwxr-xr-x 3 root root 9008 Mar 25 12:14 sbin/
drwxr-xr-x 4 root root 96 Mar 24 15:30 srv/
drwxr-xr-x 3 root root 72 Mar 24 15:29 sys/
drwxrwxrwt 13 root root 3520 Mar 26 17:30 tmp/
drwxr-xr-x 13 root root 368 Mar 26 17:03 usr/
drwxr-xr-x 16 root root 408 Mar 26 17:08 var/
Unidade montada. entretando olhemos o diretório /boot.
No sintema eu tenho:
srv-pge-012:/mnt/raid # l /boot/
total 7636
drwxr-xr-x 5 root root 632 Mar 25 12:10 ./
drwxr-xr-x 22 root root 536 Mar 26 17:06 ../
-rw-r–r– 1 root root 737605 Jan 19 00:58 System.map-2.6.16.60-0.34-bigsmp
-rw——- 1 root root 512 Mar 24 15:40 backup_mbr
lrwxrwxrwx 1 root root 1 Mar 24 15:33 boot -> ./
-rw-r–r– 1 root root 70582 Jan 19 01:08 config-2.6.16.60-0.34-bigsmp
drwxr-xr-x 2 root root 512 Mar 25 12:10 grub/
lrwxrwxrwx 1 root root 28 Mar 25 12:10 initrd -> initrd-2.6.16.60-0.34-bigsmp
-rw-r–r– 1 root root 3166964 Mar 25 12:10 initrd-2.6.16.60-0.34-bigsmp
-rw-r–r– 1 root root 135680 Mar 24 15:40 message
-rw-r–r– 1 root root 131632 Jan 19 01:13 symsets-2.6.16.60-0.34-bigsmp.tar.gz
-rw-r–r– 1 root root 350005 Jan 19 01:13 symtypes-2.6.16.60-0.34-bigsmp.gz
-rw-r–r– 1 root root 96981 Jan 19 01:12 symvers-2.6.16.60-0.34-bigsmp.gz
-rwxr-xr-x 1 root root 1688781 Jan 19 01:08 vmlinux-2.6.16.60-0.34-bigsmp.gz*
lrwxrwxrwx 1 root root 29 Mar 25 12:10 vmlinuz -> vmlinuz-2.6.16.60-0.34-bigsmp
-rw-r–r– 1 root root 1402884 Jan 19 00:58 vmlinuz-2.6.16.60-0.34-bigsmp
No meu ponto de montagem eu tenho:
srv-pge-012:/mnt/raid # l boot/
total 1
drwxr-xr-x 2 root root 48 Mar 24 15:29 ./
drwxr-xr-x 22 root root 536 Mar 26 17:06 ../
srv-pge-012:/mnt/raid #
Percebe o que há de errado? Me parece que ele não replica os arquivos do /boot. Estou certo?
Caso o problema seja este mesmo como posso solucioná-lo?
Desde de já agradeço pela sua ajuda.
Grande abraço.
Um detalhe que pode ser importante, abaixo estão os detalhes das minhas partições.
Device Size F Type Mount
/dev/sda 153.3GB ExcelStor-Techno
/dev/sda1 305.8 MB Linux native /boot
/dev/sda2 153.0 GB Linux RAID
/dev/sdb 153.3 GB ExcelStor-Techno
/dev/sdb1 153.3 GB Linux native
/dev/md0 153.0 GB MD Raid /