HOWTO Installation de Gentoo avec RAID

Un article de Gentoo Linux Wiki.

Cet article fait partie des HOWTOs.
Méthodes d'installation CD Live Noyau et matériel Portables et Notebooks Portage Système Réseaux et Services Serveur X Logiciels fréquemment utilisés Autres

Sommaire

[modifier] À propos de l'installation

Avant que vous ne commenciez à lire ce HOWTO, il peut être bon de se familiariser avec les instructions d'installation sur une architecture de type x86 en lisant la documentation d'installation par exemple. De même, de nombreuses manipulations sont communes aux deux méthodes (installation normale et installation sur un dispositif de type RAID), donc il vous faudra utiliser les deux documentations en parallèle.


Ce HOWTO supposera que vous voulez faire votre installation sur deux disques IDE, et que chacun est le maître sur son canal IDE (ils seront donc a priori notés /dev/hda et /dev/hdc). Le lecteur CD-Rom depuis lequel vous faites votre installation sera au choix /dev/hdb ou /dev/hdd, cela n'a pas d'importance.


Nous allons partitionner nos disques durs de manière similaire au partitionnement des documentations d'installation.

device         mount         size
/dev/hda1      /boot         100Mo
/dev/hda2      swap          >=2*RAM
/dev/hda3      /             (gros)
/dev/hda4      /home         (gros - optionnel)


/boot et / seront en RAID1 (mirroir) et /home sera en RAID0. La partition d'échange sera à la fois sur hda et hdc, mais ne sera pas en architecture RAID, nous verrons plus tard pourquoi.


Ici, il convient de faire le point sur les niveau RAID habituels, leurs avantages et inconvénients, pour pouvoir justifier ses choix.

RAID 0 : deux ou plus disques durs sont combinés en un seul gros volume. La taille de ce volume final est la somme de tous les disques durs. Quand une donnée est écrite sur le disque RAID, elle est écrite sur tous les disques en RAID0. Cela signifie que l'ecriture est rapide, mais que si l'un des disques a un problème, l'ensemble de vos fichiers sera perdu.

RAID 1 : deux disques durs sont combinés pour donner un volume de la taille du plus petit des deux disques durs. Les deux disques durs sur le RAID sont en fait des mirroirs l'un de l'autre. Si l'un des deux disques a un problème, les données restent sauvegardées sur le second et le système peut continuer de fonctionner correctement.

RAID 5 : trois ou plus disques durs sont combinés en un gros volume. La taille de celui-ci est (nombre de disques - 1) * (taille des disques). Vous perdez la taille d'un disque dur, car une partie de chaque disque dur sera utilisée comme une sauvegarde de données d'autres disques durs. Si l'un des disques a un problème, vous gardez vos données. Si deux ont un problème, toutes vos données sont perdues.


Quelques considérations d'ordre général sur le RAID. L'idéal est d'avoir une taille identique pour tous les disques d'un même RAID (NdT&mnsp;: voir même avoir des disques rigoureusement identiques -même marque, même modèle, même lot-). Toute différence entre les disques rendra difficile la gestion du RAID par votre ordinateur. De plus, un disque dur IDE sur un RAID doit être sur son propre canal IDE.

[modifier] Démarrer

Suivre les instructions habituelles d'installation pour cette section.


[modifier] Charger les modules du noyau

Notre machine de test utilise un chipset pour le réseau compatible avec le sis900, nous utiliserons donc celui-ci. Bien sûr, à vous d'adapter à vos besoins.

Code : charger le module réseau
modprobe sis900


Nous devons également charger le module qui permet le support du RAID :

Code : charger le module de support du RAID
modprobe md


[modifier] Charger les modules PCMCIA

Suivre les instructions pas habituelles d'installation pour cette section.

[modifier] Configuration du réseau

Suivre les instructions habituelles d'installation pour cette section.


[modifier] Partitionner

Vous allez devoir utiliser fdisk pour partitionner vos disques durs. Il n'y a rien de différent à l'utilisation habituel de fdisk sauf que vous devrez travailler sur les deux disques, et construirez tout, sauf la partition d'échange (swap). Pour faire vos partitions, faites fd pour que le noyau détecte automatiquement le RAID. Si vous vous trompez dans l'une de ces étapes, votre RAID ne fonctionnera pas. La partition d'échange doit être créée de type linux swap.

Il est peut-être temps maintenant de jouer avec hdparm. Cet outil vous permettra de changer les paramètres d'accès à votre disque dur, ce qui pourrait vous permettre d'accélérer l'accès disque.

Vous pourrez trouver sur le forum de Gentoo des articles intéressants sur hdparm notamment dans le forum anglais. Vous êtes donc invités à aller le consulter.

