7. Installation sur un système Linux existant

Cette section décrit comment installer le RAID ATA Linux natif sur des disques non-système que vous souhaiteriez avoir sur une machine travaillant sous Linux. Les disques non-système sont ceux qui ne comportent pas de partitions systèmes Linux comme les partitions /, /usr, /var, /boot. En d'autres termes, nous avons une machine travaillant sous Linux avec deux disques libres, et nous voulons configurer le RAID ATA miroir (RAID 1) sur ces deux disques. Lorsque l'on sauvegarde des données importantes sur un tel dispositif miroir, les données sont bien protégées. Bien entendu, comme sur tout autre RAID 1, on constatera l'amélioration de la vitesse de lecture, lors de la lecture des données, ainsi qu'une faible perte de vitesse en écriture, lors de la modification ou l'ajout de nouvelles données sur le dispositif miroir. Toutefois, l'utilisation du RAID 1 pour des disques de données est particulièrement recommandée si ceux-ci sont bien plus souvent lus qu'écrits. La machine qui héberge un serveur web en est un excellent exemple : en effet, le contenu d'un site est peu fréquemment modifié; par contre, celui-ci est très souvent accédé par les utilisateurs que sont les Internautes.

Voici donc les étapes à suivre pour installer le RAID ATA non-système si votre contrôleur RAID est un Promise Technology :

7.1. Append Line

Pour la compréhension de tâches diverses impliquant le RAID Promise FastTrak comme la mise à jour ou la recherche de pannes, introduisons un nom : l'Append Line.

Toutes les options ide que vous passez à l'invite de démarrage de LILO boot: au moment du démarrage, lorsqu'elles sont assemblées comme une chaîne de caractères, font l'Append Line. Toutes les options ide entre guillemets après le mot-clé append= dans le fichier /etc/lilo.conf font aussi l'Append Line.

Par exemple, si vous tapez la commande :

linux-new ide2=0x0001,0x0009,9 ide3=0x2000,0x2009,10 ide4=none nousb expert root=/dev/hda3

à l'invite boot: au moment du démarrage de votre ordinateur Linux, alors l'Append Line est la chaîne

ide2=0x0001,0x0009,9 ide3=0x2000,0x2009,10 ide4=none.

De la même façon, si votre fichier /etc/lilo.conf a la section suivante, votre Append Line est

ide2=0x9400,0x9002 ide3=0x8800,0x8402.

image=/boot/vmlinuz-2.4.9-10
 label=linuxold
 read-only
 root=/dev/hde9
 append="nousb ide2=0x9400,0x9002 ide3=0x8800,0x8402"
 initrd="initrd.img"

Lorsque l'on se rend compte que l'on a des problèmes à démarrer sur une machine Linux avec le RAID, on doit utiliser une Append Line appropriée. Par conséquent, il est important de déterminer et de consigner par écrit l'Append Line. Cela vous aidera plus tard pour résoudre vos problèmes, pour mettre à jour en douceur votre noyau ou bien pour ajouter (ou retirer) des disques supplémentaires.

7.2. Déterminer l'Append Line

Pour déterminer la bonne Append Line, nous devons savoir en premier lieu comment sont connectés tous nos périphériques IDE. Les périphériques IDE peuvent être des disques durs, des lecteurs CDROM ATAPI, etc. Une fois déterminée l'Append Line, nous pouvons la rajouter aux options de boot: (au moment du démarrage) ou nous pouvons aussi la transmettre comme valeur de chaîne au paramètre append dans le fichier /etc/lilo.conf. À moins que vous aimiez vous souvenir d'options de boot: compliquées et les entrer manuellement à chaque démarrage, vous choisirez alors la seconde méthode, c.-à-d., l'insérer dans le fichier /etc/lilo.conf. Pour faire cela, ajoutez append="Votre Append Line ici", enregistrez le fichier et activez votre nouveau fichier /etc/lilo.conf en lançant la commande /sbin/lilo.

Pour une meilleure compréhension, rien ne vaut un exemple. Supposons que vous ayez les périphériques IDE suivants :

Les deux disques durs libres ci-dessus (hde et hdg) sont ceux que vous voulez configurer en RAID 1 pour créer le périphérique RAID /dev/ataraid/d0. Notez que nous n'avons pas hdf ou hdh car c'est comme cela que sont utilisés les ports IDE/RAID sur le contrôleur Promise. Ce n'est pas une bonne idée de connecter deux disques durs sur le même contrôleur de port IDE Promise. Dans l'exemple ci-dessus, nous utilisons les connexions Primary Master et Secondary Master sur la carte Promise Technology.

Si vous ignorez comment les divers périphériques IDE sont connectés sur votre ordinateur, jetez un coup d'œil à /proc/devices et /proc/ide/*. Vous pouvez aussi consulter attentivement le fichier log de démarrage /var/log/bootlog (ou tapez la commande dmesg | more juste après le démarrage de votre système Linux) pour trouver les périphériques IDE. Ensuite, entrez la commande less /proc/pci, et localisez les informations relatives à Promise Technology. Dans la sortie de la commande less /proc/pci, vous trouverez quelque par des informations à propos de votre contrôleur Promise qui ressemblent à ceci :

Bus  0, device  17, function  0:
 Unknown mass storage controller: Promise Technology Unknown device (rev 2).
 Vendor id=105a. Device id=d30.
 Medium devsel.  IRQ 10.  Master Capable.  Latency=32.
 I/O at 0x9400 [0x9401].
 I/O at 0x9000 [0x9001].
 I/O at 0x8800 [0x8801].
 I/O at 0x8400 [0x8401].
 I/O at 0x8000 [0x8001].
 Non-prefetchable 32 bit memory at 0xd5800000 [0xd5800000].

