HOWTO: Les systèmes multi-disques: Technologies de disques durs
3. Technologies de disques durs
Une discussion très complète sur les technologies des disques durs
pour compatibles PC se trouve à:
The Enhanced IDE/Fast-ATA FAQ
Elle est aussi régulièrement postée dans les forums Usenet.
On ne présentera ici que ce qui est indispensable à la compréhension
de la suite.
3.1 Disque
C'est l'appareil où vos données sont physiquement enregistrées, et
bien que le système d'exploitation peut les rendre similaires à
l'usage, il en existe des types très différents. On ne parlera pas des
disquettes, sauf dans une prochaine version si beaucoup de monde le
réclame.
3.2 Géométrie
Un disque dur est constitué d'un ou plusieurs plateaux tournants
qui contiennent des données lues et écrites par des capteurs.
Les capteurs sont fixes les uns par rapport aux autres et les
transferts de données ont donc lieu en même temps sur tout les
plateaux, ce qui définit un cylindre de pistes. Le disque est aussi
divisé en secteurs.
On spécifie la géométrie d'un disque avec trois nombres: le nombre de
Cylindres, de Têtes et de Secteurs. En anglais CHS pour cylinders,
heads, and sectors.
Il y un certain nombre de conversions entre:
- le CHS physique
- le CHS logique que le disque déclare au BIOS
- le CHS logique utilisé par le système d'exploitation
En pratique c'est une source de confusion importante.
Voir le Large Disk mini-HOWTO
3.3 Média
La technologie du médium employé
détermine des paramètres importants comme le taux de
lecture/écriture, le temps moyen d'accès, la capacité et le
fait d'être en lecture seule ou non.
Disques magnétiques
C'est le médium le plus courant pour la mémoire de masse.
Habituellement c'est la
technologie la plus rapide et elle est en lecture/écriture.
Le plateau tourne avec une vitesse angulaire constante (CAV) avec
une densité physique des secteurs variable. Le nombre de bits par
unité de longueur reste constant tandis que le nombre de secteurs
logiques par piste varie.
Des valeurs typiques de vitesse angulaire sont 4500 et 5400 tr/min,
mais on trouve aussi 7200 et des disques à 10000 tr/min ont fait
récemment leur apparition sur le marché. Le temps d'accès est
d'environ 10 ms et les taux de transferts entre 4 et 40 Mo/s.
Il faut se rappeler que les disques les plus rapides sont aussi ceux
qui consomment le plus d'électricité et chauffent le plus. Voir
Chaleur et Consommation d'Énergie à ce
sujet.
Notez bien qu'il y a plusieurs types de transferts qui sont mesurés
avec des unités différentes. Le premier est le taux de transfert du
plateau vers la mémoire cache du disque, mesuré en Mbit/s, qui vaut
entre 50 et 250 Mb/s. Le second est entre le cache et
l'adaptateur, il est mesuré en Moctets/s et vaut entre 3 et 40
Mo/s. (rappel: un octet = 1 B = 8 bits = 8 b)
Disques optiques
Des disques optiques en lecture/écriture existent mais ils sont lents
et peu répandus. Ils étaient utilisés dans les machines NeXT mais très
critiqués pour leur faible vitesse. Celle-ci est due à la nature
thermique du changement de phase qui matérialise l'enregistrement de
données. Même avec des lasers assez puissants, les changements de
phase sont plus lents qu'avec un champ magnétique.
Les cédéroms aussi sont de technologie optique,
mais comme leur nom (ROM = Read Only
Memory) l'indique, ils sont en lecture seule. Leur capacité est
d'environ 650 Mo, et le débit peut atteindre 1,5 Mo/s. Les données
sont sur une seule piste en spirale, on ne peut donc pas vraiment
parler de géométrie pour ces disques. La densité des données est
constante donc le lecteur utilise une vitesse linéaire constante
(CLV). Le temps d'accès est aussi plus lent, environ 100 ms, en partie
à cause de la piste en spirale. Les lecteurs récents utilisent
des vitesses angulaires constantes (CAV) à certains endroits du
disque: cette technologie mixte CAV/CLV augmente le débit et
réduit le temps d'accès car il y a moins besoin d'accélérer et de
ralentir la vitesse angulaire (pour garder une vitesse linéaire constante).
Un nouveau type de disque semblable au cédérom
(le DVD) permettra jusqu'à 18 Go de stockage.
Disques à états solides
Cette technologie récente est surtout utilisée dans les portables et
les systèmes embarqués. Ne contenant aucune partie mobiles ils sont
très rapides pour le taux de transfert comme pour le temps d'accès.
Le type le plus courant est la mémoire vive "flashable" (flash-RAM) mais
d'autre types de mémoire vive sont aussi utilisés. Il y a quelques
années de grands espoirs se sont portés sur la mémoire à bulles
magnétiques mais elle s'est avérée chère et pas pratique.
En général les disques de mémoire vive
sont une mauvaise idée: mieux vaut mettre
beaucoup de mémoire sur la carte mère et laisser le système
d'exploitation la diviser en fichiers, cache, zone de programmes et de
données. Les disques de mémoire vive sont utiles seulement pour des usages très
spécifiques, comme des systèmes temps réel avec des délais très
courts.
La mémoire flash est aujourd'hui disponible par dizaines de Mo et on
pourrait être tenté de l'utiliser pour un stockage temporaire rapide
des données. Mais il y a un os: on ne peut écrire sur de la
mémoire flash qu'un nombre assez limité de fois. Mettre swap ,
/tmp ou /var/tmp sur un périphérique de ce genre
réduirait drastiquement sa durée de vie. En
revanche il peut être intéressant d'utiliser de la mémoire flash pour des
données lues souvent et écrites peu souvent.
Pour augmenter la durée de vie il faudra des pilotes spéciaux qui
minimisent le nombre de fois où on doit effacer un bloc mémoire.
Cet exemple montre bien l'intérêt qu'il y a à séparer l'arborescence des
fichiers entre plusieurs périphériques.
Les lecteurs à état solide n'ont pas d'adressage pas
cylindre/tête/secteur mais cette géométrie est
simulée par le pilote: ainsi de l'extérieur ils se comportent
exactement comme un disque dur.
3.4 Interfaces
Il y a une pléthore d'interfaces dans une gamme de prix très
étendue. La plupart des cartes-mères comprennent une interface IDE ou
mieux, la puce Triton d'Intel sur bus PCI qui est très répandue
aujourd'hui. Beaucoup de cartes-mères ont aussi une puce d'interface
SCSI fabriquée par Symbios (nouveau nom de NCR)
et directement connectée au bus PCI. Vérifiez
ce que vous avec et ce que le BIOS de voter carte-mère supporte.
MFM et RLL
Il fut un temps où c'était la technologie incontournable, un temps où
20 Mo c'était le bout du Monde. Ces interfaces dinausoresques sont
d'un lenteur comique comparé à ce qui se fait aujourd'hui. Linux les
supporte mais vous seriez bien avisé de vous demander ce que vous
voulez mettre dessus. On peut bien sûr penser qu'une partition de
secours avec un DOS potable dessus est toujours utile.
ESDI
En fait, ESDI est une adaptation de l'interface SMD, très utilisée sur
les "gros" ordinateurs, avec le câblage de l'interface ST506, plus
pratique que les 60 + 26 broches du connecteur SMD. L'interface ST506
était très nulle et dépendait complètement du contrôleur et du
processeur pour faire les calculs de tête/cylindre/secteur et garder
une trace de la position de la tête, etc. L'interface ST506 exigeait du
contrôleur qu'il gère de façon détaillée les paramètres physique du lecteur et
le formatage des pistes, bit par bit. Ce genre d'interface a vécu 10
ans si on compte les variantes MFM, RLL, ERLL et ARLL. ESDI, d'un
autre côté, était "intelligente": le contrôleur avait souvent trois
ou quatre puces pour un seul disque, et il y avait un langage de haut
niveau pour formater une piste, rechercher et transférer des
données. ESDI permettait d'utiliser une densité d'enregistrement
variable, ou beaucoup d'autres choses. Bien que pas mal de techniques
de ESDI aient été incorporées à IDE, c'est SCSI qui a progressivement
détrôné ESDI.
IDE et ATA
Avec les progrès de la miniaturisation, les contrôleurs, autrefois sur
une carte ISA, ont été intégrés au disque et IDE (Integrated Drive
Electronics) était né. C'était simple, pas cher et assez rapide, si
bien que les concepteurs du BIOS ont fixé une de ces limitations
arbitraires dont l'informatique est pleine. Avec 16 têtes et 1024
secteurs, la capacité fut limitée à 504 Mo. Dans la plus pure
tradition de l'industrie informatique, cette limitation a été ensuite
contournée par des bidouilles infâmes dans le BIOS. En clair, vous
devez lire très attentivement la documentation de votre BIOS pour
savoir de quand il date et quelle taille de disque il
autorise. Heureusement avec Linux vous pouvez spécifier directement au
noyau (donc sans avoir besoin de passer par le BIOS) les paramètres
(CHS) du disque. La documentation de Lilo et de Loadlin détaille
comment le faire. IDE est synonyme d'ATA, AT Attachements. IDE utilise
un programmes d'entrées-sorties (PIO-mode)
très gourmand en temps de calcul qui
monopolise le processeur principal. Le taux de transfert optimal
(théorique) est de 8,3 Mo/s. IDE ne permet pas l'accès direct à la
mémoire (DMA)
EIDE, Fast-ATA et ATA-2
Ces trois termes sont à peu près équivalents. fast-ATA et ATA-2 sont
synonymes, mais EIDE comprend ATAPI. ATA-2 est ce qu'il y a de mieux
actuellement, car plus rapide et autorisant l'accès direct à la
mémoire (DMA). Le taux de transfert maximal est 16,6 Mo/s.
Ultra-ATA (ou Ultra-DMA)
Ce nouveau mode DMA est à peu près deux fois plus rapide que l'EIDE
PIO-Mode 4. Deux disques avec et sans l'Ultra-DMA peuvent être mis sur
la même nappe sans pénalité pour le plus rapide. L'interface Ultra-DMA
est compatible au plus bas niveau (au niveau électrique) au Fast-ATA,
y compris pour la longueur minimale des nappes.
ATAPI
ATAPI signifie ATA Packet Interface et a été conçu mettre des
cédéroms sur une interface IDE. Comme l'IDE, il est simple et pas
cher.
SCSI
SCSI signifie Small Computer System Interface et c'est une
interface générique qu'on peut utiliser pour brancher des disques, des
plateaux de disques, des imprimantes, des scanners, des graveurs de
cédéroms, ... Le nom est mal choisi dans la mesure où c'est
utilisé dans les PC haut de gamme et les stations. Elle convient aux
environnements multi-tâche.
L'interface standard a 8 bits de large et peut gérer 8
périphériques. L'interface wide-SCSI a 16 bits de large (elle est
donc deux fois plus rapide à la même fréquence) et peut gérer 16
périphériques. La carte SCSI est toujours comptée comme un
périphérique, habituellement avec le numéro 7 (les autres étant
numérotés de 0 à 6). Le SCSI 32 bits existe aussi mais il demande en
général un ensemble de câbles doubles.
L'ancien standard faisait 5 Mo/s et le nouveau (fast-SCSI) 10
Mo/s. L'ultra-SCSI, connu aussi sous le nom de fast 20,
réalise 20 Mo/s sur un bus 8 bits. Des voltages plus bas (LVD, pour
Low Voltage Differential) permettent d'atteindre de plus
grandes vitesses et d'utiliser des câbles plus longs.
Le SCSI est plus rapide, mais plus cher que l'(E)IDE. On ne saurait
assez insister sur l'importance de
la terminaison et la qualité des câbles. Les disques SCSI sont aussi en
général de meilleure qualité que les disques IDE. Souvent on peut les
brancher et les débrancher "à chaud"
(sans couper l'alimentation), ce qui est surtout utile si
on a plusieurs ordinateurs (pour pouvoir transporter les disques d'un
ordinateur à un autre).
Parmi les documents à consulter sur le SCSI, le SCSI-HOWTO et la Foire
Aux Questions (FAQ) SCSI sont vivement recommandés.
Un autre avantage du SCSI est qu'on peut connecter facilement des
lecteurs de DAT pour sauvegarder des données, ainsi que certaines
imprimantes ou scanners. Il est même possible de l'utiliser comme un
réseau ultra-rapide entre ordinateurs qui partagent des périphérique
SCSI. C'est cependant non-trivial en particulier pour assurer la
cohérence de la mémoire tampon des deux cartes SCSI.
3.5 Câbles et nappes
Ce n'est pas un cours de hardware mais certaines informations sur les
câbles sont nécessaires. Cette pièce si simple de l'équipement est
souvent la cause de bien des problèmes. Aux vitesses actuelles il faut
tenir compte de son impédance, et sans un minimum de précautions on
risque des dysfonctionnement ou bien la panne complète. Certains
adaptateurs SCSI sont plus sensibles que d'autres à la qualité des câbles.
Les câbles blindés sont bien sûr meilleurs (ils sont protégés des
interférences électromagnétiques) mais beaucoup plus chers.
Avec un peu d'habileté vous obtiendrez de bon résultats sur un câble
non blindé.
- Pour le Fast-ATA et l'Ultra-ATA, la longueur maximale de la
nappe est 45 cm. Les nappes des deux ports IDE sont souvent
connectées, donc elle comptent pour un seul câble. Dans tous les
cas les nappes IDE doivent être aussi courtes que possible. Si vous
avez des plantages incompréhensibles ou des changements spontanés de données,
examinez votre câblage. Essayer un mode PIO moins élevé (entre 1
et 4) ou déconnectez la seconde nappe si le problème persiste.
- Utilisez le moins de câble possible, mais n'oubliez pas la
séparation de 30cm minimum entre deux périphériques ultra SCSI.
- Évitez les empilements entre la nappe et le disque, branchez la
prise de la nappe directement sur le disque.
- Utilisez la bonne terminaison pour les périphériques SCSI et à
la bonne position, c'est-à-dire aux deux extrémités de la chaîne
SCSI. Souvenez-vous que l'adaptateur peut avoir une
auto-terminaison: dans ce cas, il suffit de vérifier que
l'autre extrémité est bien terminée.
- Ne mélangez pas les câbles blindés et non blindés, n'enroulez pas les
câbles autour du métal, évitez de placer les câbles trop près des
parties métalliques. Cela peut créer des différences d'impédance qui
à leur tour entraînent la réflexion des signaux et augmentent le
bruit sur le câble. Avec des contrôleurs multi-canaux le problème se
pose de façon plus aiguë encore. On peut essayer de mettre du
plastique autour des câbles pour éviter une trop grande proximité avec
les éléments métalliques.
3.6 Adaptateurs
C'est l'autre extrémité de l'interface du disque, la partie connectée
à un bus de la carte-mère. La vitesse du bus doit être assez élevée
pour ne pas être une limitation par rapport à celle du disque.
Mettre une rangée de disques RAID-0 sur une carde ISA serait du gâchis
(car le bus ISA est trop lent). La plupart des machines actuelles ont
un bus PCI 32 bits avec un débit de 132 Mo/s: dans un proche futur au
moins, la vitesse du bus ne sera pas un facteur limitant sur ces machines.
Comme l'électronique a migré vers l'intérieur des disques, ce qui
reste et qui constitue l'interface E(IDE) est ridiculement petit:
souvent c'est intégré au contrôleur du bus PCI. Un adaptateur SCSI est
plus complexe et comprend souvent un petit processeur: il est donc
plus cher et n'est pas inclus dans le contrôleur PCI.
En contrepartie, il décharge le processeur de certains calculs lors
des accès disque.
Certains adaptateurs SCSI comportent même une mémoire cache et de
l'intelligence pour anticiper les décisions du système
d'exploitation. Mais le résultat dépend fortement du système
d'exploitation utilisé. Linux a de son côté tant d'optimisations que
le gain est souvent assez faible.
Mike Neuffer, qui a écrit les pilotes pour les contrôleurs DPT, assure
que ces contrôleurs sont assez intelligents pour obtenir d'excellentes
perfomances pourvu qu'ils aient suffisament de mémoire cache, et que
les gens qui n'ont pas obtenu de gain de perfomances significatif avec
des contrôleurs plus élaborés n'utilisent pas assez bien le
contrôleur.
3.7 Systèmes multi-canaux
Pour augmenter les performances globales il faut identifier les
facteurs limitants et les éliminer. Dans certains cas, avec un grand
nombre de disques connectés, il est intéressant d'avoir plusieurs
contrôleurs travaillant en parallèle, aussi bien pour le SCSI que pour
l'IDE (les cartes mères ont souvent deux canaux IDE). Bien sûr Linux
sait en tirer profit.
Certains contrôleurs RAID offrent 2 ou 3 canaux et c'est intéressant
de répartir la mémoire de masse entre plusieurs canaux. Autrement dit,
avec deux disques SCSI que vous voulez RAID-er et un contrôleur à deux
canaux, placez un disque sur chaque canal.
3.8 Systèmes multi-cartes
On peut avoir du SCSI et du IDE sur la même machine, mais aussi
plusieurs contrôleurs SCSI. Vérifiez dans le SCSI-HOWTO quels
contrôleurs vous pouvez combiner. Sans doute vous devrez indiquer au
noyau qu'il doit juste détecter un contrôleur au démarrage (l'autre
contrôleur sera détecté et utilisé plus tard). Voyez la documentation
de Lilo et du SCSI pour plus de détails.
Les systèmes à plusieurs contrôleurs peuvent offrir un gain de vitesse
appréciable si on configure bien les disques, spécialement en mode
RAID0. Pour bien paralléliser les disques et les contrôleurs, ajoutez les
disques dans le bon ordre pour le driver md . Si le contrôleur 1
est connecté aux disques sda et sdb et le contrôleur 2 aux
disques sdc et sdd , ajoutez les disques dans l'ordre
sda - sdc - sdb - sdd , ainsi une lecture ou écriture concernant
plus d'un cluster se répartira le plus souvent sur 2 contrôleurs.
La même méthode s'applique aux disques IDE. La plupart des
cartes-mères ont 4 ports IDE:
-
hda maître primaire
-
hdb esclave primaire
-
hdc maître secondaire
-
hdd esclave secondaire
avec les deux disques primaires sur la même nappe, et les deux disques
secondaires sur l'autre nappe. Il faut donc les concaténer dans
l'ordre hda - hdc - hdb - hdd afin de paralléliser au maximum
selon les deux canaux.
3.9 Comparatif de vitesse
Les tables suivantes donnent des vitesses indicatives (rappel: il
s'agit de vitesses théoriques maximales).
Contrôleurs
Types de bus
3.10 Jeux de tests (Benchmarks)
C'est un sujet très, très délicat et je ne m'engagerai
que très prudemment sur ce terrain miné. Il est très
difficile de faire des tests comparables et significatifs.
Mais que ça ne décourage pas ceux qui voudront essayer ...
On peut utiliser les benchmarks pour un diagnostic du système, pour
voir s'il est aussi rapide qu'il le devrait étant donné ses
composantes. Ainsi en passant d'un système de fichiers tout simple au
RAID, vous attendrez une accélération significative, donc une perte de
performances vous informera que quelque chose déco^H^H^H^H ne va pas.
N'essayez pas de bricoler votre propre jeu de test, utilisez plutôt
iozone et bonnie , et lisez la documentation très
attentivement. Plus d'info dans la prochaine version du HOWTO.
3.11 Comparaisons
Le SCSI offre de meilleures performances que l'EIDE, mais cela se
paye. La terminaison est plus complexe mais rajouter un disque n'est
pas très difficile. Avoir plus de 4 (plus de 2 dans certains cas)
disques IDE peut être compliqué, alors que le wide-SCSI supporte
jusqu'à 15 disques par adaptateur (plus encore pour les contrôleurs
multi-canaux).
Vous avez besoin d'un IRQ par contrôleur SCSI, chaque contrôleur
pouvant gérer jusqu'à 15 disques. En revanche, vous avez besoin d'un
IRQ par disque IDE, ce qui peut générer des conflits.
RLL et MFM sont trop vieux, lents et malpratiques pour être d'un
utilité quelconque.
3.12 Perspectives
Le SCSI-3 est en préparation. Des disques plus rapides sont annoncés,
et récemment un spécification monstre à 80 Mo/s sur un bus de 16 bits
a été proposée.
Certains constructeurs ont annoncé des matériels SCSI-3 mais c'est
prématuré car le standard n'est pas encore publié. Le point de
saturation du bus PCI se rapproche. Actuellement la limite du bus PCI
64 bits à 33 MHz est 256 Mo/s, mais les futurs bus à 66 MHz grimperont
à 528 Mo/s.
Une autre tendance est que l'espace disque est de plus en plus
grand. On peut actuellement mettre 55 Go sur un seul disque, mais
c'est encore assez cher. Le meilleur rapport espace/prix se situe
autour de 8 Go et
augmente continûment. L'introduction du DVD aura un grand impact dans
un futur proche, avec 20 Go sur un seul disque on peut envisager même
l'image intégrale des plus grands sites FTP. La seule chose certaine
est que même si les disques ne sont pas mieux, ils seront plus gros.
Note: J'avais écrit dans ce HOWTO que la vitesse maximale
des cédéroms était 20x à cause de problèmes de stabilité mécanique,
mais peu après le premier cédérom 24x était disponible ...
actuellement vous pouvez acheter un 40x et sans aucun doute des
vitesses supérieures seront atteintes.
3.13 Recommandations
A mon avis EIDE ou Utra-DMA
est mieux pour commencer sur une machine personnelle,
spécialement si vous utilisez MS-DOS. Si vous voulez étendre votre
système plus tard ou l'utiliser comme serveur, il est
fortement recommandé d'utiliser des disques SCSI. Actuellement le
wide-SCSI est légèrement plus cher. Le SCSI standard a un bon rapport
qualité-prix. Il existe un bus SCSI différentiel qui permet une plus
grande longueur de câble, mais il est tellement plus cher qu'on ne
doit pas le recommander aux utilisateurs normaux.
En plus des disques vous pouvez ajouter des scanners et des
imprimantes sur un bus SCSI.
Gardez à l'esprit que toute extension de votre système augmente la
consommation d'électricité, et assurez-vous que l'alimentation
et le refroidissement restent suffisants. Beaucoup de disques
SCSI ont une option de démarrage en séquence adapté aux grands
systèmes. Voir aussi
Chaleur et Consommation
[22 février 2002, JDNet]
|