Avant de créer vos systèmes de fichiers sur les disques, nous allons tout d'abord créer et démarrer les services RAID. Nous avons besoin pour ça de configurer le fichier /etc/raidtab. Ce fichier va définir la correspondance entre les partitions physiques et l'organisation de vos disques RAID. Si vous avez des disques durs de taille différente en RAID 1 (ce qui n'est pas recommandé), le plus petit disque des deux devrait être le disque raid numéro 0 dans ce fichier. Notre fichier raidtab devrait avoir cet aspect :

Fichier : /etc/raidtab
#Gentoo Linux$ /boot (RAID 1)
raiddev                 /dev/md0
raid-level              1
nr-raid-disks           2
chunk-size              32
persistent-superblock   1
device                  /dev/hda1
raid-disk               0
device                  /dev/hdc1
raid-disk               1


#Gentoo Linux$ / (RAID 1)
raiddev                 /dev/md2
raid-level              1
nr-raid-disks           2
chunk-size              32
persistent-superblock   1
device                  /dev/hda3
raid-disk               0
device                  /dev/hdc3
raid-disk               1


#Gentoo Linux$ /home (RAID 0)
raiddev                 /dev/md3
raid-level              0
nr-raid-disks           2
chunk-size              32
persistent-superblock   1
device                  /dev/hda4
raid-disk               0
device                  /dev/hdc4
raid-disk               1


Ajouter des pièces de rechange à chaud est souvent une bonne idée, même si dans notre test, il n'y avait pas assez de disques durs pour le faire. En effet, si vous avez un disque dur qui meur sur votre architecture en RAID 1, vous pourrez toujours avoir un disque de rechange pour remplacer le disque défectueux. raidtab, avec un système d'échange à chaud ressemblerait à ceci :

Fichier : /etc/raidtab
#Gentoo Linux$ / (RAID 1 with hot-spare)
raiddev                 /dev/md2
raid-level              1
nr-raid-disks           2
nr-spare-disks 1
chunk-size              32
persistent-superblock   1
device                  /dev/hda3
raid-disk               0
device                  /dev/hdc3
raid-disk               1
device /dev/hdd1
spare-disk 0


et un RAID 5 (avec cette option toujours) donnerait ceci :

Fichier : /etc/raidtab
raiddev                 /dev/md4
raid-level              5
nr-raid-disks           3
nr-spare-disks          1
persistent-superblock   1
chunk-size              32
parity-algorithm        left-symmetric
device                  /dev/hda4
raid-disk               0
device                  /dev/hdb4
raid-disk               1
device                  /dev/hdc4
raid-disk               2
device                  /dev/hdd4
spare-disk              0

Maintenant nous avons besoin de créer nos disques RAID :

Code : création des disques RAID
mkraid /dev/md*


Vous devez faire cette manipulation pour tous les disques RAID, en remplaçant * par le dispositif spécifié dans votre fichier /etc/raidtab.


Nous utiliseront un système de fichiers de type ext2 pour le disque RAID de /boot :

Code : formattage de /boot
mke2fs /dev/md0


Souvenez-vous, nous avons dit que nous ne ferions pas de partition d'échange en RAID, pour que l'on puisse en avoir sur plus d'un seul disque. Mais sans être en RAID?. Donc quand on réserve de l'espace pour les partitions d'échange, on en réserve sur les deux disques. Puis on crèe les partitions d'échange :

Code : création des partitions d'échange
mkswap /dev/hda2
Gentoo Linux$ mkswap /dev/hdc2

Enfin, comme dans notre test nous souhaitons utiliser XFS comme système de fichiers pour / et /home :

Code : Formattage au format XFS
mkfs.xfs -d agcount=3 -l size=32m /dev/md2
mkfs.xfs -d agcount=3 -l size=32m /dev/md3


Les paramètres donnés à mkfs.xfs proviennent des suggestions proposées dans le guide d'installation pour x86. / et /home font environ 9Go, et XFS aime travailler par groupes d'allocation de 4Go. Donc on lui assigne un agcount de 3.

Si vous voulez un système de fichier de type ext3, vous devez faire ceci :

Code : Formattage au format ext3
mke2fs -j /dev/md2
Gentoo Linux$ mke2fs -j /dev/md3


Ou pour du ReiserFS :

Code : Formattage au format reiserfs
mkreiserfs /dev/md2
Gentoo Linux$ mkreiserfs /dev/md3

[modifier] Monter les partitions

Activez vos partitions d'échange :

Code : Activation des partitions d'échange
swapon /dev/hda2
swapon /dev/hdc2


Montez la racine et la partition de démarrage :

Code : montage des partitions
mkdir /mnt/gentoo
mount /dev/md2 /mnt/gentoo
mkdir /mnt/gentoo/boot
mount /dev/md0 /mnt/gentoo/boot


[modifier] Monter le CD-Rom

Suivre les instructions habituelles d'installation pour cette section.


[modifier] Désarchivez le stage que vous souhaitez utiliser

Suivre les instructions habituelles d'installation pour cette section, sauf que vous devrez recopier votre fichier /etc/raidtab par dessus votre nouvelle Gentoo. Après avoir recopié votre /etc/resolv.conf, faites la copie :

Code : copie du fichier de configuration du raid
cp /etc/raidtab /mnt/gentoo/etc/raidtab


[modifier] Synchronisation de l'arbre de Portage

Suivre les instructions habituelles d'installation pour cette section.


[modifier] Passer de stage1 à stage2 puis stage3

Suivre les instructions habituelles d'installation pour cette section.


[modifier] Configuration de la zone horaire

Suivre les instructions habituelles d'installation pour cette section.


[modifier] Compilation du noyau et système de log

Lors de la configuration de votre noyau pensez bien à compiler le support des dispositifs RAID et tous les niveaux RAID que vous souhaitez utiliser. Enfin, compilez-les dans le noyau et non comme modules. Si vous les compilez comme des modules, vous devrez charger les modules avant de monter les dispositifs en RAID, mais si vous voulez que / et /boot soient en RAID vous devrez construire un initrd spécifique qui se chargera de charger les modules avant de monter les disques. Mais cela sort de notre HOWTO, et c'est bien plus simple de compiler tous les supports RAID dans le noyau.


De plus, comme nous utilisons un système de fichiers XFS nous avons installé le xfs-sources. Sinon, suivez les instructions habituelles.

[modifier] Dernières étapes : installer des paquets supplémentaires

Comme nous utilisons un système de fichiers XFS nous installerons xfsprogs, pensez à installer le paquet correspondant à votre système de fichiers. Pour le reste, suivez les instructions habituelles.


Pensez également à installer les outils nécessaires à la gestion du RAID, en faisant un emerge raidtools.


[modifier] Dernières étapes : /etc/fstab

Là encore nous allons devoir spécifier au système que nous avons deux partitions d'échange. C'est dans ce fichier que vous spécifiez quelles sont vos partitions d'échange, et les priorités que vous leur donnez.


Faites également attention à bien spécifier les disques RAID et non les disques physiques dans /etc/fstab pour tous les disques qui sont en RAID. Notre fichier ressemblera à celui-ci :

Fichier : /etc/fstab
/dev/md0      /boot     ext2      noauto,noatime     1 2
/dev/md2      /         xfs       noatime            0 1
/dev/hda2     swap      swap      defaults,pri=1     0 0
/dev/hdc2     swap      swap      defaults,pri=1     0 0
/dev/md3      /home     xfs       noatime            0 1
/dev/cdroms/cdrom0   /mnt/cdrom   iso9660      noauto,ro      0 0
proc         /proc      proc      defaults           0 0


Ensuite, suivez les instructions normales, jusqu'à arriver à l'installation de grub.

Vous devez donc taper  :

Code : lancement de grub
Gentoo Linux$ grub

Les commandes sont les mêmes que dans une installation standard si vous avez la même configuration des partitions. Sinon, tapez :

Code : recherche dans grub

grub> find /boot/grub/stage1

Sachant que /boot est une partition sur un disque RAID, grub ne peut pas le lire pour obtenir le gestionnaire de démarrage. Il peut uniquement accéder à des disques à accès physique. Du coup, vous devez toujours utiliser (hd0,0) pour cette étape.


Le fichier menu.lst diffère de celui de l'installation normale. La différence réside dans la spécification du disque root, qui est maintenant un disque RAID et non un disque physique. Notre fichier ressemble à ceci :

Fichier : menu.lst
default 0
timeout 30
splashimage=(hd0,0)/boot/grub/splash.xpm.gz
title=My example Gentoo Linux
root (hd0,0)
kernel /boot/bzImage root=/dev/md2

[modifier] Fin de l'installation

Suivez les instructions habituelles du manuel d'installation pour cette section.


[modifier] Petits trucs pour le RAID

Pour vérifier que votre RAID fonctionne correctement après le redémarrage :

Code : Vérification du fonctionnement du RAID
cat /proc/mdstat


Il devrait y avoir une entrée par disque RAID. Les disques en RAID1 devraient avoir un [UU] comme paramètre, qui vous indiquera que les deux disques durs sont up,up c'est à dire en fonctionnement tous les deux. Si l'un d'eux plante, vous aurez un [U_]. Si cela vous arrive, vous devriez remplacer ce disque dur au plus vite, même si votre système continuera à fonctionner normalement.


Pour reconstruire un RAID 1 :

  • Arrêtez la machine
  • Remplacer le disque mort
  • Redémarrez votre machine
  • Remettez votre nouveau disque dans le RAID avec raidhotadd /dev/mdX /dev/hdX
  • Regardez ce qui se passe

NdT : si votre système le supporte, vous pouvez faire le remplacement à chaud en utilisant hdparm pour arrêter le disque en panne et le débrancher, puis pour remettre le nouveau en place. À tester.

[modifier] Auteur et traduction

Auteur : Chris Atwood
Voir l'article original sur le forum Gentoo.
Traduit depuis l'article sur la page anglaise du wiki.
Autres langues