Sur cette recopie d'écran, on apprend que notre carte Promise Technology utilise l'interruption IRQ 10 pour les deux ports IDE (ide2 et ide3). L'utilisation de la même interruption est parfaitement autorisée à la condition que votre noyau supporte le partage d'interruptions PCI (PCI IRQ Sharing). Par défaut, votre noyau Linux est configuré pour supporter ce partage. De cette recopie d'écran, on apprend également que notre carte Promise Technology utilise diverses adresses d'entrées/sorties. Afin d'identifier correctement les disques au démarrage, nous n'avons besoin que du (des) numéro(s) d'interruption et des quatre premières adresses d'E/S, celles en dehors des crochets [ ]. Reportons cette information sur un morceau de papier. Dans ce cas, la sortie d'écran ci-dessus nous donne :

IRQ1 = 10
IRQ2 = 10
IO1 = 0x9400
IO2 = 0x9000
IO3 = 0x8800
IO4 = 0x8400

À présent, nous devons évaluer ceci pour obtenir l'Append line correcte. Puis le préciser soit dans l'Append Line à chaque démarrage, soit dans le fichier de configuration de lilo.

ideX=IO1,IO2+0x0002,IRQ1 ideY=IO3,IO4+0x0002,IRQ2 où ideX et ideY sont les deux ports IDE
de la carte Promise utilisés par les deux disques libres.

Dans notre exemple, l'Append Line précédente devient :

ide2=0x9400,0x9002,10 ide3=0x8800,0x8402,10

Si, par exemple, nous voulions démarrer sur le noyau version 2.4.19, étiqueté linux d'après /etc/lilo.conf, alors nous spécifierions notre Append Line avec l'une des deux méthodes suivantes :

  1. Au démarrage

    boot: linux ide2=0x9400,0x9002,10 ide3=0x8800,0x8402,10
    

    Si vous choisissez cette méthode, vous devrez taper manuellement l'Append Line après l'étiquette noyau linux chaque fois que vous démarrerez votre machine Linux.

  2. Dans le fichier /etc/lilo.conf

    image=/boot/vmlinuz-2.2.19
     label=linux
     read-only
     root=/dev/ataraid/d0p12
     append="ide2=0x9400,0x9002,10 ide3=0x8800,0x8402,10"
    

    Si vous choisissez cette méthode, vous devez lancer lilo une fois, en tapant la commande /sbin/lilo, pour activer les changements. Et vous n'aurez rien de plus à taper au démarrage.


7.3. Configurer le RAID 1

Si vous souhaitez configurer le RAID 1 en utilisant le pilote propriétaire Promise Technology (ft.o), vous pouvez télécharger le pilote Promise (ft.o) dans /lib/modules/kernel-version et charger le module en tapant la commande modprobe -k ft. Vous pourrez alors accéder à votre nouveau périphérique RAID comme étant /dev/sdc ou quelque chose comme cela. Mais si cela ne fonctionne pas, alors déterminez votre Append Line et ajoutez-la à votre fichier /etc/lilo.conf. Si vous configurez le RAID sur un système Linux existant et si vous utilisez, soit le pilote ft de Promise Technology, soit le pilote Linux natif ataraid, alors l'utilisation de l'Append Line est vivement recommandée. Une fois que vous redémarrez avec votre nouveau fichier /etc/lilo.conf qui contient l'Append Line, vous pouvez charger l'un des deux pilotes (ft.o de Promise Technology ou ataraid.o, le module RAID Linux natif) pour activer le RAID sauf si votre noyau intègre en lui le support ataraid auquel cas vous n'avez pas à charger le module ataraid.

Comme le RAID Linux natif est recommandé, nous allons en discuter plus en détails. Pour configurer le RAID Linux natif sur une machine Linux existante, insérez l'Append Line dans le fichier /etc/lilo.conf comme expliqué précédemment. Validez les modifications en tapant la commande /sbin/lilo. Relancez votre ordinateur. Après que celui-ci ait redémarré, chargez manuellement le module ataraid si votre noyau n'a pas le support ataraid intégré ou bien si le chargement du module ataraid.o a échoué pour une raison ou pour une autre. Si vous avez compilé votre noyau avec le support ataraid intégré à celui-ci (ataraid pas sous forme de module), alors vous pouvez commencer à formater et utiliser votre disque miroir /dev/ataraid/d0 immédiatement.

Mais si vous avez compilé l'ataraid comme un module séparé, alors tapez la commande lsmod et regardez si ataraid fait partie de la liste. Si ce n'est pas le cas, chargez-le manuellement en tapant la commande modprobe -k ataraid. Si vous ne voyez plus aucune erreur, alors vous pouvez commencer à utiliser votre disque miroir /dev/ataraid/d0 immédiatement. Formatez-le, montez-le et utilisez-le comme vous le feriez normalement.

Le fait que vous puissiez utiliser /dev/ataraid/d0 implique que vous ayez rempli votre mission avec succès. SVP, n'accédez pas directement aux disques /dev/hde, /dev/hdg ou à leurs partitions, bien que Linux vous le permette. Une fois que vous avez construit un disque miroir à partir de deux disques, vous devez toujours accéder au miroir et pas aux disques eux-mêmes directement.