Como instalar corretamente o GRUB em um RAID 1 flexível?

21

Na minha instalação, tenho dois discos cada um formatados da seguinte maneira:

(GPT)
1)  1MB   BIOS_BOOT
2)  300MB LINUX_RAID   
3)  *     LINUX_RAID   

As partições de inicialização são mapeadas em / dev / md0, os rootfs em / dev / md1. md0 é formatado com ext2, md1 com XFS. (Entendo que a formatação deve ser feita nos dispositivos md e não no sd - informe-me se isso estiver errado).

Como eu configuro o GRUB corretamente para que, se uma unidade falhar, a outra ainda inicialize? E, por extensão, que uma unidade de substituição incluirá automaticamente o GRUB também? Se isso é possível, é claro.

vic
fonte

Respostas:

16

Se os dois discos forem /dev/sdae /dev/sdb, execute os dois grub-install /dev/sdae grub-install /dev/sdb. Em seguida, ambas as unidades poderão inicializar sozinhas.

Certifique-se de que sua configuração do Grub não codifique os discos (hd0), mas procure os UUIDs de inicialização e raiz dos sistemas de arquivos.

Não estou ciente do suporte no Grub para declarar dois discos como estando em uma matriz RAID-1, de modo que grub-installseria gravado automaticamente nos dois. Isso significa que você precisará executar grub-installnovamente se substituir um disco; é mais uma coisa a se fazer além de adicionar novos membros às matrizes RAID.

Gilles 'SO- parar de ser mau'
fonte
1
"Certifique-se de que sua configuração do Grub não codifique discos como (hd0), mas procure os UUIDs de inicialização e raiz dos sistemas de arquivos". Quão?
### lifeofguenter #
1
@lifeofguenter Withsearch
Gilles 'SO- stop
1
gnu.org/software/grub/manual/grub/grub.html#GNU_002fLinux ou veja o arquivo de sua distribuição
Gilles 'SO- stop
1
Em alguns sistemas, é em grub2-installvez de grub-install.
Ndemou 15/0318
1
Observe que o RAID está no nível da partição, não no nível do disco; se fosse, não haveria problema, pois o espelhamento também espelharia o MBR.
Marcos Dione
3

Eu fiz isso em alguns servidores no passado e encontrei problemas algumas vezes, geralmente o que faço é executar o seguinte

sudo grub-install /dev/sdb
sudo update-grub /dev/sdb

Os problemas que eu encontro são geralmente exibidos com mensagens de erro como

update-grub … update-grub failed with no such disk …

Para resolver isso, eu corri

sudo mv /boot/grub/device.map /boot/grub/device.map.old 
sudo update-grub 

e isso parece ter resolvido o problema - como um teste em alguns casos que removi /sdv/sdae usei /dev/sdbpara inicializar, mas isso não é o ideal e provavelmente não é possível na maioria dos ambientes de produção!

Tony Doyle
fonte
0

Minha experiência na instalação do CentOS 5 e CentOS 6 é que, durante a fase de instalação, configurei o RAID-1 naquele momento - a instalação oferece a você a opção de fazer isso. O que aconteceu foi o seguinte: 1. Definido / dev / sda1 como 1 GB como uma partição RAID 2. Definido / dev / sdb1 como 1 GB como uma partição RAID 3. Dispositivo RAID criado / dev / md0 composto por / dev / sda1 e / dev / sdb1 4. Criou a partição / boot usando / dev / md0 5. Criou partições adicionais usando as etapas 1 a 3. 6. Implementou o LVM nas partições criadas na etapa 5, seguindo as instruções.

Após a inicialização do sistema, no grub.conf alterei a entrada / dev / sda1 para / dev / md0. Copiei a entrada da linha splashimage que possui (hd0,0) e adicionei um # no início e alterei (hd0,0) para (hd1,0). Observando as respostas acima, mostrando como instalar o grub em / dev / sdb, siga-as. Modifique o fstab para que o ponto de montagem de inicialização use / dev / md0 (ao fazer uma atualização do yum, há algo atualizado na partição / boot que será gravado em / dev / sda1 e / dev / sdb1 ) Se você tiver uma falha no disco rígido / dev / sda, precisará inicializar usando o resgate e comentar a linha (hd0,0) e descomentar a linha (hd1,0). Seu sistema deve ser inicializável

Gene Poole
fonte