Le Systeme disque et le PC

La Gestion des disques

Sommaire

Le partitionnement sur PC 3

Comment fonctionne la séquence de boot sur un PC 3

Organisation du disque dur d’un PC 3

    Le Master Boot Record ou secteur d’amorçage principal. 3

    Le secteur d’amorçage des partitions. 4

Géométrie du disque : cylindres, secteurs et clusters. 5

    Partie physique : cylindres et secteurs 5

    Partie logique : clusters 5

Noms de fichiers. 6

Sécurité sur les accès. 6

Pour aller plus loin 7

La gestion des disques durs 8

Le partitionnement 8

    La taille des partitions 8

    Le type de la partition 9

    Les agrégats de partitions. 9

Performances des contrôleurs de disques. 10

    Les systèmes IDE UDMA : 10

    Les systèmes SCSI : 10

    Les systèmes RAID : 10

    USB, Firewire et Fiber Channel 10

    Vitesse d’un disque dur 11

Les systèmes RAID : Redundant Array of Independant Disks. 12

Le RAID 0 12

    Présentation 12

    Gestion logicielle 12

    Gestion matérielle 12

    Performances et usage 12

La mise en miroir ou en duplex : RAID 1 13

    Présentation 13

    Gestion logicielle 13

    Gestion matérielle 13

    Performances et usage 13

Le RAID 0/1 : striping+mirroring/duplexing. 13

Les agrégats par bandes avec parité : RAID 5. 14

    Présentation 14

    Gestion logicielle 14

    Gestion matérielle 14

    Performances et usage 14

Disques de réserve (spares) et disques HOTSWAP 15

    Spares 15

    Hot Swap 15

    Mémoire cache 15

Le partitionnement sur PC

Comment fonctionne la séquence de boot sur un PC

A l’allumage du PC, le CPU exécute un ensemble d’instructions inscrit en ROM sur la carte mère. Ces instructions se divisent en trois étapes : le POST (Power On Self Test) qui s’exécute après l’allumage (démarrage à froid ou bouton de Reset, ou bien un shutdown –r 0 sous Unix) et peut généralement être abrégé dans la configuration du BIOS, son rôle est de tester les circuits périphériques minimaux nécessaires au démarrage d’un PC (mémoire et parfois affichage, clavier et souris et contrôleurs de mémoires de masse),

Ensuite vient l’initialisation qui s’exécute aussi après la séquence Ctrl-Alt-Sup sous DOS, elle répertorie l’ensemble des périphériques (mémoires de masse, cartes ISA et PCI Plug ‘n play, …),

Enfin vient la procédure d ‘amorçage qui exécute le programme contenu sur le Master Boot Record (MBR) du disque dur, de la disquette, ou émulé par le pilote BIOS du CD-ROM ou de la carte réseau, servant à démarrer un système d’exploitation du matériel composant le PC.

Organisation du disque dur d’un PC

Le Master Boot Record ou secteur d’amorçage principal.

Le disque dur d’un PC dédie son premier secteur (cylindre 0 tête 0 secteur 1, 512 octets) aux informations nécessaires au démarrage du PC.

Tout d’abord vient le Master Boot Record de 446 octets qui contient le programme de démarrage, suivit de deux octets d’en-tête puis de la table des partitions de 4 entrées de 16 octets chacune.

Le Master Boot Record ou secteur d’amorçage principal.

Ensuite chaque partition contient un secteur d’amorçage (boot sector) qui lui est propre, permettant par exemple le chargement du système d’exploitation contenu généralement sur cette partition.

Le nombre de partitions sur un disque dur est donc d’au maximum 4 partitions principales, ou trois principales et une étendue qui pourra alors être découpée en plusieurs lecteurs logiques.

