Installation d'un système Gentoo Linux sur un raid logiciel

Configuration matérielle - Mise en place du raid logiciel -

I- Configuration matérielle :

L'ordinateur qui a servi à tester ce tutoriel est constitué de :
- 3 disques SATA (détectés en tant que /dev/sda, /dev/sdb, /dev/sdc ),
- une carte mère Gigabyte M61P-S3 (équipée d'un chipset nForce 430),
- un processeur Athlon 64 X2 4600+
- 2 barrettes de 512 Mo de mémoire DDR2 6400 (à 800 Mhz) en dual channel

Le but de ce guide est de créer un système de volumes raid et d'installer une distribution Gentoo Linux sur l'un d'eux.

Le raid 5 est un bon compromis entre :
- la vitesse obtenue (un volume raid 5 est plus rapide qu'une partition ordinaire, mais pas autant qu'un volume raid 0),
- la sécurité (un peu comme avec du raid 1, la perte d'un disque n'entraîne pas la perte des données qu'il contient),
- la perte d'espace disque (un raid 0, ne fait pas perdre d'espace disque, mais c'est une solution très risquée, un raid 1 -ou un raid 10- fait perdre la moitié de l'espace disque ; avec un raid 5 seul l'équivalent d'1 disque est utilisé pour stocker les données redondantes).

C'est donc sur du raid5 que nous installerons les volumes système (/), auxilliaire (/var), utilisateurs (/home) et de données (/mnt/donneesLinuxA64X2). Et pour des raisons techniques, nous allons installer sur du raid1 un volume de démarrage (boot).

La mise en place d'un raid dépend du type de contrôleur :
- Avec un contrôleur entièrement matériel ou avec certains contrôleurs fakeraid pris en charge par Linux (comme celui de Jmicron), il n'y a rien de particulier à faire (à part une éventuelle recompilation du noyau). Les disques configurés en raid au niveau du BIOS apparaissent comme un unique disque.
- Avec certains contrôleurs fakeraid (comme le nForce), on peut obtenir un résultat similaire à l'aide du programme dmraid. Malheureusement, le support raid5 pour dmraid n'est pas encore au point.
- La solution qui fonctionne avec tous types de contrôleurs est la solution logicielle apportée par mdadm.
C'est celle-ci solution qui est expliquée ici.

Vers le haut de la page

(1) (2)

II- Mise en place du raid logiciel :

1°) Plan de partitionnement :

Il faut commencer par partitionner les 3 disques comme ci-dessous. Pour cela, on peut utiliser fdisk, cfdisk ou encore diskdrake (présent sur le 1er cd d'installation d'une distribution Mandriva récente).

Disque 1 : /dev/sda


Disque 2 : /dev/sdb


Vers le haut de la page

(1) (2)

Disque3 : /dev/sdc


Système multidisque obtenu :


Après configuration, les seul volumes disponibles seront les volumes /dev/mdX ci-dessus et les volumes coloriés en gris :
/dev/sda2 (pour le système Windows), /dev/sda8 et /dev/sdb8 (pour e swap), /dev/sdb10 (pour une sauvegarde supplémentaire) et enfin /dev/sdc9 (pour des données en FAT32).

Vers le haut de la page

(1) (2)

2°) Installation d'une distribution Gentoo Linux sur la partition de réserve /dev/sdb10 :

Avant d'installer le système Gentoo sur la partition / raid, le plus pratique est d'installer d'abord un système Gentoo auxiliaire dans la partition reiseirfs /dev/sdb10.
C'est en utilisant ce système auxiliaire configuré pour le raid, qu'on va installer le système Gentoo principal (dans l'espace raid /dev/md0 ).
Le démarrage sur un livecd ne servira qu'à installer la première Gentoo.


1ère étape : installation du système auxiliaire :
Il suffit de suivre la procédure habituelle pour installer une Gentoo non graphique sur /dev/sdb10 .
La seule précaution à prendre est de compiler le noyau avec les supports raid5 et raid1, en dur de préférence.


2ème étape :création des volumes raid :
a) Installer mdadm sur le système auxiliaire : emerge mdadm

b) Créer les volumes raid5 en tapant :
mdadm --create /dev/md0 --level 5 --raid-devices=3 /dev/sda5 /dev/sdb5 /dev/sdc5
mdadm --create /dev/md1 --level 5 --raid-devices=3 /dev/sda6 /dev/sdb6 /dev/sdc6
mdadm --create /dev/md2 --level 5 --raid-devices=3 /dev/sda7 /dev/sdb7 /dev/sdc7
mdadm --create /dev/md3 --level 5 --raid-devices=3 /dev/sda9 /dev/sdb9 /dev/sdc8

c) Créer le volume raid1 avec uniquement deux partitions pour l'instant :
mdadm --create /dev/md4 --level 1 --raid-devices=2 /dev/sdb1 /dev/sdc1
Le système Gentoo définitif sera d'abord installé avec une partition /boot classique.
Lorsque tout fonctionnera bien, on copiera le répertoire /boot sur ce volume raid1.

Vers le haut de la page

(1) (2)

