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.
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.
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:
En pratique c'est une source de confusion importante. Voir le Large Disk mini-HOWTO
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.
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)
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.
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.
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.
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.
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.
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)
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.
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 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 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.
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é.
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.
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.
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 primairehdb
esclave primairehdc
maître secondairehdd
esclave secondaireavec 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.
Les tables suivantes donnent des vitesses indicatives (rappel: il s'agit de vitesses théoriques maximales).
IDE : 8.3 - 16.7
Ultra-ATA : 33
SCSI :
Largeur du bus (bits)
Vitesse du Bus (MHz) | 8 16 32
--------------------------------------------------
5 | 5 10 20
10 (fast) | 10 20 40
20 (fast-20 / ultra) | 20 40 80
40 (fast-40 / ultra-2) | 40 80 --
--------------------------------------------------
ISA : 8-12
EISA : 33
VESA : 40 (Parfois poussé à 50)
PCI
Largeur de bus (bits)
Vitesse du Bus (MHz) | 32 64
--------------------------------------------------
33 | 132 264
66 | 264 528
--------------------------------------------------
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.
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.
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.
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