Como instalar o servidor Ubuntu com UEFI e RAID1 + LVM

8

Eu costumava instalar meus servidores com o LVM sobre o software RAID1 e instalar o grub no MBR de ambas as unidades. Agora eu tenho um servidor UEFI e o modo de compatibilidade (BIOS) parece não funcionar.

Então eu fui a maneira de instalar com UEFI.

Primeiro teste, a instalação de uma única unidade funciona bem.

Então eu tentei instalar com o RAID1 + LVM. Eu parodiava meus dois drives da mesma maneira:

  • uma partição do sistema EFI, 200MB
  • uma partição RAID física

Então eu fiz a configuração:  - um RAID 1 usando os dois discos de partições RAID  - um grupo de volumes LVM no array RAID 1  - três volumes lógicos: /, / home e swap

A instalação continuou, mas na reinicialização, recebo um shell e estou preso.

Então, é possível ter o trabalho do grub2-efi no LVM sobre o RAID1? Qual é o caminho para conseguir isso? Existem outras alternativas de bootloader (carregamento direto de linux do EFI ??)? etc ...

    
por alci 09.10.2013 / 10:26

3 respostas

9

Ok, encontrei a solução e posso responder minhas próprias perguntas.

1) posso usar o LVM sobre o RAID1 em uma máquina UEFI?

Sim, definitivamente. E poderá inicializar mesmo que um dos dois discos falhe.

2) Como fazer isso?

Eles parecem ser um bug no instalador, então apenas usando o instalador resulta em uma falha na inicialização (grub shell).

Aqui está um procedimento de trabalho:

1) crie manualmente as seguintes partições em cada um dos dois discos: - uma partição de 512 MB com o tipo UEFI no início do disco - uma partição do tipo RAID depois disso

2) crie seu array RAID 1 com as duas partições RAID, então crie seu grupo de volume LVM com esse array, e seus volumes lógicos (criei um para root, um para home e um para swap).

3) deixe a instalação continuar e reinicie. FALHA ! Você deveria pegar uma concha.

4) pode ser possível inicializar a partir do shell grub, mas eu escolhi inicializar a partir de um disco usb de resgate. No modo de recuperação, eu abri um shell no meu target root fs (que é aquele no volume lógico lvm raiz).

5) obtenha o UUID desta partição raiz de destino com 'blkid'. Anote ou tire uma foto com seu telefone, você precisará do próximo passo.

6) monte a partição do sistema EFI ('mount / boot / efi') e edite o arquivo grub.cfg: vi /boot/efi/EFI/ubuntu/grub.cfg Aqui, substitua o UUID errado pelo que você obteve no ponto 5. Salvar.

7) para poder arrancar a partir do segundo disco, copie a partição EFI para este segundo disco: dd if = / dev / sda1 de = / dev / sdb1 (altere sda ou sdb com o que for adequado à sua configuração).

8) Reinicie. Na tela de configuração da UEFI, defina as duas partições EFI como inicializáveis e defina uma ordem de inicialização.

Você está feito. Você pode testar, desconectar um ou outro dos discos, deve funcionar!

    
por alci 09.10.2013 / 14:23
3

Eu fiz isso há pouco mais de um ano e, apesar de ter problemas, não tive os problemas listados aqui. Não tenho certeza de onde encontrei o conselho que fiz na época, então vou postar o que fiz aqui.

1) Crie partições efi de 128MB no início (apenas uma delas será montada em / boot / efi)

2) Crie uma matriz RAID1 de 1 GB / boot, sem LVM

3) Crie uma matriz RAID1 grande usando o LVM

Ter / boot em uma partição separada / matriz RAID1 resolve os problemas da partição efi não conseguir encontrar as coisas apropriadas.

E para quem procura mais detalhes, como eu estava na época, é mais precisamente como eu fiz minha configuração:

6x 3TB Drives

Have 4 RAID arrays:
/dev/md0 = 1GB RAID1 across 3 drives
   --> /boot (no LVM)
/dev/md1 = 500GB RAID1 across 3 drives
   LVM:
      --> /     =  40GB
      --> /var  = 100GB
      --> /home = 335GB
      --> /tmp  =  10GB

/dev/md2 = 500GB RAID1 across 3 drives (for VM's/linux containers)
   LVM:
      --> /lxc/container1 =  50GB
      --> /lxc/container2 =  50GB
      --> /lxc/container3 =  50GB
      --> /lxc/container4 =  50GB
      --> /lxc/extra      = 300GB (for more LXC's later)

/dev/md3 = 10TB RAID6 across 6 drives (for media and such)
   --> /mnt/raid6 (no LVM)


Disks are setup thus:

/sda => /boot/efi (128 MB) | /dev/md0 (1 GB) | /dev/md1 (500GB) | /dev/md3 (2.5TB)
/sdb => /boot/efi (128 MB) | /dev/md0 (1 GB) | /dev/md1 (500GB) | /dev/md3 (2.5TB)
/sdc => /boot/efi (128 MB) | /dev/md0 (1 GB) | /dev/md1 (500GB) | /dev/md3 (2.5TB)
/sdd => ----- left empty for simplicity ---- | /dev/md2 (500GB) | /dev/md3 (2.5TB)
/sde => ----- left empty for simplicity ---- | /dev/md2 (500GB) | /dev/md3 (2.5TB)
/sdf => ----- left empty for simplicity ---- | /dev/md2 (500GB) | /dev/md3 (2.5TB)

Note que apenas um dos / boot / efi irá realmente montar, e os segundos dois são clones; Eu fiz isso porque eu queria que a máquina ainda inicializasse quando perdesse qualquer um dos 3 discos no RAID1. Eu não me importo de rodar em modo degradado se eu ainda tiver redundância total, e isso me dá tempo para substituir a unidade enquanto a máquina ainda está funcionando.

Além disso, se eu não tivesse o segundo array RAID1 para colocar os contêineres do LXC e basicamente todos os bancos de dados, o / var teria que ter sido MUITO maior. Ter cada LXC como seu próprio volume lógico foi, no entanto, uma boa solução para impedir que uma VM / site interrompesse as outras devido a logs de erros fora de controle, por exemplo ...

E nota final, eu instalei a partir do Ubuntu Alternate Install USB com 12.04.01 (antes de 12.04.02 saiu), e tudo funcionou muito bem. Depois de bater minha cabeça contra ela por 72 horas.

Espero que ajude alguém!

    
por jhaagsma 23.01.2014 / 20:46
1

Eu tive o mesmo probem, efi boot com dois discos e software raid

/ dev / sda

  • / dev / sda1 - partição de efi de 200MB
  • / dev / sda2 - 20G físico para invasão
  • / dev / sda3 - 980G físico para raid

/ dev / sdb

  • / dev / sdb1 - partição de efi de 200MB
  • / dev / sdb2 - 20G físico para invasão
  • / dev / sdb3 - 980G físico para raid

Trocar / dev / md0 (sda2 e sdb2) Raiz em / dev / md1 (sda3 e sdb3)

Se você entrar no shell grub-rescue, inicialize usando:

set root=(md/1)
linux /boot/vmlinuz-3.8.0-29-generic root=/dev/md1
initrd /boot/initrd.img-3.8.0-29-generic
boot

Depois disso, baixe este arquivo de correção - link (conforme explicado em link )

cp /usr/sbi/grub-install /usr/sbi/grub-install.backup
patch /usr/sbin/grub-install patch
mount /dev/sda1 /boot/efi
grub-install /dev/sda1
umount /dev/sda1
mount /dev/sdb1 /boot/efi
grub-install /dev/sdb1
reboot
    
por Ljupco 04.12.2013 / 15:17