|
このページは大阪弁化フィルタによって翻訳生成されたんですわ。 |
Peut-黎re esssayerez vous les versions -ac du noyau propos馥s
par Alan Cox pour disposer du RAID. Certaines d'entre elles
incluent le nouveau syst鑪e et vous 駱argneront donc l'application de
patches.
Bien que le fonctionnement du syst鑪e RAID semble stable chez moi et chez de nombreuses personnes, cela pourrait ne pas 黎re le cas pour vous. Si vous perdez vos donn馥s, votre emploi, votre femme ou que vous vous faites 馗raser par un camion, ce ne sera ni de ma faute, ni machines et que je n'ai entendu personne 騅oquer des plantages al饌toires ou des instabilit駸 avec le RAID.
Le HOWTO suppose que vous utilisez un des derniers noyaux 2.2.x ou 2.0.x
Dans la description des configurations, on utilise fr駲uemment le nombre de disques et leur taille. N d駸ignera le nombre de disques dans une matrice RAID, les disques de secours 騁ant exclus, S sera la taille du plus petit disque et P le d饕it d'un disque vous aurez des probl鑪es :o)
Les patches RAID pour Linux offrent les possibilit駸 suivantes :
Vous ne pouvez 黎re s? de la survie de votre syst鑪e en cas de d馭aillance d'un disque. La couche RAID peut faire son travail mais les gestionnaires SCSI peuvent receller des erreurs, les composants IDE peuvent se bloquer et d'autres ph駭om鈩es peuvent se produire.
Il n'y a aucune raison d'employer le RAID au dessus du swap pour en /dev/sda2 swap swap defaults,pri=1 0 0 /dev/sdb2 swap swap defaults,pri=1 0 0 /dev/sdc2 swap swap defaults,pri=1 0 0 /dev/sdd2 swap swap defaults,pri=1 0 0 /dev/sde2 swap swap defaults,pri=1 0 0 lorsqu'on se sert du RAID logiciel.
Le RAID fonctionne avec des disques IDE. On peut d'ailleur obtenir d'excellentes performances. En fait, compte tenu du prix actuel des sp馗ifications Ultra-DMA effectuent un calcul de v駻ification sur les donn馥s qu'ils re輟ivent. Il devient donc fortement improbable que des donn馥s soient corrompues.
Le mat駻iel SCSI n'est pas davantage pr騅u pour. Ca peut n饌nmoins fonctionner. Si votre contr?eur SCSI est capable de r馥xaminer le bus, d'autoriser l'ajout et la suppression de disques, de ce type. Je ne peux donc pas vous en dire plus.
Si vous voulez essayer, il vous faudra connaitre le fonctionnement interne du SCSI et du RAID. Je ne vais pas 馗rire quelque chose que je ne peux pas v駻ifier mais juste vous donner quelques indications :
Voici ce que requi鑽ent tous les niveaux de RAID :
Tous les logiciels se trouvent sur ftp://ftp.fi.kernel.org/pub/linux Les outils et les patches
RAID sont dans le r駱ertoire daemons/raid/alpha. Le noyau se
trouve dans le r駱ertoire kernel.
raiddev /dev/md0
raid-level linear
nr-raid-disks 2
chunk-size 32
persistent-superblock 1
device /dev/sdb6
raid-disk 0
On cr馥 la matrice :
mkraid /dev/md0
La commande initialise la matrice, 馗rit les superblocs persistants
et active le p駻iph駻ique.
raiddev /dev/md0
raid-level 0
nr-raid-disks 2
persistent-superblock 1
chunk-size 4
device /dev/sdb6
raid-disk 0
device /dev/sdc5
raid-disk 1
Comme en mode lin饌ire, il n'y a pas de disque de secours. Le RAID-0
n'offre aucune redondance et la d馭aillance d'un disque signifie celle
de la matrice enti鑽e.
On ex馗ute :
mkraid /dev/md0souhaite mettre en mirroir. On peut avoir des disques suppl駑entaires que l'on gardera en attente comme disques de secours et qui prendront automatiquement place dans la matrice si un disque actif tombe en panne.
Voici le fichier /etc/raidtab typique :
raiddev /dev/md0
raid-level 1
nr-raid-disks 2
nr-spare-disks 0
chunk-size 4
persistent-superblock 1
device /dev/sdb6
raid-disk 0
device /dev/sdc5
raid-disk 1
Pour prendre en compte des disques de secours :
device /dev/sdd5
spare-disk 0
N'oubliez pas d'ajuster la variable nr-spare-disks en cons駲uence.
A pr駸ent, on peut initialiser la matrice RAID. Son contenu doit 黎re construit et les contenus des deux disques (sans importance pour l'instant) synchronis駸.
Ex馗utez :
mkraid /dev/md0L'initialisation de la matrice d駑arrera. l'un d'eux est nettement plus rapide que les autres et on souhaite les combiner en un p駻iph駻ique de taille plus 駘ev馥 tout en conservant un certain niveau de redondance. En outre, on peut introduire des disques de secours.
Fichier /etc/raidtab typique :
raiddev /dev/md0
raid-level 4
nr-raid-disks 4
nr-spare-disks 0
persistent-superblock 1
chunk-size 32
device /dev/sdb1
raid-disk 0
device /dev/sdc1
raid-disk 1
device /dev/sdd1
raid-disk 2
device /dev/sde1
raid-disk 3
Les disques de secours sont trait駸 par les lignes suivantes :
device /dev/sdf1
spare-disk 0
La matrice s'initialise comme d'habitude :
mkraid /dev/md0
On se reportera aux options particuli鑽es de mke2fs avant de formater le p駻iph駻ique.
On dispose de trois disques ou plus de taille sensiblement 駲uivalente que l'on veut combiner en un p駻iph駻ique de taille plus 駘ev馥 tout en assurant la redondance des donn馥s. On peut introduire des disques de secours.
Fichier de configuration /etc/raidtab typique :
raiddev /dev/md0
raid-level 5
nr-raid-disks 7
nr-spare-disks 0
persistent-superblock 1
parity-algorithm left-symmetric
chunk-size 32
device /dev/sda3
raid-disk 0
device /dev/sdb1
raid-disk 1
device /dev/sdc1
raid-disk 2
device /dev/sdd1
raid-disk 3
device /dev/sde1
raid-disk 4
device /dev/sdf1
raid-disk 5
device /dev/sdg1
raid-disk 6
Les disques de secours sont trait駸 par les lignes suivantes :
device /dev/sdh1
spare-disk 0
Et ainsi de suite.
Une taille de bloc (chunk-size) de 32 ko est un bon choix par d馭aut pour de nombreux syst鑪es de fichiers. La matrice d駻iv馥 du fichier est plus grand ou s'il doit contenir des fichiers de grande taille.
A pr駸ent, on ex馗ute :
mkraid /dev/md0Normalement les disques devraient s'activer furieusement durant la
Maintenant que le disque RAID fonctionne, on peut l'arr黎er ou le red駑arrer via les commandes :
raidstop /dev/md0et
raidstart /dev/md0
Au lieu de mettre ces commandes dans les scripts d'initialisation et de
monter des syst鑪es de fichiers reposant sur p駻iph駻iques RAID. Ils ne
pouvaient 黎re simplement mis dans le fichier /etc/fstab habituel et
n馗essitaient des interventions chirurgicales dans les scripts de
d駑arrage.
Les superblocs persistants r駸olvent ces probl鑪es. Lorsqu'une matrice
est initialis馥 avec l'option persistent-superblock dans le
fichier /etc/raidtab, un superbloc de type particulier est 馗rit au d饕ut
On gardera quand m麥e coh駻ent le fichier /etc/raidtab puisqu'on peut en
avoir besoin ult駻ieurement en cas de reconstruction de la matrice.
Les superblocs persistants sont obligatoires si on souhaite b駭馭icier de l'auto-d騁ection des p駻iph駻iques RAID au d駑arrage du syst鑪e. fa輟n rigoureusement parall鑞e sur un ensemble de disques. Dans le cas de deux disques sur lesquels on devrait 馗rire un octet, on pourrait souhaiter que les quatres bits de poids fort aillent toujours sur le m麥e disque, ceux de poids faible allant sur l'autre. Le mat駻iel ne le bloc de 4 ko vers le premier disque et celui du deuxi鑪e et du quatri鑪e bloc vers le second disque pour une matrice RAID-0 comportant deux disques. Pour de grosses 馗ritures, la consommation de ressources sera
A vous de modifier ce param鑼re, ainsi que la taille de blocs du syst鑪e de fichier, pour obtenir les meilleurs performances possibles.
L'argument de l'option chunk-size dans le fichier /etc/raidtab pr馗ise
la taille en ko.
Les donn馥s sont 馗rites successivement sur chaque disque par paquets
de chunk-size octets.
Pour une taille de bloc de 4 ko, lors de l'馗riture de 16 ko de donn馥s sur un syst鑪e muni de trois disques, la couche RAID 馗rira simultan駑ent contenu du syst鑪e de fichiers et de divers autres facteurs. A vous d'exp駻imenter pour trouver la meilleure valeur.
Pour les 馗ritures le param鑼re importe peu vu que les donn馥s doivent
Si la taille de bloc RAID est de 32 ko, 32 ko de donn馥s cons馗utives r駸ideront sur un m麥e disque. Si on souhaite construire un syst駑e de fichiers ext2 avec une taille de blocs de 4 ko, il y aura 8 blocs de donn馥s cons馗utifs dans un bloc du tableau. On fournit l'information Oct 22 00:51:59 malthe kernel: SCSI device sdg: hdwr sector= 512 bytes. Sectors= 12657717 [6180 MB] [6.2 GB] Oct 22 00:51:59 malthe kernel: Partition check: Oct 22 00:51:59 malthe kernel: sda: sda1 sda2 sda3 sda4 Oct 22 00:51:59 malthe kernel: sdb: sdb1 sdb2 Oct 22 00:51:59 malthe kernel: sdc: sdc1 sdc2 Oct 22 00:51:59 malthe kernel: sdd: sdd1 sdd2 Oct 22 00:51:59 malthe kernel: sde: sde1 sde2 Oct 22 00:51:59 malthe kernel: sdf: sdf1 sdf2 Oct 22 00:51:59 malthe kernel: sdg: sdg1 sdg2 Oct 22 00:51:59 malthe kernel: autodetecting RAID arrays Oct 22 00:51:59 malthe kernel: (read) sdb1's sb offset: 6199872 Oct 22 00:51:59 malthe kernel: bind<sdb1,1> Oct 22 00:51:59 malthe kernel: (read) sdc1's sb offset: 6199872 Oct 22 00:51:59 malthe kernel: bind<sdc1,2> Oct 22 00:51:59 malthe kernel: (read) sdd1's sb offset: 6199872 Oct 22 00:51:59 malthe kernel: bind<sdd1,3> Oct 22 00:51:59 malthe kernel: (read) sde1's sb offset: 6199872 Oct 22 00:51:59 malthe kernel: bind<sde1,4> Oct 22 00:51:59 malthe kernel: (read) sdf1's sb offset: 6205376 Oct 22 00:51:59 malthe kernel: bind<sdf1,5> Oct 22 00:51:59 malthe kernel: (read) sdg1's sb offset: 6205376 Oct 22 00:51:59 malthe kernel: bind<sdg1,6> Oct 22 00:51:59 malthe kernel: autorunning md0 Oct 22 00:51:59 malthe kernel: running: <sdg1><sdf1><sde1><sdd1><sdc1><sdb1> Oct 22 00:51:59 malthe kernel: now! Oct 22 00:51:59 malthe kernel: md: md0: raid array is not clean -- starting background reconstruction syst鑪e s'arr黎e. Oubliez les scripts d'initialisation et servez vous des disques /dev/md comme s'il s'agissait de /dev/sd ou /dev/hd.
C'est aussi simple que 軋.
Les lignes comportant les commandes raidstart et raidstop dans les
Il existe plusieurs fa輟ns de mettre en place un syst鑪e qui monte
directement sa partition racine depuis un p駻iph駻ique RAID. Pour
l'instant, seuls les outils d'installation graphiques de la RedHat 6.1
genre de p駻iph駻iques. Il faudra donc que le r駱ertoire /boot
r駸ide sur un syst鑪e de fichier hors RAID. Afin d'黎re s? que le
syst鑪e d駑arre quel que soit son 騁at, dupliquez une partition
/boot similaire sur chaque disque. Le BIOS sera ainsi
toujours capable de charger les donn馥s depuis, par exemple le premier
disque disponible. Il faudra donc que le syst鑪e ne d駑arre pas avec un
disque d馭ectueux.
Avec la RedHat 6.1 est fourni un patch pour lilo 21 qui permet d'acc馘er
Deux m騁hodes sont fournies ci-dessous. A ma connaissance, aucune distribution ne permet l'installation sur un disque RAID et la
lilo -r /mnt/newroot. Lilo ne devrait pas 駑ettre sera consid駻馥 comme d馮rad馥 avant de r駟ns駻er le disque d'installation et de d馗lencher sa resynchronisation.
mkinitrd --with=<module> <ramdisk name> <kernel>Par exemple :
mkinitrd --with=raid5 raid-ramdisk 2.2.5-22
Ceci garantit que le module RAID ad駲uat sera disponible au d駑arrage d'une matrice, arr黎ez d'abord la matrice et repartitionnez ensuite.
On a vite fait de saturer un bus. Un bus Fast-Wide SCSI courant n'offre que 10 Mo/s, ce qui est largement en dessous des performances des tirerez rien de plus de deux contr?eurs 2940 si vous n'avez que deux vieux disques SCSI qui ne satureraient m麥e pas un seul contr?eur.
Si vous omettez l'option de persistance des superblocs votre matrice ne red駑arrera pas spontan駑ent apr鑚 un arr黎. Reprenez la cr饌tion de la entre les patches et les outils RAID. Si vous utilisez le RAID 0.90, v駻ifiez que vous vous servez bien de la bonne version des utilitaires.
Si vous utilisez le RAID pour am駘iorer la tol駻ance aux pannes, pour "simuler" une d馭aillance. On ne peut pas pr騅oir ce qui va se passer en cas de perte d'un disque. Il pourrait tr鑚 bien verouiller 駘ectriquement le bus et rendre tous les disques sur le bus inaccessibles. Je n'ai n饌nmoins jamais entendu d'histoire de ce genre. Le disque signalera red駑arrez le de nouveau.
Syslog et /proc/mdstat permettent de v駻ifier l'騁at de la matrice.
N'oubliez pas que vous devez employer du RAID-{1,4,5} pour que la matrice soit capable de supporter la d馭aillance d'un disque.
Le RAID, qu'il soit mat駻iel ou logiciel, suppose que si une 馗riture ne renvoie pas une erreur, alors elle s'est d駻oul馥 normalement. Donc, si un diseue corrompt les donn馥s sans retourner d'erreur, les donn馥s
raidhotadd /dev/mdX /dev/sdX pour r駟ns駻er le
disque dans la matrice.Ces tests ne mesurent que la bande passante en lecture/馗riture pour un seul fichier de grande taille. On ne sait donc rien des performances qu'on observerait avec un serveur web, un serveur de news, etc... Peu d'applications du monde r馥l font la m麥e chose que
A la lecture de ce tableau il semble que le param鑼re chunk-size du RAID
On reprend les m麥es tests.
| Chunk size | Block size | Lecture ko/s | Ecriture ko/s |
| 8k | 1k | 11090 | 6874 |
| 8k | 4k | 13474 | 12229 |
| 32k | 1k | 11442 | 8291 |
| 32k | 2k | 16089 | 10926 |
| 32k | 4k | 18724 | 12627 |
Il n'y a pas eu d'autres tests. La taille des fichiers 騁ait de 900 Mo car les partitions n'offraient que 500 Mo chacune, ce qui ne suffit pas pour un fichier de 1 Go dans cette configuration (RAID-1 de deux matrices de 1000 Mo).