d) Toutes les informations concernant les volumes RAID sont accessibles par :
cat /proc/mdstat
En tapant cette commande, on constate que les volumes raid sont en train d'être assemblés. Cette opération peut prendre du temps (plus d'une heure), selon la taille des partitions.


e) Pour que ces volumes raid soient actifs au prochain démarrage, il faut taper :
mdadm -D -s >> /etc/mdadm.conf


f) Formater chaque volume en tapant :
mkreiserfs /dev/md0 && mkreiserfs /dev/md1 && mkreiserfs /dev/md2 && mkreiserfs /dev/md3 && mke2fs /dev/md4


g) Pour étendre un raid1, lorsque tout fonctionnera bien, faire :
umount /dev/md4 (démonter le raid avant tout)
cfdisk /dev/sda (transformer la partition ext2 /dev/sda1 en partition linux raid (FD) )
mdadm /dev/md4 -a /dev/sda1 (ajouter le disque)
mdadm --grow /dev/md4 --raid-disks=3 (étendre le raid)
mke2fs /dev/md4 (reformater le volume raid)
vi /etc/mdadm.conf (effacer les dernières lignes du fichier de configuration)
mdadm -D -s >> /etc/mdadm.conf (réécrire la configuration)

Vers le haut de la page

(1) (2)

3ème étape : Test des volumes raid :
Pour simuler la panne d'un disque dur, il faut taper par exemple mdadm --fail /dev/md0 /dev/sda5
Un coup d'oeil dans le /proc/mdstat montre alors que le volume md0 ne contient plus que deux unités au lieu de 3.
Pour remettre la partition enlevée précédemment dans son volume raid, ou pour ajouter une nouvelle partition, après une réelle défaillance,
taper mdadm -a /dev/md0 /dev/sda5 (opération longue)

Il n'est pas inutile d'utiliser ces test pour vérifier :

- la bonne configuration du système,

- le fait que les données sont bien accessibles, même après la défaillance d'un disque.

Vers le haut de la page

(1) (2)

3°) Installation du système Gentoo définitif sur les volumes /dev/md0 et /dev/md4 et fin du travail:
Le système auxiliaire (installé sur /dev/sdb10) supporte les volumes raid qui ont été créés. Il est donc possible, à partir de ce système, d'installer la Gentoo définitive sur le volume /dev/md0. Pour cela, on reprend les étapes 1 et 2 du 2°) .


Pour que le système définitif puisse démarrer, c'est plus compliqué, car il n'est pas possible de démarrer sur du raid 5. Cependant, c'est possible sur du raid 1.
On doit donc répartir l'installation de notre Gentoo au moins sur deux volumes : un volume raid1 pour le répertoire /boot (/dev/md4) et un volume raid5 pour le reste de l'installation (/dev/md0). Ainsi, le système démarrera bien sur du raid1 (le volume boot) et le noyau (contenu dans ce volume) une fois lancé, détectera les autres volumes dont celui dans lequel est installé le système.

Remarque : On peut bien sur utiliser aussi un volume indépendant pour le répertoire /home (/dev/md1), un autre pour /var (/dev/md2) et un dernier pour le répertoire de données (/dev/md3).


Tout doit être configuré dans les fichiers /etc/lilo.conf et /etc/fstab .




Exemple de fichier lilo.conf :

Exemple de fichier fstab :

boot=/dev/sda
prompt
timeout=70
default="gentoo-raid"
vga=788

image=/boot/kernel-genkernel-x86-2.6.20-gentoo-r8
label="gentoo-raid"
read-only
root=/dev/ram0
append="init=/linuxrc ramdisk=8192 real_root=/dev/md0 udev splash=silent,theme:livecd-2007.0 video=vesa:ywrap,mtrr CONSOLE=/dev/tty1 quiet"
initrd=/boot/initramfs-genkernel-x86-2.6.20-gentoo-r8


other=/dev/sda2
label="Windows"

#Partitions système
/dev/md4 /boot ext2 defaults,noatime 1 2
/dev/md0 / reiserfs noatime 0 1
/dev/md2 /var reiserfs noatime 0 1

#Partitions swap
/dev/sda8 none swap sw 0 0
/dev/sdb8 none swap sw 0 0

#Partitions utilisateurs et de données
/dev/md1 /home reiserfs defaults 0 2
/dev/md3 /mnt/donneeslinuxA64X2 reiserfs defaults 0 2

#Autres partitions importantes pour le démarrage
none /proc proc defaults 0 0
none /dev/shm tmpfs nodev,nosuid,noexec 0 0

/dev/hda /mnt/cdroms/GRAVEUR iso9660 noauto,ro,user 0 0
/dev/hdb /mnt/cdroms/DVD iso9660 noauto,ro,user 0 0

/dev/sda2 /mnt/windows vfat umask=0,iocharset=iso8859-15,codepage=850 0 0

#Disques amovibles :
/dev/sdd1 /mnt/removable vfat noauto,user,umask=0,iocharset=iso8859-15,codepage=850 0 0
/dev/sda5 /mnt/removable1 reiserfs noauto,user 0 0



Vers le haut de la page

Dernière modification : 26/06/2007, 21:16:13