Suivez-nous sur Mastodon

|
|
|
0,
A,
B,
C,
D,
E,
F,
G,
H,
I,
J,
K,
L,
M,
N,
O,
P,
Q,
R,
S,
T,
U,
V,
W,
X,
Y,
Z,
ALL
|
|
0,
A,
B,
C,
D,
E,
F,
G,
H,
I,
J,
K,
L,
M,
N,
O,
P,
Q,
R,
S,
T,
U,
V,
W,
X,
Y,
Z
|
|
0,
A,
B,
C,
D,
E,
F,
G,
H,
I,
J,
K,
L,
M,
N,
O,
P,
Q,
R,
S,
T,
U,
V,
W,
X,
Y,
Z
|
|
A propos d'Obligement
|
|
David Brunet
|
|
|
|
En pratique : Utilisation de disques SCSI RAID sur Amiga 4000
(Article écrit par Yann-Gaël Guéhéneuc et extrait de www.chingu.asia - août 2026)
|
|
Disques RAID SangJaOppa
En tant que station de travail, un A4000 est généralement équipé de nombreux disques durs externes,
et ces disques doivent bénéficier d'une certaine tolérance aux pannes. Le RAID est parfaitement adapté
à cet usage ! ;-) Vous trouverez ci-dessous une explication du RAID, les différentes options disponibles
sur Amiga, quelques tests comparatifs et ma configuration personnelle.
À propos du RAID
RAID signifie "Redundant Array of Costcoaker Disks" (matrice redondante de disques économiques). Une
"matrice" est un ensemble de disques interconnectés selon différents niveaux de configuration.
L'objectif est de stocker les données sur plusieurs disques coordonnés, plutôt que sur des disques uniques.
Si un disque tombe en panne, toutes les données sont perdues. En revanche, si un disque d'une grappe
tombe en panne, selon le niveau RAID, aucune donnée n'est perdue. De plus, l'ordinateur considère les
disques multiples comme un seul, et non comme un ensemble de disques distincts. Enfin, la vitesse de
lecture peut être améliorée grâce au stockage des données sur différents disques, accessibles en
parallèle depuis ces multiples disques.
Il existe sept niveaux "standard" différents :
- Le RAID 0, ou répartition des données sans duplication ni parité, consiste à connecter plusieurs disques
en un seul et à répartir les données
entre eux. Cela peut améliorer la vitesse de lecture/écriture car
ces opérations sont réparties sur différents disques. En revanche, il n'offre aucune tolérance aux pannes.
- Le RAID 1 est une configuration en miroir sans répartition ni parité. Plusieurs disques sont considérés
comme un seul, mais sont en réalité des copies conformes les uns des autres. Il peut améliorer la vitesse
de lecture, mais la vitesse d'écriture sera la plus lente parmi tous les disques. Il assure une tolérance aux
pannes tant qu'au moins un disque est fonctionnel.
- RAID 2, qui n'est plus utilisé.
- RAID 3, qui n'est plus utilisé non plus.
- RAID 4, qui est un découpage au niveau des blocs avec parité dédiée.
- RAID 5 est un système de répartition des données au niveau bloc avec parité distribuée. La parité étant
répartie entre les disques, ce type de grappe nécessite au moins trois disques, mais tolère la défaillance
d'un seul.
- Le RAID 6 est un système de répartition des données au niveau bloc avec double parité distribuée.
La parité étant répartie deux fois entre les disques, une telle grappe nécessite au moins quatre disques,
mais tolère la défaillance de deux disques.
L'implémentation RAID peut être entièrement logicielle (comme les solutions que j'ai testées ci-dessous),
intégrée à certains pilotes ou directement au contrôleur. Il semble que certains contrôleurs SCSI compatibles
Amiga implémentent des niveaux RAID. Aucun système de fichiers Amiga ne propose le RAID par défaut, mais
une utilisation astucieuse des périphériques permet d'intégrer facilement les niveaux RAID dans le Workbench.
Sur Amiga
J'ai trouvé deux logiciels sur Amiga permettant d'activer certains niveaux de RAID :
SoftRaid et
URD (version alpha, pas encore disponible publiquement). Ils ont chacun leurs avantages et leurs inconvénients,
mais sont globalement très sympathiques.
SoftRaid fournit le fichier softraid.device, un exemple de liste de montage, une version bêta du système
de fichiers SFS, DevInfo pour obtenir des informations sur les périphériques, ainsi que des programmes
et scripts pour manipuler les blocs. Il fonctionne au niveau de la partition ; par conséquent, même avec
un seul disque physique, vous pouvez l'utiliser avec plusieurs partitions. Il ne possède pas d'interface
utilisateur, mais le fichier "readme" contient suffisamment d'informations pour créer des pilotes DOS
ou des listes de montage.
Ce qui restait obscur pour moi était la valeur à attribuer à "HighCyl", c'est-à-dire la taille du
"disque" à monter. Après de nombreuses recherches et essais, j'ai constaté que cette valeur dépend
de la configuration choisie et des informations obtenues des partitions via "DevInfo". Par exemple,
pour un RAID (striping), le fichier "ENVARC:RAID0" contiendrait :
RAID128:128,dkbscsi.device,3,4520,4187780,dkbscsi.device,3,4192300,4187780
|
...la valeur de "HighCyl" devrait donc être de 4 187 780/236 (BlocksPerTrack) - 1 = 17 743 (blocs).
À titre d'exemple, pour un MIRROR (mise en miroir), le fichier ENVARC:RAID1 serait :
MIRROR,dkbscsi.device,4,5220,8352000,dkbscsi.device,5,5220,8352000
|
...et "HighCyl" devrait être de 8 352 000 / 236 - 1 = 35 388.
URD, le périphérique RAID universel, fournit le fichier urd.device et une interface graphique (MUI)
pour configurer vos grappes RAID. Il fonctionne au niveau du disque (et non de la partition). Il peut
gérer jusqu'à 16 grappes, chacune contenant un nombre quelconque de disques. Il propose également le
chiffrement et différents modes d'accès (SCSI direct ou TD64) pour gérer les disques de plus de 4 Go.
L'interface est très claire et présente de manière explicite les options URD : RAID 0 (striping), RAID 1
(miroir) et un RAID 0+1 non standard (É) combinant striping et miroir (j'ai dû supprimer les images,
sinon l'interface plantait ; elle fonctionne parfaitement sans elles).
J'ai eu l'opportunité de bénéficier de l'aide de son créateur, Rupert Hausberger (alias
"naTmeg"),
pour configurer et tester différentes grappes. J'ai réussi à créer et à exécuter un miroir entre
deux disques. Cependant, j'ai rencontré des difficultés avec le système de fichiers. Je n'ai pas
réussi à faire fonctionner URD et PFS3 ensemble. Quelle que soit la taille du disque utilisé, PFS3
signalait une erreur de lecture de certains blocs, avec des messages similaires à "Échec du mode d'accès direct
SCSI et TD32 ! Impossible de lire le bloc NNN (<4G) urd.device:0". Je n'ai donc pu tester URD
qu'avec FFS et SFS. Concernant SFS, je n'ai réussi à faire fonctionner URD qu'avec la version fournie
dans son archive (v0.85) et non avec la dernière version (v1.279), ce qui peut avoir faussé les résultats
de vitesse présentés ci-dessous.
Comparaisons
J'ai effectué plusieurs comparaisons afin de trouver la meilleure combinaison de périphérique et de
système de fichiers, tout en tenant compte de la tolérance aux pannes. J'ai utilisé
DiskSpeed v4.2
dans les mêmes conditions pour garantir des comparaisons équitables. Toutes les données originales
et une feuille de calcul détaillée sont disponibles ici.
Ligne de base
La configuration de base consiste en une partition sur la carte CompactFlash connectée au bus
IDE interne de l'A4000. Elle offre des performances supérieures à 900 ko/s.
| |
IDE |
SCSI |
SanDisk SDCFH2-004G |
Compaq BD00411933 |
Seagate ST15320W SUN4.2G |
Seagate ST15320W SUN4.2G |
| Essais: |
SCSIHD0_1: |
SCSIHD1_1: |
SCSIHD2_1: |
| PFS3AIO |
PFS3AIO |
PFS3AIO |
PFS3AIO |
Vitesse (octets/sec) |
Disponibilité du processeur |
Vitesse (octets/sec) |
Disponibilité du processeur |
Vitesse (octets/sec) |
Disponibilité du processeur |
Vitesse (octets/sec) |
Disponibilité du processeur |
Création d'un fichier (moyenne) |
773 209,13 |
8% |
640 515,13 |
1% |
621 005,88 |
3% |
619 962,75 |
3% |
Écriture dans le fichier (moyenne) |
952 422,71 |
8% |
764 779,04 |
1% |
713 526,21 |
3% |
710 130,67 |
4% |
Lecture du fichier (moyenne) |
1 062 214,13 |
1% |
915 598,33 |
1% |
689 856,67 |
36% |
684 459,88 |
36% |
| Moyennes |
929 281,99 |
6% |
773 630,83 |
1% |
674 796,25 |
14% |
671 517,76 |
15% |
SoftRaid contre URD utilisant FFS et SFS
Cette comparaison illustre la vitesse de chaque périphérique en utilisant sa configuration RAID, qui
est en réalité un RAID 0 (striping). Malheureusement, elle n'est pas concluante car, avec FFS, URD est
plus rapide que SoftRaid, mais avec SFS, c'est SoftRaid qui est plus rapide qu'URD.
| SoftRaid |
URD RAID |
| Seagate ST15320W SUN 4,2G x 2 |
Seagate ST15320W SUN 4,2G x 2 |
| Storage: |
Storage: |
| FFS |
FFS |
Vitesse (octets/sec) |
Disponibilité du processeur |
Vitesse (octets/sec) |
Disponibilité du processeur |
| 163 314,38 |
8% |
179 973,08 |
3% |
| 182 019,04 |
34% |
273 860,29 |
4% |
| 240 314,46 |
41% |
341 905,79 |
24% |
| 195 215,96 |
28% |
265 246,39 |
10% |
| SoftRaid |
URD RAID |
| Seagate ST15320W SUN 4,2G x 2 |
Seagate ST15320W SUN 4,2G x 2 |
| Storage: |
Storage: |
| SFS 0.85 |
SFS 1.279 |
Vitesse (octets/sec) |
Disponibilité du processeur |
Vitesse (octets/sec) |
Disponibilité du processeur |
| 290 513,79 |
8% |
184 406,71 |
4% |
| 352 991,04 |
11% |
268 450,46 |
4% |
| 519 599,04 |
17% |
352 139,08 |
22% |
| 387 701,29 |
12% |
268 332,08 |
10% |
RAID SoftRaid vs. MIROIR
Cette comparaison montre la vitesse du striping et du mirroring utilisant SoftRaid et PFS3. Elle montre
que le mirroring est moins de deux fois plus lent que le striping (618 545,43 / 346 636,63 = 1,78)
et presque deux fois plus lent que le disque d'origine (671 517,76 / 346 636,63 = 1,94).
| SoftRaid |
Miroir SoftRaid |
| Compaq BD00411933 |
Seagate ST15320W SUN 4,2G x 2 |
Seagate ST15320W SUN 4,2G x 2 |
| Storage0: |
Storage1: |
Stotage1: |
| PFS3AIO |
PFS3AIO |
PFS3AIO |
Vitesse (octets/sec) |
Disponibilité du processeur |
Vitesse (octets/sec) |
Disponibilité du processeur |
Vitesse (octets/sec) |
Disponibilité du processeur |
| 589 772,17 |
2% |
504 954,88 |
4% |
336 634,88 |
3% |
| 661 916,92 |
2% |
582 467,17 |
4% |
374 220,79 |
3% |
| 768 698,33 |
6% |
768 214,25 |
21% |
329 054,21 |
30% |
| 673 462,47 |
3% |
618 545,43 |
10% |
346 636,63 |
12% |
Conclusion : stripping et mirroring
Finalement, j'ai choisi SoftRaid car il fonctionne au niveau de la partition, contrairement à URD
qui fonctionne au niveau du disque. J'utilise le striping sur deux partitions de 2 Go d'un disque de
4 Go (récent) (nommé "Storage0:") et le mirroring sur deux partitions de 4 Go de deux disques de 4 Go
(plus anciens) (nommé "Storage1:").
J'ai opté pour le striping avec le disque le plus récent car je me soucie moins de la tolérance aux
pannes (il devrait tenir 10 ans !), mais je voulais tester sa vitesse (et celle de SoftRaid).
J'ai opté pour la mise en miroir avec les disques les plus anciens car je ne leur fais pas entièrement
confiance et je souhaitais tester la tolérance aux pannes. SoftRaid intègre un programme appelé "dd",
similaire à la commande "dd" sous Linux. Il permet de copier des blocs, des secteurs ou des octets
d'un disque/partition à un autre, de n'importe quelle position à n'importe quelle autre (attention :
une utilisation abusive de "dd" peut entraîner la perte de données sur les partitions !).
Il est très utile de copier les données d'un secteur d'un disque vers le même secteur de l'autre disque
lorsque PFSDoctor détecte une erreur de lecture sur l'un des disques ! Par exemple, lors de l'exécution
de PFSDoctor, SoftRaid signale parfois une erreur de lecture comme :
...ce qui est facile à résoudre en utilisant "dd" et en copiant les 64 secteurs commençant au secteur 7140
de l'unité 5 du périphérique dkbscsi vers l'unité 4.
Génial ! J'ai l'impression d'avoir trouvé une solution fiable pour stocker mes données ! 8-)
Addendum : mise en miroir avec des disques différents
J'ai trois disques SCSI externes : un Compaq BD00411933 (sorti vers 1999) et deux Seagate ST15320W SUN4.2G
(sortis vers 1996). Ces disques ont des caractéristiques différentes, en particulier les secteurs de
décalage ("offset sectors") et les longueurs en secteurs, qui sont les deux nombres importants pour créer
des périphériques RAID.
Les nombres donnés par le DevInfo de SoftRaid sont :
- Compaq BD00411933 : secteur de décalage : 4520 et Longueur en secteurs : 8 375 560.
- Seagate ST15320W SUN4.2G (les deux) : Secteur de décalage : 5220 et Longueur en secteurs : 8 380 710.
J'ai essayé de créer une configuration RAID avec ces nombres exacts mais, après de nombreux essais et erreurs,
je me suis rendu compte que la configuration doit utiliser le "plus petit commun dénominateur" entre eux pour
que PFS3AIO et dd fonctionnent tous les deux, ce qui signifie pour un miroir :
- ENVARC:RAID0 doit utiliser la valeur maximale des deux secteurs de décalage : MIRROR,dkbscsi.device,3,5220,8375560,dkbscsi.device4,5220,8380710.
- DOSDrivers/MIRROR0 doit utiliser la valeur minimale des deux longueurs en secteurs : 8 375 560 pour
obtenir (8 375 560 - 4520) / 236 - 1 = 35 469
secteurs pour HighCyl.
Avec ces valeurs, PFS3AIO ne se plaint pas que certains secteurs soient en dehors de sa portée avec une
erreur "TD32 and Direct SCSI access mode failed! Can't read block NNN (<4G)", et dd peut copier des blocs
en toute sécurité d'un miroir à l'autre en cas d'erreur de lecture ou d'autre différence. Ainsi, le miroir
fonctionne très bien.
Addendum : Utilisation de dd pour maintenir le miroir
SoftRaid est fourni avec un outil utile, dd, qui permet de copier des blocs, des secteurs, des octets,
des kilo-octets et des méga-octets entre deux disques/partitions. Étant donné deux disques dans un miroir,
avec le même secteur de décalage, il est facile d'utiliser dd pour copier des blocs de l'un à l'autre et
corriger toute erreur de lecture ou autre différence (il est très important que les deux disques commencent
au même secteur de décalage !). Le script suivant simplifie la copie :
; Exemple d'utilisation
; FixMirror MIRROR0_0: 7140 64 MIRROR0_1:
.key origin,originsector,origincount,destination
Echo NOLINE "Lecture depuis "
Echo
DD -ss -cs -r T:Sectors
Echo NOLINE "Écriture sur "
Echo
DD -ss -cs -w T:Sectors
Echo "Suppression du fichier temporaire"
Delete T:Sectors
|
Bien entendu, ce script doit être utilisé avec beaucoup de précaution car il peut potentiellement détruire
des données, une partition, voire un disque !
Soutenez le travail de l'auteur
|
|
|