Linux DPT Hardware RAID HAWTO

Version originale : Ram Samudrala ([email protected]) Version française : Nicolas Jadot ([email protected])

v1.1, 15 Décmebre 1997
Comment configurer un matériel RAID sous Linux

1. Introduction

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.

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 http://www.ram.org/computing/linux/dpt_raid.html.

2. Contrôleurs supportés

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é DPT. Cependant, il existe d'autres contrôleurs internes (NDT : host-based, contrôleur installé sur la carte-mère, à l'intérieur de la machine) et externes (NDT : scsi-to-scsi, contrôleurs connectés sur une chaîne SCSI existante ; on pourrait également dire additionnels) pouvant fonctionner sous Linux. Ceci inclut les contrôleurs produits par Syred, ICP-Vortex, et BusLogic. De plus, il existe de nombreux contrôleurs additionnels. Consultez la page RAID solutions for Linux pour plus d'informations.

Si, dans l'avenir, de nouveaux modèles sont supportés, je ferai de mon mieux afin d'inclure ces informations dans ce document.

3. Quel matériel vaut-il mieux utiliser ?

Connaissant ces données , 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 DPT comparison between host-based and SCSI-to-SCSI adapters pour en connaitre les raisons). Michael Neuffer ( [email protected]), auteur du pilote EATA-DMA, discute de tout cela sur sa page Linux High Performance SCSI and RAID page.

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.

4. Installation

4.1 Installer et configurer le matériel

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 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 DPT pour MS-DOS, dont vous devriez faire une copie de sauvegarde par mesure de précaution.

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 :

a:\ dptmgr

Attendez une minute et vous obtiendrez un sympathique menu d'options. Configurez l'ensemble des disques comme matériel RAID (unité logique unique ). Choisissez "other"(NDT : autre(s)) comme système d'exploitation.

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.

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.

4.2 Configurer le noyau

Vous devrez configurer le noyau en activant le support SCSI ainsi que le gestionnaire de périphérique approprié. Voyez Kernel HOWTO(NDT : 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.

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 à :

EATA (Extended Attachment) driver version: 2.59b
developed in co-operation with DPT
(c) 1993-96 Michael Neuffer, [email protected]
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]

(La sortie ci-dessus correspond à une configuration comportant un seul contrôleur DPT, configuré en RAID-5, avec trois disques de 9Go chacun.)

5. Utilisation

5.1 fdisk, mke2fs, mount, etc.

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 :

% mkfs -t ext2 /dev/sdxN

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).

5.2 Echange à chaud

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.

Au lieu de remplacer le disque, nous avons machinalement remis la même unité. L'unité s'est reconstruite 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.

5.3 Performances

Ici sont retranscrites les sorties du programme Bonnie, sur un 2144UW avec une condiguration de 9x3=17Go -- faux ! --> 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.

           -------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

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.

6. Caractéristiques du pilote DPT RAID

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.

Pour voir la configuration de votre pilote, tapez :

% cat /proc/scsi/eata_dma/N

où N est l'identificateur du contrôleur. Vous devriez obtenir quelque chose comme :

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.
    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

Pour obtenir les statistiques des commandes avancées, tapez :

% echo "eata_dma latency" > /proc/scsi/eata_dma/N

Ensuite, vous pouvez faire :

% cat /proc/scsi/eata_dma/N

pour obtenir des statistiques plus détaillées.

Pour désactiver les statistiques avancées, tapez :

% echo "eata_dma nolatency" > /proc/scsi/eata_dma/N

7. En cas de problème...

7.1 Aucune unité SCSI n'est détectée lors du démarrage

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é.

7.2 La configuration RAID est visible comme N disques différents

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 ( [email protected]) é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."

7.3 Si rien ne marche...

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.

8. Références

Les documents suivants vous seront très utiles lorsque vous configurerez une unité RAID :

9. Remerciements

Les personnes suivantes m'ont beaucoup aidé pour la réalisation de cet HOWTO :