web-dev-qa-db-fra.com

Comment installer un serveur Ubuntu avec UEFI et RAID1 + LVM

J'avais l'habitude d'installer mes serveurs avec LVM sur le logiciel RAID1 et de l'installer sur le MBR des deux lecteurs. Maintenant, j'ai un serveur UEFI et le mode de compatibilité (BIOS) ne semble pas fonctionner.

Je suis donc allé dans le sens de l'installation avec UEFI.

Premier test, l'installation d'un seul lecteur fonctionne bien.

Ensuite, j'ai essayé d'installer avec RAID1 + LVM. J'ai partagé mes deux disques de la même manière:

  • une partition système EFI, 200 Mo
  • une partition RAID physique

Ensuite, j'ai installé: - un RAID 1 utilisant des partitions RAID à deux disques - un groupe de volumes LVM sur la matrice RAID 1 - trois volumes logiques: /,/home et swap

L'installation s'est poursuivie, mais au redémarrage, je reçois un shell Shell et je suis coincé.

Alors, est-il possible de faire fonctionner grub2-efi sur LVM via RAID1? Quel est le moyen d'y parvenir? Existe-t-il d'autres alternatives pour le chargeur de démarrage (chargement sous Linux direct depuis EFI ??)? etc...

12
alci

Ok, j'ai trouvé la solution et je peux répondre à mes propres questions.

1) Puis-je utiliser LVM sur RAID1 sur une machine UEFI?

Oui définitivement. Et il pourra démarrer même si l’un des deux disques tombe en panne.

2) Comment faire cela?

Ils semblent être bug dans le programme d’installation. L’utilisation du programme d’installation entraîne donc un échec d’amorçage (shell Grub).

Voici une procédure de travail:

1) Créez manuellement les partitions suivantes sur chacun des deux disques: - une partition de 512 Mo de type UEFI au début du disque - une partition de type RAID après celle-ci

2) créez votre matrice RAID 1 avec les deux partitions RAID, puis créez votre groupe de volumes LVM avec cette matrice et vos volumes logiques (j'en ai créé un pour le compte root, un pour le serveur principal et un pour le swap).

3) laissez l'installation se poursuivre et redémarrez. ÉCHEC ! Vous devriez avoir un coquillage.

4) il pourrait être possible de démarrer à partir du shell grub, mais j’ai choisi de démarrer à partir d’un disque USB de secours. En mode de secours, j'ai ouvert un shell sur la fs racine cible (c'est-à-dire celle située sur le volume logique root lvm).

5) Obtenez l'UUID de cette partition racine cible avec 'blkid'. Notez-le ou prenez une photo avec votre téléphone, vous en aurez besoin à l'étape suivante.

6) montez la partition système EFI ('mount/boot/efi') et éditez le fichier grub.cfg: vi /boot/efi/EFI/ubuntu/grub.cfg Ici, remplacez le UUID erroné par celui que vous avez obtenu au point 5. Enregistrer.

7) pour pouvoir démarrer à partir du deuxième disque, copiez la partition EFI sur ce deuxième disque: dd if =/dev/sda1 de =/dev/sdb1 (changez sda ou sdb avec ce qui convient à votre configuration).

8) Redémarrez. Dans votre écran de configuration UEFI, définissez les deux partitions EFI comme amorçables et définissez un ordre de démarrage.

Vous avez terminé. Vous pouvez tester, débrancher l’un ou l’autre des disques, ça devrait marcher!

10
alci

Je l'ai fait moi-même il y a un peu plus d'un an et, même si j'avais des problèmes, je n'avais pas les problèmes énumérés ici. Je ne suis pas sûr où j'ai trouvé le conseil que j'ai fait à l'époque, alors je posterai ce que j'ai fait ici.

1) Créez des partitions efi de 128 Mo au début (dont une seule sera montée, à/boot/efi)

2) Créer une matrice RAID1 de 1 Go/démarrage sans LVM

3) Créer une grande matrice RAID1 à l'aide de LVM

Avoir/boot sur une partition séparée/un ensemble RAID1 résout les problèmes de la partition efi, incapable de trouver les éléments appropriés.

Et pour ceux qui recherchent plus de détails, comme j’étais à l’époque, c’est ainsi que j’ai fait ma configuration:

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)

Notez que seul l'un des/boot/efi sera effectivement monté, et les deux autres sont des clones; C'est ce que j'ai fait parce que je souhaitais que la machine continue à démarrer en cas de perte de l'un des 3 disques du RAID1. Cela ne me dérange pas de passer en mode dégradé si la redondance est toujours complète, ce qui me laisse le temps de remplacer le lecteur alors que la machine est toujours en marche.

De plus, si je n'avais pas le second réseau RAID1 pour mettre les conteneurs LXC et essentiellement toutes les bases de données et autres,/var aurait dû être BEAUCOUP plus grand. Avoir chaque LXC comme son propre volume logique était cependant une solution intéressante pour empêcher une machine virtuelle/un site Web de perturber les autres en raison de journaux d’erreurs hors de contrôle, par exemple ...

Et note finale, j’ai installé à partir de Ubuntu Alternate Install USB avec 12.04.01 (avant que 12.04.02 ne soit sorti), et tout a fonctionné assez bien. Après avoir frappé ma tête contre elle pendant 72 heures.

J'espère que ça aide quelqu'un!

3
jhaagsma

J'ai eu le même probem, efi boot avec deux disques et raid logiciel

/ dev/sda

  • / dev/sda1 - 200 Mo de partition efi
  • / dev/sda2 - physique 20G pour le raid
  • / dev/sda3 - 980G physique pour le raid

/ dev/sdb

  • / dev/sdb1 - 200 Mo de partition efi
  • / dev/sdb2 - physique 20G pour le raid
  • / dev/sdb3 - 980G physique pour le raid

Échange sur/dev/md0 (sda2 et sdb2) Racine sur/dev/md1 (sda3 et sdb3)

Si vous entrez dans le shell grub-rescue, démarrez avec:

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

Après cela, téléchargez ce fichier de correctif - https://launchpadlibrarian.net/151342031/grub-install.diff (comme expliqué sur https://bugs.launchpad.net/ubuntu/ + source/grub2/+ bug/1229738 )

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
2
Ljupco