Dans le cas de lecteurs logiques, les informations concernant chaque lecteur sont chaînées dans la partition étendue (chaque lecteur logique contient dans son secteur d’amorçage (BOOT sector) ses informations propres (16 octets) suivies de celles du prochain lecteur logique(16 octets) et les deux autres entrées de 16 octets comportent des zéros, la perte ou l’écrasement des informations de la partition étendue entraîne donc la perte de tous ses lecteurs logiques.

Les agrégats de partitions ajoutent une dimension supplémentaire à la gestion de l’espace disque.

Le secteur d’amorçage des partitions.

MSDOS et Windows9x

Le secteur d’amorçage principal contient donc le MBR qui se charge en mémoire et identifie la partition (celle active avec Microsoft) dont il faut charger puis exécuter le secteur d’amorçage propre.

Sous MSDOS ou Windows9x, la partition active contenant un système de fichiers FAT 16 ou FAT 32 devient le lecteur C :, dont le secteur d’amorçage est lancé par le MBR. Ces systèmes d’exploitation ne reconnaissent que la FAT16 (MSDOS et Windows 95 OSR1) ou bien les FAT 16 et 32 (Windows 95 OSR2 et Windows 98). Des lettres de lecteurs ne sont affectées qu’au partitions reconnues.

Windows NT

Une installation multiboot supplémentaire de Windows NT sur un système MSDOS ou ,Windows9x s’appuie sur ce système et installe sur le secteur d’amorçage de C : (partition active DOS) un programme qui fait appel au Ntloader (ntldr) utilisant un fichier de configuration boot.ini, tous deux contenus dans la racine de C :. Cependant, NT4 ne reconnaissant que les systèmes de fichier FAT16 et NTFS, il ignorera le contenu des partitions d’autres types (comme la FAT32). Toutefois NT4 affecte des lettres de lecteurs aux partitions de type FAT16, 32 et NTFS, sans pouvoir accéder aux partitions FAT32, ni aux autres types de systèmes de fichiers.

Lorsqu’aucune installation de type MSDOS n’est présente, le secteur d’amorçage de NT est installé sur la partition active, qu ‘elle soit de type FAT16 ou NTFS, et appelle le Ntloader utilisant le boot.ini contenus sur la même partition.

Dans tous les cas, Ntloader peut ensuite lancer n’importe quel système d’exploitation, pour peu qu’il possède une copie du secteur d’amorçage de ce système (comme le fichier bootsect.dos dans le cas de MSDOS ou Windows9x).

Linux

Enfin, dans le cas où Linux est installé en dernier lieu, il remplacera le programme standard du secteur d’amorçage principal MBR par le sien, et permettra alors de démarrer ensuite sur un secteur d’amorçage au choix, pour peu qu’une entrée pour ce secteur soit prise en charge par le chargeur LILO de Linux (fichier /etc/lilo.conf).

Si on veut utiliser le Ntloader de NT4 avec Linux, il faudra sauvegarder le secteur d’amorçage de la partition de démarrage de Linux dans un fichier (ex : bootsect.lin) puis rajouter une ligne du type c:\bootsect.lin= »Linux » dans le boot.ini. Il est à noter que l’installation de NT4 n’écrase pas le MBR mis en place par Linux. Pour récupérer le MBR standard, il faut exécuter la commande DOS « fdisk /MBR ».

Géométrie du disque : cylindres, secteurs et clusters.

Partie physique : cylindres et secteurs

Un disque dur est généralement physiquement constitué (formatage de bas niveau) de cylindres étant dans la plupart des cas découpés en un nombre de secteurs fixe, chaque secteur étant composée de 512 octets. Dans le cas de certains disques, pour éviter le gaspillage d’espace sur les cylindres extérieurs, ils contiennent un nombre de secteurs croissant lorsqu’on s’éloigne du centre du disque, mais le contrôleur du disque déguise cette disposition physique afin de présenter à l’ordinateur hôte un nombre de secteurs fixe par cylindre.

On a déjà vu que le premier secteur d’un disque contient le MBR et les informations de partitionnement, le premier secteur d’une partition contient lui le programme d’amorçage de cette partition. D’autre part le premier secteur d’une partition étendue pointe sur le premier lecteur logique, puis le premier secteur de chaque lecteur logique contient les informations du lecteur logique en cours et du suivant.

MSDOS, Windows et Linux sont incapable d’être démarrés à partir d’une partition contenant des cylindres supérieurs au 1024ième (numéro 1023). De plus, FAT16 ne peut gérer des partitions dépassant ce cylindre, ni des partitions de plus de 4Go (2Go dans le cas d’un système à double amorçage comme avec Windows95 et DOS). Concernant FAT 32, NTFS et ext2, les limitations en taille sont loin d’être atteintes (2To).

Partie logique : clusters

Taille

Le secteur est donc l’unité physique la plus petite de stockage. Mais les systèmes de fichiers possèdent leur propre découpage.

La FAT 16 possède 16 bits pour découper l’espace de stockage d’une partition. Jusqu’à 32Mo l’unité minimale de stockage appelée cluster est d’au moins 512 octets=1 secteur (32Mo/216=512 octets).

De ce fait, de 32 à 64Mo, le cluster est d’au moins 1ko=2 secteurs… le cluster d’une partition de 2Go à 4Go est de 64ko=128 secteurs, ce qui constitue la taille de cluster maximale d’un système de fichier FAT16. Attention cependant au fait que MSDOS et Windows sont des systèmes qui ne peuvent supporter des partitions en FAT16 de plus de 2Go.

En FAT32, la taille du cluster est de 4ko par défaut, mais du fait des 32bits utilisés, n’importe quelle taille puissance de 2 (taille minimale = 1secteur=512 octets) peut être utilisée.

En NTFS, la taille du cluster est par défaut de 512 octets=1 secteur pour une partition d’au maximum 512Mo, de 1ko pour une partition de 512Mo à 1Go, etc… cependant, comme en FAT 32, la taille du cluster peut être fixée indépendament de la taille de la partition ! Enfin NT4 ne gère plus la compression de disque pour des cluster de plus de 4ko.

Compromis occupation/performance

La taille du cluster est prépondérante et fixe le compromis occupation/performance d’un disque. En effet, un fichier occupe un nombre entier de clusters.

Par exemple, en FAT16, avec une partition de 1,5Go, le cluster est de 32ko, donc tout fichier inférieur à 32ko occupera 32ko. Ensuite, statistiquement, la place perdue sera de 16ko par fichier (10000fichiers = 160Mo perdus + plus les pertes dues aux fichiers de petite taille). Si, par exemple, un logiciel installe en plus des bibliothèques réunissant 2000 fichiers inférieurs à 1ko, l’espace perdu supplémentaire sera proche de 32Mo pour un espace utile inférieur à 2Mo ! ! !

En contrepartie, si le cluster est trop petit, une variation de taille de fichiers entraînera systématiquement une fragmentation élevée des fichiers, particulièrement en FAT où les nouveaux fichiers sont stockées les uns derrière les autres, sans fragmentation tant qu’il y a de la place. Par exemple, avec une taille de cluster de 4ko, un fichier de 3ko qui passe à 5ko se verra fragmenter en deux parties… Il est à noter que Windows NT4 gère les fichiers de manière à éviter la fragmentation des fichiers, mais cela se produit de toute manière lorsque le disque commence à être plein.

La défragmentation accélère donc la lecture des partitions, et optimise leur espace lorsqu’elle supprime les trous provenant le l’effacement des fichiers. Cependant, elle n’est pas conseillée en NTFS tant que des problèmes de fragmentation excessive ne sont pas rencontrés.

Noms de fichiers.

Les noms de fichiers (ou répertoires) standards sont de 8 caractères séparés par un point de trois autres caractères pouvant servir à spécifier un type de fichier (mais l’usage reste libre).

Les noms longs, sous Windows9x ou NT4 permettent l’usage de 256 caractères maximum. Ensuite, avec un système de fichier FAT, le MSDOS lira les fichiers qui ne sont pas au format 8.3 de la manière suivante : il conservera les 6 premiers caractères, suivis d’un « tilda » ~ et d’un numéro, ensuite il place un point suivi des trois premiers caractères qui suivent le dernier point du nom original. Le numéro permet de numéroter dans l’ordre chronologique de création (et non dans l’ordre alphabétique) différents fichiers dont les noms longs donneraient sinon le même nom au format 8.3. Cette conversion fonctionne aussi en NTFS pour les logiciels ne supportant pas les noms longs.

Exemple : soient deux fichiers monessai2.txt.document et monessai1.toto.document, si essai2.txt.document a été créé en premier, ils auront respectivement au format 8.3 les noms suivants : moness~1.doc et moness~2.doc.

Sécurité sur les accès.

Les systèmes de fichiers FAT ne comporte aucun système de sécurisation des accès. Donc MSDOS et Windows9x ne permettent pas un gestion d’accès aux fichiers et répertoires.

Le système NTFS gère cette sécurité, il est donc nécessaire aux partitions gérées par NT auxquelles on souhaite appliquer une sécurisation des accès (commande de conversion FAT vers NTFS : convert unité /fs:ntfs). Afin de permettre à NT de gérer la sécurité dès son installation, il faut spécifier l’utilisation du système de fichiers NTFS. Sinon, la conversion ultérieure omettra d’appliquer les paramètres de sécurités normalement utilisés (exemple : ceux des profils utilisateurs) ! De plus, si plusieurs installations de NT4 cohabitent sur la même machine, les droits d’accès configurés par un système sont récupérés par l’autre… ! ! !

Linux gère aussi la sécurisation des accès avec son système de fichiers ext2.

Pour aller plus loin

L’étude détaillée des systèmes de fichiers n’est pas faite ici, mais nombreux sont les ouvrages et les sites Internet s’y rapportant. Les informations qui ont été ici abordées ont seulement pour objectif de permettre une stratégie de partitionnement et d’utilisation des systèmes de fichiers adaptée au besoin.

La gestion des disques durs

Le partitionnement

La taille des partitions

On a vu que la géométrie du disque le découpait en cylindres morcelés en secteurs. Le premier secteur du disque contient le MBR : Master Boot Record ou secteur d’amorçage principal composé de 512 octets dont les 446 premiers contiennent le programme d’amorçage du système (tous systèmes d’exploitation confondus).

Ensuite viennent deux octets d’en-tête qui sont suivis de 64 octets découpés en 4 bloc de 16 octets contenant les informations sur chaque partition :

Adresse dans la table

Taille

Signification

00

Octet

Indicateur d’amorçage. Indique si la patition est la partition système

00= partition normale

80= partition système

01

Octet

Tête initiale

02

6bits

Secteur initial

03

Octets+2bits

Cylindre initial (10bits => max=1023)

04

Octet

ID système. Ce champ indique le type de système de fichiers. Sous NT, il indique aussi si la partition fait partie d’un volume qui doit se servir de la sous-clé du registre.

05

Octet

Tête finale

06

6bits

Secteur finale

07

Octet+2bits

Cylindre finale

08

Mot (4octets)

Secteur relatif

12

Mot (4octets)

Nombre de secteurs

Un disque ne peut donc contenir que quatre partitions principales maximum (un système MSDOS basique ne verra cependant que la première activée), dont une peut être activée pour indiquer la partition de démarrage.

Pour outrepasser cette limitation, il est possible de remplacer l’une de ces partitions principales par une partition étendue, cette dernière pouvant alors accepter autant de lecteur logiques que le bon sens le permet.

Le démarrage d’un système d’exploitation se fait nécessairement à partir d’une partition principale (dont le cylindre maximum est strictement inférieure à 1024), mais le système (fichiers) peut généralement ensuite être installé n’importe où.

Le premier secteur du disque contient les informations concernant les quatre partitions (principales ou étendues) sous forme de quatre valeurs de 16 octets, dont les informations initiales et finales son utilisées par le bios, le DOS ou les programmes d’amorçage. Pour cette raison, MSDOS, Windows ou Linux ne peuvent démarrer avec une partition dépassant le 1024ième cylindre.

Ensuite les champs 08 et 12 indiquent le secteur relatif et le nombre de secteurs, et sont utilisés par certains systèmes d’exploitation comme Windows en FAT32 ou NTFS, ou bien Linux, pour outrepasser les valeurs initiales et finales utilisées par le bios : la taille maximale pour une partition devient donc de 4 milliards de secteurs (232) = 2048 Go =2 To, exploitable par un système de fichiers 32bits.

Le type de la partition

Dans le cas d’une partition étendue, son premier secteur contient ensuite les informations concernant l’emplacement du premier lecteur logique. Puis chaque lecteur logique contient, toujours sur 16 octets dans son premier secteur, les informations le concernant, suivi de celles concernant le lecteur suivant (16 octets), puis des 32 autres octets à zéro.

Le champ de 16 octets contient aussi un identificateur définissant le système de fichier :

identificateur définissant le système de fichier

Il est à noter que Windows NT4 supporte le type de FAT16 standard (6).

Linux peut lui supporter, en plus de ext2, les systèmes NTFS (86), FAT16 (6) et FAT32 (b)

Tout système d’exploitation supporte un nombre réduit de types, qu’il peut implémenter après le partitionnement en spécifiant l’ID de la partition crée.

Les agrégats de partitions.

Il s’agit d’un conglomérat de 2 à 32 partitions réunies sous la même entité, donc la même lettre, sous Windows NT. Ces agrégats peuvent rassembler différentes petites partitions en provenance de plusieurs disques de tous types afin de les rassembler sous la même partition logique. Windows NT supporte ce type de partitions de manière logicielle dans son administrateur de disque. Cette opération est aussi possible sous Linux.

Ce type d’agrégat n’apporte normalement aucune amélioration des performances, de plus, la perte d’une des partitions physiques implique la perte des données de l’agrégat.

Performances des contrôleurs de disques.

Les normes ont beaucoup évoluées, et ce paragraphe n’aborde que les systèmes actuellement disponibles dans le commerce.

Les systèmes IDE UDMA :

Ces systèmes disques, souvent critiqués, sont aujourd’hui mûrs, et hautement compétitifs. Le débit matériel d’un disque est actuellement au maximum d’environ 20Mo/s. Avec la technologie UltraDMA (bus de 32 bits) qui gère des accès disques directement de et vers la mémoire système, libérant le microprocesseur, et des débits de 33Mo/s et 66Mo/s, les systèmes IDE UDMA peuvent réaliser des prouesses dans le cas de stations ludiques ou de travail. Les cartes mères contiennent deux contrôleurs UDMA pouvant piloter deux unités physiques chacun (disques durs, lecteurs/graveurs de CD/DVD, lecteurs ZIP/LS100, …). Dans le cas de deux disques durs, mieux vaut les répartir sur les deux contrôleurs. Enfin, il faut penser à installer les pilotes Bus Master prenant le contrôle du Bus PCI pour améliorer les transfers. Le microprocesseur reste tout de même assez sollicité.

Les systèmes SCSI :

Ces systèmes ont beaucoup évolués, et les disques proposés par les constructeurs ont généralement de meilleures caractéristiques que ceux proposés en IDE UDMA (débit, taille du cache, temps d’accès, robustesse et durée de vie, …). Le SCSI est généralement réservé aux stations haut de gamme et serveurs.

Les contrôleurs supportent aujourd’hui des débits très élevés par canal, et deux ou trois canaux :

Ancien standards :

Fast (bus 8 bits 10 MHz) -> 10Mo/s, chaîne de 3m max

Ultra (bus 8 bits 20MHz) et Wide (bus 16 bits 10MHz) -> 20Mo/s, chaîne de 3m max

Ultra Wide (bus 16 bits 20MHz) -> 40Mo/s, chaîne de 3m max

Standards actuels :

Ultra 2 Wide (bus 16 bits 40MHz) -> 80Mo/s, chaîne de 12m max

Ultra 3 Wide (bus 16 bits 80MHz) -> 160Mo/s

Un contrôleur SCSI décharge complètement le microprocesseur des opération concernant les périphériques connectés sur le bus SCSI, et gère des queues de commandes ( généralement 16 ou 256 commandes) propices au multitâche. De plus, il permet des accès multiples à tous les périphériques SCSI de manière à saturer le bus SCSI. Un contrôleur SCSI supporte 8 périphériques par canal (moins 1 pour lui-même) et utilise une seule interruption matérielle. Recommandé dans le cas de stations de travail graphiques (augmentation des taux de transfert et libération des ressources microprocesseur, prise en charge de matériels de numérisation…), il est indispensable dans le cas de serveurs multi-disques devant offrir un bon débit, sans consommer trop de ressources système (occupation microprocesseur et mémoire minimisés).

Les systèmes RAID :

S’appuyant sur des contrôleurs SCSI, ils permettent de stocker des informations redondantes afin d’améliorer la tolérance aux pannes matérielles. Mais ils accélèrent aussi les accès disques grâce à une longue queue de commande, un processeur RISC ultra-performant et un cache mémoire (à code de correction d’erreur ECC) généralement évolutif à 128Mo jouant sur les accès en lecture voire en écriture. Il optimise l’utilisation d’unités en parallèle afin de gérer des disques virtuels composés de plusieurs disques réels, d’où la multiplication du débit de lecture/écriture.

USB, Firewire et Fiber Channel

Si la technologie USB1 était relativement lente et gourmande en ressources, la norme USB2 rivalise avec le Firewire et le SCSI pour ce qui est du débit mais est destinée au grand public et vouée donc à un certain succès.

Le Fiber Channel est un réseau local de périphériques de stockage et de connexion de serveurs (SAN : Stockage Area Network). Il permet d’atteindre des débits de 266Mb/s jusqu’à plus de 4Gb/s sur des distances courtes (environ jusqu’à 50m), ou longues (jusqu’à 10 km). Les solutions sont généralement propriétaires et destinées aux serveurs haut de gamme nécessitant l’accès à des unités de stockage importantes à hauts débits, et leur partage, ainsi que l’interconnexion de ces serveurs sans encombrer le réseau Ethernet. La bande passante du réseau de l’entreprise est ainsi préservée, et les données sécurisées, et partagées entre plusieurs serveurs. Ce SAN rassemble donc unités de stockage importantes et/ou très rapides, et serveurs, en préservant le LAN (Local Area Network). De plus, la gestion de ce réseau SAN utilise des protocoles moins lourds que ceux des LAN, et dédiés à l’optimisation des tranferts sur SAN. A long terme, certains prévoient le remplacement des systèmes SCSI et Firewire sur des serveurs par des systèmes Fiber Channel.

Vitesse d’un disque dur

Trop souvent, les utilisateurs croient que les performances d’un disque dur (débit et temps d’accès) se résument à sa vitesse de rotation. En fait, d’autres paramètres importent tout autant : nombre de bits stockés par unité de surface (densité de données), nombre de plateaux et de têtes, qualité de la mécanique, mémoire cache intégrée. Deux disques tournant à la même vitesse peuvent avoir des performances très différentes. De plus, le nombre de MTBF indique la durée de vie moyenne garantie du disque en heures, et la réputation de la marque est à considérer concerant la fiabilité du disque. Enfin, il ne faut pas confondre débit du disque (physique) et débit du cache (lié au bus). Un ordinateur utilisant un seul disque dur ayant un débit physique de 15Mo/s ne verra aucune différence entre les normes SCSI Ultra (ou Wide), UltraWide, Ultra2 et Ultra3. Il faut juste vérifier que le débit du bus (= à celui du cache intégré au disque) soit suffisant pour véhiculer le débit physique. Si le bus doit comporter plusieurs périphériques, il faut s’assurer que sa bande passante soit légèrement supérieure à l’ensemble des périphériques couramment susceptibles d’être utilisés.

Les systèmes RAID : Redundant Array of Independant Disks.

Le RAID 0

Présentation

Les données sont réparties sur 1 à 16 ou 32 disques durs de tous types. L’ensemble de ces espaces sont lus en parallèle par blocs de taille fixe.

Par exemple, avec 4 disques, un accès à un fichier se fait par la lecture d’un bloc fixe de 64ko du premier disque puis du bloc suivant sur le second… jusqu’au 4ième, ensuite on recommence à partir du premier disque. L’idéal est d’avoir un agrégat dans lequel les disques offrent une vitesse de lecture à peu près uniforme.

Ce type d’agrégat n’offre pas de tolérance de panne, la perte d’un disque entraîne la perte de tout l’agrégat ! Mais la rapidité y gagne énormément, car les blocs peuvent être lus en parallèle sur tous les disques (interface SCSI) puis assemblés pour reconstituer les fichiers.

Gestion logicielle

Ce type d’agrégat est géré logiciellement par Windows NT4 (bloc = 64ko) et par Linux.. Nommé agrégat par bandes, il utilise un espace de taille identique sur chaque disque sollicité (2 à 32 disques, le reste des disques est disponible pour la création d’autres partitions…). Cependant, dans le cas d’une gestion logicielle, le plantage du système gérant l’agrégat peut avoir des conséquences graves. D’autre part, l’agrégat se fait à partir de partitions identiques, donc le reste de chaque disque peut être utilisé dans d’autres partitions (ou d’autres agrégats). Windows NT4 ne peut pas démarrer sur un système d’agrégats par bandes logiciel.

Gestion matérielle

Dans le cas ou l’on utilise une carte matérielle RAID, celle-ci permettra au système de démarrer sur ce type d’agrégat. De plus elle gérera tout de manière transparente pour le système d’exploitation (laissant les ressources du PC libres), et accélérera les opérations grâce à un cache mémoire intégré (barrette de mémoire sur la carte SCSI), en lecture voire en écriture (impliquant un risque de perte de données), même s’il n’y a qu’un seul disque. La taille du bloc peut être fixée lors de l’initialisation de l’ensemble de disques. Matériellement, le RAID 0 implique l’utilisation de disques complets, gérés par la carte RAID. Ces disques sont donc généralement sur le même contrôleur SCSI, simple, double ou triple canal, géré par le contrôleur RAID.

Performances et usage

Ce type d’agrégat accélère les opérations disques surtout dans le cas ou les accès se font sur de gros fichiers (qui sont lus d’autant plus vite qu’il y a de disques en jeu). Dans le cas de fichiers d’une taille suffisante, le RAID 0 est intéressant car il multiplie quasiment les vitesses de lecture et d’écriture par le nombre de disques durs. Dans un système matériel, la vitesse est encore accrue grâce à de la mémoire cache embarquée sur la carte RAID, et à un mode de gestion matérielle SCSI et RAID optimisé.

Dans le cas de petits fichiers (ex : un serveur Proxy-cache), il vaut parfois mieux répartir le cache sur tous les disques en les gérant séparément avec la carte RAID qui accélère de toute manière les accès grâce à sa gestion et son cache (chaque disque fait partie d’un système RAID 0 ne comportant que lui même). En effet, dans le cas d’une carte RAID SCSI, elle saura mettre les commandes d’accès disque en queue puis lancer des opérations simultanément sur tous les disques (sans agrégat), et saturer la bande passante du ou des bus SCSI grâce aux caches de chaques disques.

Il n’y a en aucune tolérance de panne, un disque perdu entraîne la perte de tout l’agrégat.

Exemple : Sur un PC possédant un contrôleur Ultra2 SCSI (80Mo/s), on place quatre disques identiques de 2Go offrant chacun un débit physique de 16Mo/s (à ne pas confondre avec le débit du cache disque intégré au disque dur égal au débit du bus SCSI à 80Mo/s). L’agrégat sera perçu par tout système d’exploitation comme un seul disque de 8Go ultra-performant !

La mise en miroir ou en duplex : RAID 1

Présentation

Le RAID 1 est l’incarnation de la tolérance de panne. En effet, il met en parallèle les écritures sur deux disques. Ainsi, si un disque lâche, l’autre continu à tourner. L’idéal est que chaque disque soit sur un contrôleur SCSI, ainsi, si l’un des contrôleurs lâche, le disque sur l’autre contrôleur continu à tourner.

Le mirroring est la mise en miroir de deux disques du même contrôleur. Le duplexing est la mise en miroir de deux disques, avec un contrôleur par disque. Enfin, il faut investir dans deux fois plus d’espace disque que ce dont on a besoin => perte d’espace de 50%.

Gestion logicielle

Windows et Linux peuvent gérer ce type de tolérance de panne logiciellement, à partir de partitions sur des disques différents, et peuvent démarrer dessus. Les performances du RAID 0 logiciel sont très bonnes en lecture, car le système peut aller chercher les données simultanément sur les deux disques. En écriture, les performances sont bonnes tant que le bus SCSI n’est pas saturé, mais il faut écrire deux fois la même chose.

Gestion matérielle

Avec une carte RAID, les deux disques sont utilisés intégralement, et seront de préférence de mêmes tailles et surtout de mêmes performances. Les performances sont très bonnes en lecture comme en écriture (tant que le bus n’est pas saturé) puisque la carte SCSI gère tout de manière transparente. De plus, la carte SCSI apporte sa puissance et sa vitesse d’exécution, ainsi que l’usage de sa mémoire cache propre.

Performances et usage

Enfin, en cas de panne d’un disque, les performances en lectures et écriture ne sont pas altérées tant que l’on ne reconstruit par un nouveau disque en remplacement celui tombé en panne. Ce disque sera largement plus rapidement reconstruit avec un système RAID matériel. Lors de la reconstruction, le système ralentit d’autant plus que la priorité assignée à la reconstruction est grande. Un système RAID logiciel sera très affecté ! Les performances sont doublées en lecture où les données peuvent être lues à partir des deux disques. En écriture, les performances sont très légèrement moindres avec un contrôleur matériel, c’est pire dans le cas logiciel. Mais la tolérance de panne est excellente.

Le RAID 0/1 : striping+mirroring/duplexing.

Le RAID 0/1 combine la réunion de plusieurs disques avec leur mise en miroir. Le système est ultra rapide à la fois en lecture et en écriture. La tolérance de panne est excellente. Plusieurs disques peuvent tomber en panne, tant qu’il en reste un dans chaque paire. Le revers est qu’il faut deux fois plus d’espace disques que d’espace de stockage utilisable, d’ou une perte d’espace de 50%.

Les agrégats par bandes avec parité : RAID 5.

Présentation

Ce système combine le meilleur du RAID 0 avec le meilleur du RAID 1. Les disques participant à l’agrégat (au moins trois) sont complétées par un disque supplémentaire gérant des informations de parité. Donc si l’un des disques lâche, les informations peuvent être reconstruites à l’aide des informations de parité. Plus il y a de disques, moins il y a perte d’espace : par exemple, avec 5 disques, la perte d’espace n’est que de 20%.

Gestion logicielle

Un système RAID 5 logiciel (géré par Windows NT ou Linux) est très performant en lecture car les données viennent simultanément de plusieurs disques (à condition que la bande passante du bus soit suffisante). Les écritures sont un peu moins bonnes car il faut en permanence calculer les informations de parité, et écrire sur un disque supplémentaire, mais elles restent très bonnes car les opérations se font en parallèle sur plusieurs disques. Des partitions en provenances de plusieurs disques, et de tailles identiques peuvent être rassemblées, le reste des disques restant disponible pour d’autres partitions. Windows NT ne peut démarrer à partir d’un système RAID 5 logiciel.

Gestion matérielle

Avec une carte RAID, et grâce à sa gestion et son cache, la lecture est excellente, tout comme l’écriture (cependant ralentie par le calcul des informations de parité), puisque c’est elle qui gère tout.

Performances et usage

Enfin, si un disque lâche, tant qu’on ne le remplace pas, les performances en lecture et écriture restent excellentes avec un système RAID matériel, mais la lecture est ralentie dans un système logiciel qui doit reconstruire les données au fur et à mesure qu’il lit. La reconstruction du disque perdu ralentira le système, en fonction de la priorité appliquée, surtout si le RAID 5 est logiciel ! La perte de deux disques entraîne la perte de l’ensemble des données.

Disques de réserve (spares) et disques HOTSWAP

Spares

Dans un système RAID matériel, il est possible de placer des disques en réserve et de dire quels agrégats de disques peuvent automatiquement ou manuellement aller piocher dedans en cas de panne d’un de leurs membres. Il est possible aussi de dédier des disques de réserve. Lors de la reconstruction qui suit, là encore le système RAID matériel peut affecter une priorité variable à la reconstruction afin de ne pas trop freiner le système.

Hot Swap

De plus, il est possible, dans un système matériel, de débrancher et brancher des disques montés en tiroir au cours du fonctionnement du serveur, sans arrêter les entrées/sorties du bus SCSI à condition que la carte RAID et les disques durs soient prévus pour le Hot Swap ! Cela permet de remplacer un disque défectueux d’un agrégat, en cas de panne, sans arrêter le serveur. Si le Hot Swap n’est pas supporté, il faut arrêter les opérations sur le bus, le temps d’effectuer l’échange.

Bilan : les agrégats piochent immédiatement dans les disques de réserve en cas de panne, et reconstruisent le disque défectueux, avec la priorité assignée. Et l’administrateur peut venir remplacer plus tard physiquement le disque hors-service, le nouveau disque s’intègre alors à la réserve.

Mémoire cache

Enfin, une remarque est à prendre au sérieux sur l’utilisation de la mémoire cache d’une carte RAID. Cette mémoire peut mettre en cache les écritures comme les lectures. Il est cependant souvent recommandé de mettre seulement les lectures en cache afin d’éviter toute perte de donnée résultant de la perte du cache en cas de plantage du système, et d’extinction inopportune. Cela n’est cependant par toujours nécessaire. Il faut le faire dans le cas de l’agrégat d’amorçage, mais cela peut être éviter s’il s’agit de données peu sensibles (un proxy par exemple)..

Telecharger PDF