Grub com Raid

Posted on jan 24, 2009 under Dicas Linux, Sem categoria | 4 Comentários

Depois 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.

4 Responses to “Grub com Raid”

  1. Rodrigo disse:

    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

  2. admin disse:

    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

  3. Rodrigo disse:

    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.

  4. Rodrigo disse:

    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 /

Leave a Reply