web-dev-qa-db-fra.com

Comment installer correctement GRUB sur un RAID 1 logiciel?

Dans ma configuration, j'ai deux disques qui sont chacun formatés de la manière suivante:

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

Les partitions de démarrage sont mappées dans/dev/md0, les rootfs dans/dev/md1. md0 est formaté avec ext2, md1 avec XFS. (Je comprends que le formatage doit être fait sur les appareils md et non sur sd - veuillez me dire si c'est faux).

Comment configurer correctement GRUB pour que si un disque tombe en panne, l'autre démarre toujours? Et par extension, qu'un disque de remplacement inclura automatiquement GRUB également? Si cela est possible, de cours.

21
vic

Si les deux disques sont /dev/sda et /dev/sdb, exécutez les deux grub-install /dev/sda et grub-install /dev/sdb. Les deux disques pourront alors démarrer seuls.

Assurez-vous que votre configuration Grub ne code pas des disques durs comme (hd0), mais recherche à la place les UUID des systèmes de fichiers de démarrage et racine.

Je ne suis pas au courant de la prise en charge dans Grub pour déclarer deux disques comme étant dans une matrice RAID-1 afin que grub-install écrirait automatiquement sur les deux. Cela signifie que vous devrez exécuter grub-install encore si vous remplacez un disque; c'est une chose à faire en plus d'ajouter de nouveaux membres aux matrices RAID.

J'ai fait cela sur un certain nombre de serveurs au cours des dernières années et j'ai parfois rencontré des problèmes, généralement ce que je fais est d'exécuter ce qui suit

Sudo grub-install /dev/sdb
Sudo update-grub /dev/sdb

Les problèmes que j'ai rencontrés sont généralement affichés avec des messages d'erreur comme

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

Pour résoudre cela, j'ai couru

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

et cela semble avoir résolu le problème - comme test dans certains cas, j'ai supprimé /sdv/sda et vient d'utiliser /dev/sdb pour démarrer mais ce n'est pas idéal et très probablement pas possible dans la plupart des environnements de production!

3
Tony Doyle

Mon expérience d'installation de CentOS 5 et CentOS 6 est que pendant la phase d'installation, j'ai configuré le RAID-1 à ce moment-là - l'installation vous donne le choix de le faire. Ce qui s'est passé est le suivant: 1. Défini/dev/sda1 comme 1 Go comme partition RAID 2. Défini/dev/sdb1 comme 1 Go comme partition RAID 3. Périphérique RAID créé/dev/md0 composé de/dev/sda1 et/dev/sdb1 4. Création de la partition/boot à l'aide de/dev/md0 5. Création de partitions supplémentaires à l'aide des étapes 1 à 3. 6. Implémentation de LVM sur les partitions créées à l'étape 5 en suivant les instructions.

Après le démarrage initial du système, dans le fichier grub.conf, j'ai modifié l'entrée/dev/sda1 en/dev/md0. J'ai ensuite copié l'entrée la ligne d'image de démarrage a (hd0,0) et ajouté un # au début et changé (hd0,0) en (hd1,0). En regardant les réponses ci-dessus montrant comment installer grub dans/dev/sdb, suivez-les. Modifiez le fstab pour que le point de montage de démarrage utilise/dev/md0 (ce faisant, lorsque vous effectuez une mise à jour yum, il y a quelque chose de mis à jour sur la partition/boot, il sera écrit à la fois/dev/sda1 et/dev/sdb1 ). Si vous rencontrez une défaillance du disque dur/dev/sda, vous devrez démarrer en utilisant le secours et commenter la ligne (hd0,0) et décommenter la ligne (hd1,0). Votre système devrait être amorçable

0
Gene Poole