<!doctype Linuxdoc system> <article> <title> Linux DPT Hardware RAID HAWTO </title> <author> Version originale : Ram Samudrala <tt>(me@ram.org)</tt> Version française : Nicolas Jadot <tt>(njadot@etu.info.unicaen.fr)</tt> </author> <date>v1.1, 15 Décmebre 1997</date> <abstract> Comment configurer un matériel RAID sous Linux </abstract> <toc> <sect> Introduction <p> Ce document décrit comment configurer un matériel RAID SCSI, en se focalisant principalement sur les adaptateurs internes d'origine DPT, bien que les principes appliqués ici soient assez généraux. </p> <p> Utilisez les informations ci-dessous à vos risques et périls. L'auteur (NDT : et le traducteur) dénient toute responsabilité concernant ce que le lecteur pourra faire après avoir lu ce document. La version la plus récente de ce HOWTO sera toujours disponible à l'adresse <htmlurl url="http://www.ram.org/computing/linux/dpt_raid.html" name="http://www.ram.org/computing/linux/dpt_raid.html">. </p> </sect> <sect> Contrôleurs supportés <p> Le seul contrôleur RAID actuellement bien supporté ( c.à.d. un contrôleur pour lequel il existe un pilote sous Linux) est celui fabriqué par la société <url url="http://www.dpt.com" name="DPT">. Cependant, il existe d'autres contrôleurs internes (NDT : <em/host-based/, contrôleur installé sur la carte-mère, à l'intérieur de la machine) et externes (NDT : <em/scsi-to-scsi/, contrôleurs connectés sur une chaîne SCSI existante ; on pourrait également dire additionnels) <!-- NJ : Ces explications peuvent etre approximatives, j'encourage vivement toute personne plus au courant que moi à me signaler toute errreur --> pouvant fonctionner sous Linux. Ceci inclut les contrôleurs produits par <url url="http://www.syred.com" name="Syred">, <url url="http://www.icp-vortex.com" name="ICP-Vortex">, et <url url="http://www.bus-logic.com" name="BusLogic">. De plus, il existe de nombreux contrôleurs additionnels. Consultez la page <url url="http://linas.org/linux/raid.html" name="RAID solutions for Linux "> pour plus d'informations. </p> <p> Si, dans l'avenir, de nouveaux modèles sont supportés, je ferai de mon mieux afin d'inclure ces informations dans ce document. </p> <sect> Quel matériel vaut-il mieux utiliser ? <p> Connaissant ces données <!-- ?! : Given all these options -->, vous devez, si vous cherchez une solution RAID, réflechir à deux fois à ce que vous voulez. En fonction de ce que vous voulez faire, et du niveau de redondance(NDT : ceci est une traduction un peu libre de RAID level), certaines cartes seront meilleures que d'autres. Les adaptateurs externes peuvent par exemple ne pas être aussi adaptés que les contrôleurs internes (consultez <url url="http://www.dpt.com/hstvscsi.html" name="DPT comparison between host-based and SCSI-to-SCSI adapters"> pour en connaitre les raisons). Michael Neuffer (<htmlurl url="mailto:neuffer@kralle.zdv.uni-mainz.de" name="neuffer@kralle.zdv.uni-mainz.de">), auteur du pilote EATA-DMA, discute de tout cela sur sa page <url url="http://www.uni-mainz.de/~neuffer/scsi/" name="Linux High Performance SCSI and RAID page">. </p> <p> Pour les besoins de ce document, je considererai que vous ne disposez que d'un système Linux en ordre de marche. Cependant, notez que je n'ai fait l'essai que du contrôleur DPT Smartcache VI PM2144UW, avec la tour fournie par DPT (SmartRAID tower), et que je n'ai pas l'expérience d'une autre configuration. Les choses peuvent donc être différentes pour votre configuration. </p> </sect> <sect> Installation <sect1> Installer et configurer le matériel <p> Reportez-vous aux manuel d'instructions pour installer votre carte et vos disques. Pour le matériel DPT, comme il n'existe pas encore de gestionnaire de stockage <!-- ?! : storage manager --> pour Linux, vous devez créer un disque formatté MS-DOS avec le système dessus (généralement grâce à la commande "format \s" à l'invite MS-DOS ). Vous utiliserez également le gestionnaire de stockage <!-- ?! : Cf plus haut --> DPT pour MS-DOS, dont vous devriez faire une copie de sauvegarde par mesure de précaution. </p> <p> Une fois le matériel en place, démarrez en utilisant le disque système DOS. Remplacez le disque DOS par le gestionnaire de stockage. Et lancez celui-ci avec la commande : <tscreen><verb> a:\ dptmgr </verb></tscreen> Attendez une minute et vous obtiendrez un sympathique menu d'options. Configurez l'ensemble des disques comme matériel RAID (unité logique unique <!-- ?! : single logical array -->). Choisissez "other"(NDT : autre(s)) comme système d'exploitation. </p> <p> Le gestionnaire de stockage MS-DOS est beaucoup plus facile à utiliser à la souris, et donc vous devriez avoir un gestionnaire de souris sur le premier disque système que vous créerez. </p> <p> Techniquement, il devrait être possible de lancer le gestionnaire de stockage de SCO sous Linux, mais cela pourrait vous apporter plus de soucis que de facilités. Il est probablement bien mieux de lancer le gestionnaire MS-DOS sous Linux. </p> </sect1> <sect1> Configurer le noyau <p> Vous devrez configurer le noyau en activant le support SCSI ainsi que le gestionnaire de périphérique approprié. Voyez <url url="http://sunsite.unc.edu/mdw/HOWTO/Kernel-HOWTO.html" name="Kernel HOWTO">(NDT : <url url="http://www.freenix.fr/linux/HOWTO/Kernel-HOWTO.html" name="Kernel HOWTO"> en français) pour toute information relative à la compilation du noyau. Une fois que vous aurez choisi "yes" pour activer le support SCSI, sélectionnez, dans la section concernant les gestionnaires bas-niveau, celui de votre choix (EATA-DMA pour la majorité des cartes compatibles EATA-DMA (DPT), EATA-PIO pour les très vieilles PM2001 et PM2012A de DPT). La plupart des pilotes, ainsi que le pilote EATA-DMA, devrait être disponible dans les versions récentes du noyau. </p> <p> Une fois que vous avez compilé le noyau, relancez la machine, et si vous avez tout configuré correctement, vous devriez voir le pilote considérer l'unité RAID comme un unique disque SCSI. Si vous utilisez RAID-5, vous constaterez que la taille de l'unité correspond aux deux tiers de l'espace total de stockage. Les messages que vous verrez lors du démarrage devraient ressembler à : <tscreen><verb> EATA (Extended Attachment) driver version: 2.59b developed in co-operation with DPT (c) 1993-96 Michael Neuffer, mike@i-Connect.Net Registered HBAs: HBA no. Boardtype Revis EATA Bus BaseIO IRQ DMA Ch ID Pr QS S/G IS scsi0 : PM2144UW v07L.Y 2.0c PCI 0xef90 11 BMST 1 7 N 64 252 Y scsi0 : EATA (Extended Attachment) HBA driver scsi : 1 host. Vendor: DPT Model: RAID-5 Rev: 07LY Type: Direct-Access ANSI SCSI revision: 02 Detected scsi disk sda at scsi0, channel 0, id 8, lun 0 scsi0: queue depth for target 8 on channel 0 set to 64 scsi : detected 1 SCSI disk total. SCSI device sda: hdwr sector= 512 bytes. Sectors= 35591040 [17378 MB] [17.4 GB] </verb></tscreen> (La sortie ci-dessus correspond à une configuration comportant un seul contrôleur DPT, configuré en RAID-5, avec trois disques de 9Go chacun.) </p> </sect1> </sect> <sect> Utilisation <sect1> fdisk, mke2fs, mount, etc. <p> Vous pouvez désormais utiliser votre unité RAID comme un disque normal. Le première chose que vous aurez à faire sera de partitionner le disque (en utilisant fdisk). Vous devrez ensuite créer un système de fichiers ext2. Ceci se fait par la commande : <tscreen><verb> % mkfs -t ext2 /dev/sdxN </verb></tscreen> où /dev/sdxN est le nom de votre partition SCSI. Une fois ceci fait, vous pourrez monter les partitions et les utiliser comme vous le feriez pour tout autre disque (incluant l'ajout d'entrées dans le fichier /etc/fstab).</p> </sect1> <sect1> Echange à chaud <p> Nous avons d'abord tenté un échange à chaud(L'échange à chaud (hotswapping) consiste en le remplacement d'une unité de l'ensemble RAID alors que l'ordinateur est en fonctionnement) en retirant puis en remettant un disque dans la boîte/tour fournie par DPT (que vous pouvez acheter moyennant supplément). Avant que nous ayons pu mener l'opération à son terme, un des disques est tombé en panne ( pendant que j'écris ces lignes, la sonnerie commence à me rendre dingue ). Malgré cette panne de l'un des disques, toutes les données stockées sur l'unité RAID sont accessibles. </p> <p> Au lieu de remplacer le disque, nous avons machinalement remis la même unité. L'unité s'est reconstruite <!-- ?! : rebuilt itself --> et tout semble être parfait. Durant tout le temps de la panne, ainsi que durant la reconstruction, toutes les données sont restées accessibles. Malgré tout, si un autre disque était tombé en panne, nous aurions eu des sérieux problèmes. </p> </sect1> <sect1> Performances <p> Ici sont retranscrites les sorties du programme Bonnie, sur un 2144UW avec une condiguration de 9x3=17Go <!-- NJ : le calcul semble --> -- faux ! --> <!-- MH : n'est-pas du au fait que seuls 2/3 de l'espace physique restent utiliables ? --> RAID-5. L'unité RAID est connectée à une machine biprocesseurs Pentium Pro avec Linux 2.0.32. Pour comparer, les résultats de Bonnie sur les disques IDE de cette machine sont aussi indiqués. <tscreen><verb> -------Sequential Output-------- ---Sequential Input-- --Random-- -Per Char- --Block--- -Rewrite-- -Per Char- --Block--- --Seeks--- MB K/sec %CPU K/sec %CPU K/sec %CPU K/sec %CPU K/sec %CPU /sec %CPU RAID 100 9210 96.8 1613 5.9 717 5.8 3797 36.1 90931 96.8 4648.2 159.2 IDE 100 3277 32.0 6325 23.5 2627 18.3 4818 44.8 59697 88.0 575.9 16.3 </verb></tscreen> Il est clair que l'unité RAID est performante pour les lectures et écritures de blocs (malgré la dégradation des performances en écriture due à l'utilisation du RAID-5), mais n'est pas très bonne pour ce qui est des réécritures séquentielles. </p> </sect1> </sect> <sect> Caractéristiques du pilote DPT RAID <p> Cette section décrit quelques-unes des commandes disponibles sous Linux pour vérifier la configuration RAID. De nouveau, même s'il est fait référence au pilote eata_dma, ceci peut être utilisé pour la vérification d'autres pilotes. </p> <p> Pour voir la configuration de votre pilote, tapez : <tscreen><verb> % cat /proc/scsi/eata_dma/N </verb></tscreen> où N est l'identificateur du contrôleur. Vous devriez obtenir quelque chose comme : <tscreen><verb> EATA (Extended Attachment) driver version: 2.59b queued commands: 353969 processed interrupts: 353969 scsi0 : HBA PM2144UW Firmware revision: v07L.Y Hardware Configuration: IRQ: 11, level triggered DMA: BUSMASTER CPU: MC68020 20MHz Base IO : 0xef90 Host Bus: PCI SCSI Bus: WIDE Speed: 10MB/sec. SCSI channel expansion Module: not present SmartRAID hardware: present. Type: integrated Max array groups: 7 Max drives per RAID 0 array: 7 Max drives per RAID 3/5 array: 7 Cache Module: present. </verb></tscreen> <tscreen><verb> Type: 0 Bank0: 16MB without ECC Bank1: 0MB without ECC Bank2: 0MB without ECC Bank3: 0MB without ECC Timer Mod.: present NVRAM : present SmartROM : enabled Alarm : on Host<->Disk command statistics: Reads: Writes: 1k: 0 0 2k: 0 0 4k: 0 0 8k: 0 0 16k: 0 0 32k: 0 0 64k: 0 0 128k: 0 0 256k: 0 0 512k: 0 0 1024k: 0 0 >1024k: 0 0 Sum : 0 0 </verb></tscreen> </p> <p> Pour obtenir les statistiques des commandes avancées, tapez : <tscreen><verb> % echo "eata_dma latency" > /proc/scsi/eata_dma/N </verb></tscreen> </p> <p> Ensuite, vous pouvez faire : <tscreen><verb> % cat /proc/scsi/eata_dma/N </verb></tscreen> pour obtenir des statistiques plus détaillées. </p> <p> Pour désactiver les statistiques avancées, tapez : <tscreen><verb> % echo "eata_dma nolatency" > /proc/scsi/eata_dma/N </verb></tscreen> </p> </sect> <sect> En cas de problème... <sect1> Aucune unité SCSI n'est détectée lors du démarrage <p> Ceci peut avoir de multiples causes, mais c'est probablement que le pilote addéquat n'a pas été configuré dans le noyau. Vérifiez et assurez-vous que le pilote (EATA-DMA pour la plupart des cartes DPT) est configuré. </p> </sect1> <sect1> La configuration RAID est visible comme N disques différents <p> Le RAID n'a pas été configuré correctement. Si vous utilisez un gestionnaire de stockage DPT, vous devez configurer les disques RAID comme une seule unité logique. Michael Neuffer (<htmlurl url="mailto:neuffer@kralle.zdv.uni-mainz.de" name="neuffer@kralle.zdv.uni-mainz.de">) écrit "Quand vous configurez le contrôleur avec le SM démarrez-le avec le paramètre /FWO et/ou sélectionnez Solaris comme système d'exploitation. Cela configurera l'unité pour être controlée en interne par le contrôleur."</p> </sect1> <sect1> Si rien ne marche... <p> Relisez le SCSI-HOWTO. Vérifiez le câblage et les terminaisons. Essayez une machine différente si vous en avez la possibilité. La cause la plus commune de problèmes avec les unités et les pilotes SCSI est un matériel défectueux ou mal configuré. Finalement, vous pouvez écrire dans les forums de discussion ou m'envoyer un courrier électronique (NDT : à l'auteur, pas au traducteur...), et je ferai de mon mieux pour vous aider. </p> </sect1> </sect> <sect> Références <label id="references"> <p> Les documents suivants vous seront très utiles lorsque vous configurerez une unité RAID : <itemize> <item> <url url="http://www.dpt.com/techno.html" name="DPT RAID Primer and other RAID/SCSI-related documents"> <item> <url url="http://www.uni-mainz.de/~neuffer/scsi/dpt/index.html" name="EATA-DMA homepage"> <item> <url url="http://sunsite.unc.edu/mdw/HOWTO/Disk-HOWTO.html" name="Linux Disk HOWTO"> <item> <url url="http://sunsite.unc.edu/mdw/HOWTO/Kernel-HOWTO.html" name="Linux Kernel HOWTO"> <item> <url url="http://sunsite.unc.edu/mdw/HOWTO/SCSI-HOWTO.html" name="Linux SCSI HOWTO"> <item> <url url="http://linas.org/linux/raid.html" name="RAID Solutions for Linux"> </itemize> </p> </sect> <sect> Remerciements <p> Les personnes suivantes m'ont beaucoup aidé pour la réalisation de cet HOWTO : <itemize> <item> Boris Fain (<htmlurl url="mailto:fain@zen.stanford.edu" name="fain@zen.stanford.edu">) <item> Jos Vos (<htmlurl url="mailto:jos@xos.nl" name="jos@xos.nl">) <item> Michael Neuffer (<htmlurl url="mailto:neuffer@kralle.zdv.uni-mainz.de" name="neuffer@kralle.zdv.uni-mainz.de">) <item> Ralph Wallace (<htmlurl url="mailto:rwallace@rwallace.interaccess.com" name="rwallace@rwallace.interaccess.com">) <item> Russell Brown (<htmlurl url="mailto:russell@lutton.lls.com " name="russell@lutton.lls.com">) <item> Syunsuke Ogata (<htmlurl url="mailto:Syunsuke_Ogata@appear.ne.jp" name="Syunsuke_Ogata@appear.ne.jp">) </itemize> </p> </sect> </article>