Entrée-sortie, disques et RAID : périphériques et stockage

Découvre comment un système d’exploitation travaille avec le matériel qui stocke et transfère les données. Suis une requête depuis un appel système jusqu’au périphérique en passant par le pilote, et découvre comment la scrutation, les interruptions et l’accès direct à la mémoire (DMA) répartissent le travail entre le processeur et le périphérique. Calcule les temps d’accès d’un disque dur et compare les politiques d’ordonnancement des requêtes disque, puis découvre comment les SSD à mémoire flash masquent les blocs d’effacement et l’usure derrière une couche de traduction. Détermine la capacité, la vitesse et la tolérance aux pannes des niveaux RAID, et utilise des sommes de contrôle pour détecter et réparer la corruption silencieuse des données.

IntermédiaireUnité 7 sur 9 de la formation Formation : Systèmes d’exploitation : processus, mémoire et fichiers

Ce que tu vas apprendre

  1. Décris ce qu’un périphérique présente au système d’exploitation et comment le noyau utilise la scrutation, les interruptions, l’accès direct à la mémoire (DMA) et les pilotes de périphériques pour transférer des données entre la mémoire et les périphériques.
    • Décris l’interface de périphérique et le protocole élémentaire d’entrée-sortie
      Situe les périphériques sur les bus de l’ordinateur, nomme les registres qu’un périphérique expose et suis le protocole simple que le système d’exploitation utilise pour lui transmettre une commande.
    • Choisis entre scrutation et interruptions
      Explique comment les interruptions permettent au processeur d’effectuer un travail utile pendant qu’un périphérique est occupé, quand la scrutation est préférable et comment la scrutation hybride et le regroupement des interruptions réduisent le surcoût.
    • Transfère des données par accès direct à la mémoire (DMA)
      Explique pourquoi la copie des données par le processeur gaspille du temps lors des transferts volumineux et comment un moteur DMA transfère les données entre la mémoire et un périphérique pendant que le processeur effectue d’autres tâches.
    • Explique les pilotes de périphériques et les couches de la pile de stockage
      Montre comment les pilotes masquent les détails des périphériques derrière des interfaces générales, suis une requête de lecture depuis l’appel système jusqu’au périphérique et son retour, puis compare la mise en file des requêtes avec SATA et NVMe.
  2. Décris comment un disque dur stocke les données et y accède, calcule la durée et le débit d’une entrée-sortie, et compare les politiques d’ordonnancement qui réduisent les temps de recherche et de rotation.
    • Décris la structure d’un disque dur et son mode d’adressage
      Relie l’interface d’adressage par secteurs du disque à ses plateaux, pistes, têtes et à son cache, et explique ce que le disque garantit ou non.
    • Calcule la durée et le débit d’une entrée-sortie disque
      Décompose une entrée-sortie en recherche, rotation et transfert, calcule chaque durée à partir des caractéristiques du disque et explique pourquoi les performances diffèrent autant entre charges aléatoires et séquentielles.
    • Compare les politiques d’ordonnancement des requêtes disque
      Ordonne les requêtes disque en attente avec FCFS, SSTF, SCAN, C-SCAN, LOOK et SPTF, calcule le déplacement de la tête pour chaque politique et explique où l’ordonnancement a lieu dans un système moderne.
  3. Décris les cellules, pages et blocs d’effacement de la mémoire flash, explique comment la couche de traduction flash masque leurs limites et compare les performances, l’endurance et le coût des SSD à ceux des disques durs.
    • Décris la mémoire flash : cellules, pages, blocs et usure
      Explique comment la mémoire flash NAND stocke les bits, comment elle est organisée en pages et blocs d’effacement, quelles opérations elle prend en charge et pourquoi elle s’use.
    • Explique la couche de traduction flash
      Décris comment le micrologiciel d’un SSD associe les blocs logiques aux pages de mémoire flash, écrit à la manière d’un journal, récupère l’espace et répartit l’usure, puis calcule l’amplification des écritures et la taille de la table de correspondance.
    • Compare les SSD aux disques durs
      Compare la latence, le débit, l’endurance, les comportements en cas de panne et le coût des SSD et des disques durs, et explique ce qui change pour le système d’exploitation.
  4. Explique comment une grappe de disques redondante répartit les blocs par entrelacement des données, mise en miroir et parité, calcule la capacité et le débit de chaque niveau RAID, et choisis un niveau adapté à une charge de travail et à ses risques de panne.
    • Explique ce qu’apporte une grappe RAID et comment l’évaluer
      Décris une grappe RAID comme un disque logique construit à partir de plusieurs disques, le modèle de panne et les critères utilisés pour comparer les niveaux RAID, ainsi que les problèmes que toute conception à plusieurs disques doit traiter.
    • Répartis les blocs par entrelacement des données et mise en miroir
      Calcule où se trouve un bloc logique dans RAID-0 et RAID-10, explique l’effet de la taille de bande et détermine la capacité, la fiabilité et les performances de l’entrelacement des données et de la mise en miroir.
    • Protège les données par parité avec RAID-4, RAID-5 et RAID-6
      Calcule la parité XOR, reconstruis un bloc perdu à partir de celle-ci, mets à jour la parité lors d’une petite écriture et explique le problème des petites écritures ainsi que la manière dont RAID-5 et RAID-6 le traitent.
    • Choisis un niveau RAID et prévois les pannes et les reconstructions
      Associe les niveaux RAID aux charges de travail, estime le temps de reconstruction et le risque de secteurs illisibles pendant celle-ci, puis justifie un choix entre mise en miroir et parité.
  5. Reconnais les défaillances partielles et silencieuses des périphériques de stockage, calcule et compare des sommes de contrôle, et conçois un système de stockage qui détecte la corruption, les écritures mal dirigées et les écritures perdues et les répare à partir de copies redondantes.
    • Reconnais les défaillances du stockage autres que la panne complète d’un disque
      Décris les erreurs de secteur latentes, la corruption silencieuse, les écritures mal dirigées et les écritures perdues, leur fréquence et les raisons pour lesquelles la redondance seule ne les détecte pas.
    • Calcule et compare des sommes de contrôle
      Calcule des sommes de contrôle XOR, additives et de Fletcher, décris le CRC et compare les fonctions de somme de contrôle selon les erreurs qu’elles détectent et leur coût.
    • Intègre des contrôles d’intégrité à un système de stockage
      Décide où stocker les sommes de contrôle, suis le parcours d’une lecture qui détecte et répare une corruption, détecte les écritures mal dirigées et perdues, et planifie la vérification périodique d’intégrité et ses coûts.

Entrée-sortie, disques et RAID : cours

5 chapitres

1

Suis une requête d’entrée-sortie du logiciel au matériel

Un programme peut demander un bloc de données sans savoir quel contrôleur le récupérera. Le noyau transforme cette requête en accès aux registres, transferts de données et traitement de la fin de l’opération. Suis ces tâches séparément : comment une commande atteint le périphérique, comment le processeur attend et qui transfère les octets. Réunis-les ensuite dans une pile de stockage qui permet à de nombreux programmes et cœurs de processeur de partager les périphériques.

1.1 Transmets une commande à un périphérique

Un périphérique d’entrée-sortie transfère des données vers ou depuis un ordinateur, ou les conserve de manière persistante. Un clavier fournit des entrées ; une carte réseau envoie et reçoit des paquets ; un disque conserve les données après la coupure de l’alimentation. Les périphériques sont reliés par des bus, ou interconnexions. PCI Express (PCIe) relie les périphériques performants comme les SSD NVMe. SATA et USB desservent d’autres périphériques de stockage et périphériques situés plus loin dans la hiérarchie. Les interconnexions rapides coûtent plus cher à construire et ont des contraintes physiques plus strictes : un ordinateur en combine donc plusieurs types.

L’interface est ce que voit le logiciel

Un contrôleur peut contenir des processeurs, de la mémoire et un micrologiciel, le logiciel exécuté à l’intérieur du périphérique. Le système d’exploitation le contrôle par une interface matérielle exposée. Deux contrôleurs peuvent avoir des structures internes très différentes tout en prenant en charge les mêmes commandes.

Un périphérique simple possède trois registres :

RegistreCe que le noyau apprend ou fournit
ÉtatSi le périphérique est prêt, occupé, a terminé ou signale une erreur
CommandeL’opération à lancer
DonnéesLes octets envoyés ou reçus

Pour une opération de sortie simple, le noyau vérifie d’abord l’état jusqu’à ce que le périphérique soit prêt. Il écrit ensuite les données, écrit la commande et vérifie l’état jusqu’à la fin de l’opération. Enfin, il vérifie si une erreur s’est produite. Écrire la commande avant de fournir ses données pourrait lancer une opération avec un contenu erroné. La vérification répétée de l’état est la scrutation ; lorsque le processeur transfère les données utiles, il s’agit d’entrées-sorties programmées (PIO).

Accéder aux registres en toute sécurité

Les entrées-sorties par ports donnent aux registres un espace d’adressage distinct. Sur x86, des instructions comme in et out accèdent à ces ports. Le noyau contrôle le code autorisé à les exécuter. Les entrées-sorties mappées en mémoire (MMIO) placent les registres dans l’espace d’adressage physique : les instructions de lecture et d’écriture peuvent ainsi y accéder au moyen de projections contrôlées par les tables des pages du noyau. Les périphériques PCIe utilisent normalement MMIO.

Une adresse MMIO désigne une opération sur un périphérique, même si son accès ressemble à un accès mémoire. Une lecture peut effacer un indicateur. Une écriture peut lancer un transfert. L’état peut changer parce que le périphérique termine son travail, sans que le processeur écrive à cette adresse. Le comportement ordinaire du cache pourrait masquer ces changements ou combiner des accès dont le périphérique a besoin séparément.

Les pilotes Linux utilisent donc des fonctions d’accès comme readl() et writel(), des attributs de projection adaptés et les barrières mémoire nécessaires. Un pointeur volatile peut empêcher le compilateur de supprimer ou de fusionner des accès, mais ne garantit pas entièrement leur ordre par rapport à la mémoire ordinaire ou face au réordonnancement du processeur. Par exemple, un descripteur de commande en RAM doit être visible par le périphérique avant qu’un registre de notification lui demande de le récupérer.

Garder le contrôle des périphériques dans le noyau

Une application appelle normalement read() ou write(). Le noyau vérifie les permissions et exécute le protocole du périphérique pour son compte. Cela empêche un programme d’émettre des commandes qui perturbent la requête d’un autre programme. Un tampon utilisateur est la zone de données de l’application ; un registre de commande est le point de contrôle du contrôleur. Ils jouent des rôles différents, même si tous deux ont des adresses.

Points clés

  • L’interface du périphérique masque la structure interne et le micrologiciel du contrôleur.
  • Fournis les données avant de lancer le protocole de commande simple ; vérifie ensuite la fin de l’opération et les erreurs.
  • La scrutation vérifie si le périphérique est prêt ; les PIO transfèrent les données avec le processeur.
  • Les accès aux registres MMIO peuvent avoir des effets de bord et nécessitent les fonctions d’accès et les garanties d’ordre de la plateforme.
  • Les appels système permettent au noyau de gérer les accès partagés aux périphériques.

1.2 Choisis comment le processeur attend

Un périphérique peut mettre bien plus de temps à terminer une requête que le processeur à l’émettre. La stratégie d’attente détermine si le processeur passe cet intervalle à vérifier le périphérique ou à exécuter d’autres tâches. Elle ne change pas la vitesse à laquelle le périphérique lui-même termine la requête.

Scruter ou se mettre en sommeil

Avec la scrutation, le processeur lit l’état à plusieurs reprises. La fin de l’opération peut être remarquée rapidement, mais les vérifications effectuées alors que le périphérique est encore occupé consomment du temps processeur. Avec les interruptions, un processus qui attend une lecture devient bloqué et un autre processus prêt peut s’exécuter. Lorsque le périphérique termine, il le signale au processeur. Le gestionnaire d’interruption du noyau vérifie la fin de l’opération, traite le résultat et remet le processus en attente à l’état prêt. L’ordonnanceur décide quand ce processus s’exécute de nouveau.

Supposons que le processus A lance une lecture sur disque qui prend 10 ms. La scrutation occupe le processeur pendant cette attente. Avec des entrées-sorties pilotées par interruption, le processus B peut effectuer des calculs pendant les mêmes 10 ms. L’opération du périphérique pour A dure toujours 10 ms ; des calculs utiles recouvrent l’attente.

Les interruptions demandent aussi du travail : le processeur sauvegarde l’état, exécute le gestionnaire, restaure l’état et peut changer de processus et remplir de nouveau les caches. Le coût est généralement de quelques microsecondes. Si un périphérique répond en 2 µs, une brève boucle de scrutation peut coûter moins cher que le blocage et le réveil du processus. Les interruptions conviennent aux opérations lentes ; une courte scrutation convient aux opérations très rapides.

S’adapter à la vitesse de fin des opérations et à la charge

Une stratégie hybride, ou à deux phases, effectue une brève scrutation, puis se met en sommeil en attendant une interruption si la requête n’est pas terminée. Les opérations rapides évitent un coût de réveil, tandis que les opérations lentes n’occupent pas le processeur pendant toute leur durée. Linux prend en charge la scrutation de la fin des opérations pour certaines requêtes de stockage rapides.

Un trafic d’interruptions important crée un autre problème. Si presque chaque cycle du processeur sert à traiter de nouveaux événements, le code qui consomme leurs données dispose de peu de temps pour s’exécuter. C’est le verrouillage actif : la machine est occupée, mais la progression utile s’effondre. Le mécanisme réseau NAPI de Linux limite le travail lié aux interruptions et passe à une scrutation par lots sous charge.

Le regroupement des interruptions rassemble plusieurs fins d’opération en une notification. Avec 100 000 fins d’opération par seconde et 5 µs de travail processeur par interruption, des notifications séparées coûtent :

100 000×5 μs=0,5 s

Cela représente la moitié du temps d’un cœur de processeur chaque seconde. Regrouper huit fins d’opération par interruption donne 12 500 interruptions et 62,5 ms de travail processeur par seconde, soit 6,25 % d’un cœur. Une requête peut attendre brièvement son lot : la réduction du surcoût s’accompagne donc d’une latence de notification supplémentaire.

Envoyer les notifications au bon cœur

Les périphériques PCIe utilisent couramment MSI ou MSI-X, des interruptions transmises sous forme de messages à une adresse spéciale. Plusieurs vecteurs d’interruption permettent à un périphérique de diriger les fins d’opération de différentes files vers différents cœurs. Un contrôleur NVMe peut associer les files de chaque cœur à des vecteurs d’interruption adaptés, afin de rapprocher le travail de soumission et celui de traitement des fins d’opération. Des vecteurs plus nombreux organisent le travail du processeur ; ils ne raccourcissent ni une lecture flash ni une rotation de disque.

Points clés

  • Les interruptions permettent aux calculs de recouvrir le temps du périphérique ; un processus dont l’opération est terminée passe à l’état prêt avant de s’exécuter.
  • Compare le temps de scrutation au surcoût de l’interruption et du réveil pour les périphériques rapides.
  • L’attente hybride effectue une brève scrutation, puis bloque le processus si nécessaire.
  • Le verrouillage actif consomme du temps processeur sans progression utile.
  • Le regroupement réduit le surcoût des notifications en acceptant une latence supplémentaire.
  • MSI-X prend en charge des vecteurs d’interruption distincts pour les files du périphérique.

1.3 Confie le transfert des données au DMA

L’attente et la copie sont deux tâches distinctes. Les interruptions peuvent éviter au processeur d’attendre activement pendant qu’un périphérique travaille, mais le processeur resterait occupé s’il devait transférer chaque mot par un registre de données. L’accès direct à la mémoire (DMA) confie ce transfert à un moteur matériel, généralement situé dans le contrôleur du périphérique.

Mesurer le travail que les PIO laissent au processeur

Imagine un registre de données de 4 octets qui prend 100 ns par accès. Le transfert d’un bloc de 4 Kio nécessite :

4096/4=1024 acceˋs 1024×100 ns=102,4 μs

Ces opérations sur le registre occupent le processeur. Des tampons plus grands nécessitent proportionnellement plus d’accès. Le DMA supprime cette copie mot par mot par le registre ; le processeur prépare toujours la requête et traite sa fin.

Suivre une lecture par DMA
  1. Le pilote prépare un tampon de destination et le rend accessible au périphérique.
  2. Il fournit l’adresse ou les adresses DMA, le nombre d’octets, le sens et la commande de lecture.
  3. Le périphérique lit les blocs de stockage demandés et écrit les octets en mémoire.
  4. Le processeur exécute d’autres tâches pendant que le périphérique transfère les données.
  5. La fin de l’opération est signalée, généralement par une interruption. Le gestionnaire vérifie l’état et réveille le processus en attente.

Le moteur DMA agit comme maître de bus et lance les transferts mémoire. Les coûts de préparation dépendent de la projection, de la plateforme et du nombre de zones mémoire. Le DMA consomme aussi de la bande passante mémoire partagée avec le processeur. Il libère des instructions du processeur, pas toutes les ressources.

Décrire une mémoire dispersée

Un tampon peut être contigu dans l’espace d’adressage virtuel d’un processus tout en occupant des pages physiques distinctes. Une liste de dispersion-rassemblement décrit ces zones par des couples d’adresses et de longueurs. Un périphérique peut effectuer une requête sur plusieurs zones sans que le processeur les copie d’abord dans un seul tampon physiquement contigu.

Par exemple, un tampon de trois pages peut reposer sur trois pages non adjacentes. Le pilote crée des descripteurs pour les zones visibles par le périphérique et maintient stables les pages sous-jacentes jusqu’à la fin de l’opération. L’épinglage empêche ces pages d’être retirées ou réutilisées tant que le matériel peut encore y accéder. Les désépingler trop tôt risque de laisser une écriture DMA ultérieure écraser les données d’un autre utilisateur.

Utiliser l’espace d’adressage du périphérique

Un périphérique n’utilise normalement pas le pointeur virtuel d’une application. L’API DMA du noyau fournit des adresses de bus, qui peuvent différer des adresses physiques du processeur. Une IOMMU traduit les adresses des périphériques vers la mémoire physique et restreint la mémoire à laquelle un périphérique peut accéder. Cette isolation aide aussi un hyperviseur à attribuer un périphérique à une machine virtuelle.

Les caches du processeur ajoutent une étape de coordination. Avant un transfert DMA sortant, le périphérique doit voir les derniers octets écrits par le processeur ; après un transfert entrant, le processeur doit voir les mises à jour du périphérique. Certains matériels maintiennent automatiquement la cohérence. D’autres plateformes nécessitent une synchronisation des caches par l’API DMA. La projection des adresses, la durée de vie des pages et la visibilité dans les caches résolvent chacune une partie différente du problème de sécurité du transfert.

Points clés

  • Le DMA délègue la copie des données utiles ; les interruptions évitent l’attente active.
  • Le processeur prépare toujours le DMA et traite la fin de l’opération.
  • Les listes de dispersion-rassemblement décrivent les transferts sur des zones mémoire distinctes.
  • Les pages épinglées doivent rester stables jusqu’à la fin du transfert DMA.
  • L’API DMA fournit des adresses visibles par le périphérique ; une IOMMU les traduit et en restreint l’accès.
  • La cohérence des caches ou une synchronisation explicite rend visibles les mises à jour du processeur et du périphérique.

1.4 Suis une lecture dans la pile de stockage

Un pilote de périphérique traduit une requête générale en commandes du contrôleur, en accès aux registres et en traitement de la fin de l’opération. Un système de fichiers peut ainsi demander un bloc sans savoir si le matériel utilise SATA, NVMe ou USB. Le pilote connaît le protocole et les particularités du contrôleur.

Attribuer une tâche à chaque couche

Sous Linux, une lecture sur un périphérique de stockage passe généralement par cette chaîne :

Application → appel système → système de fichiers → couche bloc générique → pilote → contrôleur → périphérique de stockage.

Le système de fichiers associe une position dans un fichier à des blocs de stockage. La couche bloc met les requêtes en file, fusionne celles qui sont adjacentes et peut ordonnancer leur exécution. Le pilote soumet les opérations qui en résultent. L’accès brut à un périphérique en mode bloc peut contourner le système de fichiers tout en utilisant les couches inférieures.

L’interface standard permet d’utiliser un nouveau matériel sans réécrire chaque application. Elle masque aussi certaines fonctions particulières. Des interfaces comme ioctl() ou celles qui transmettent directement des commandes permettent aux logiciels de demander des opérations de contrôle qui ne correspondent pas à une lecture ou une écriture de bloc ordinaire.

Distinguer les classes de périphériques
ClasseInterface et exemples courants
Périphérique en mode blocBlocs adressables ; disques durs et SSD
Périphérique en mode caractèreFlux d’octets ; terminaux et ports série
Interface réseauCommunication par paquets au moyen de sockets

Linux expose les périphériques en mode bloc et en mode caractère sous forme de fichiers spéciaux, comme /dev/sda et /dev/nvme0n1. Les pilotes s’exécutent généralement en mode noyau : un bogue dans un pilote peut donc faire planter le noyau ou corrompre la mémoire. L’isolation des pilotes limite cette portée dans les systèmes qui la prennent en charge. Les pilotes Linux représentent une grande partie de son code source ; des études ont aussi montré que le code des pilotes est particulièrement sujet aux erreurs.

Mettre le travail en file entre les cœurs

La couche bloc blk-mq de Linux utilise des files logicielles par processeur et des files de répartition matérielles. Un ordonnanceur d’entrées-sorties comme mq-deadline, bfq ou kyber peut réordonner le travail ou gérer l’équité ; none évite une politique d’ordonnancement supplémentaire. Les disques durs profitent d’une réduction des déplacements de la tête. Les périphériques NVMe rapides utilisent souvent none, puisqu’ils n’ont pas de tête à repositionner. L’ordonnanceur sélectionné apparaît entre crochets dans /sys/block/<device>/queue/scheduler.

SATA avec AHCI/NCQ prend en charge une file contenant jusqu’à 32 commandes en attente par périphérique. NVMe prend en charge de nombreuses files de soumission et de complétion en mémoire : jusqu’à 65 535 files d’entrées-sorties, avec jusqu’à environ 64 000 commandes par file. Les limites des contrôleurs réels sont plus basses. Les paires de files par cœur réduisent la contention sur les chemins de soumission partagés.

Suivre une lecture NVMe

Un processus appelle read(fd, buf, 4096). En cas d’échec de cache, le système de fichiers trouve le bloc disque et la couche bloc construit une requête. Le pilote NVMe écrit un descripteur dans une file de soumission, puis écrit dans son registre de notification MMIO. Le contrôleur récupère la commande, transfère les données en mémoire par DMA et dépose une entrée de complétion. Une interruption MSI-X amène le noyau à terminer la requête. Lors d’une lecture avec mise en tampon, les données atteignent le tampon de l’application par le cache de pages, et read() renvoie 4096. Un succès de cache peut satisfaire la lecture avant qu’une entrée-sortie sur le périphérique soit nécessaire.

Points clés

  • Les pilotes adaptent une interface standard du noyau aux protocoles propres aux périphériques.
  • La couche bloc met en file, fusionne et ordonnance les requêtes portant sur des blocs adressés.
  • AHCI/NCQ possède une file peu profonde par périphérique ; NVMe prend en charge de nombreuses files en mémoire.
  • Un registre de notification annonce le travail en file ; le DMA transfère les données utiles ; le traitement de la fin de l’opération termine la requête.
2

Calcule les coûts des accès disque et choisis un ordre de traitement des requêtes

Un disque dur présente des secteurs numérotés, mais servir une requête peut nécessiter un déplacement du bras et une attente de rotation avant le transfert du moindre octet. Relie ces étapes physiques à la latence, aux IOPS et au débit. Compare ensuite les ordres de traitement selon le déplacement et l’attente : un court trajet peut améliorer le débit tout en laissant attendre une requête éloignée. Les caches et le micrologiciel du disque influent aussi sur ce que le système d’exploitation observe.

2.1 Relie les adresses des secteurs au matériel du disque

Un disque dur expose un tableau de secteurs numérotés à partir de zéro. Ces numéros sont des adresses de bloc logique (LBA). Un secteur faisait traditionnellement 512 octets ; de nombreux disques utilisent désormais des secteurs physiques de 4 096 octets. Un disque 512e accepte des secteurs logiques de 512 octets sur ce format physique plus grand. Un bloc de 4 Kio d’un système de fichiers peut donc couvrir plusieurs secteurs logiques.

Représenter les pièces mobiles

Des plateaux magnétiques tournent sur un axe. Chaque surface comporte des pistes concentriques divisées en secteurs et une tête de lecture-écriture montée sur un bras mobile. Les têtes se déplacent ensemble. Les pistes situées à la même position du bras sur les différentes surfaces forment un cylindre. Les vitesses de rotation courantes comprennent 5 400 et 7 200 tr/min, ainsi que 10 000 et 15 000 tr/min dans les familles de disques plus rapides.

Les LBA proches sont généralement placées à proximité, ce qui aide les lectures séquentielles à éviter les recherches répétées. Un secteur réaffecté à un secteur de réserve peut rompre cette relation. Les logiciels voient donc un espace d’adressage linéaire utile sans connaître le placement physique exact.

Les pistes extérieures offrent plus de place pour les secteurs. L’enregistrement par zones place davantage de secteurs sur ces pistes, si bien que plus d’octets passent sous la tête à chaque tour. Le débit séquentiel peut diminuer à mesure qu’une lecture se rapproche du centre. Le décalage de piste décale les positions des secteurs entre pistes voisines : après le changement de piste de la tête, le secteur séquentiel suivant arrive au bon moment au lieu de venir de passer.

Distinguer fin d’opération et durabilité

Un cache de disque peut conserver des données lues récemment et accepter des écritures. Ces tampons vont de quelques mégaoctets à des centaines de mégaoctets ; le cache de lecture peut conserver le reste d’une piste déjà passée sous la tête. Avec un cache à écriture différée, une écriture peut être terminée alors que ses données restent dans un cache volatil. L’écriture immédiate attend que les données soient sur le support. Un vidage du cache demande que les écritures en cache atteignent un stockage durable ; Force Unit Access (FUA) demande une fin d’écriture durable pour l’écriture concernée.

L’atomicité en cas de coupure de courant est une autre propriété. Une unité d’écriture atomique est entièrement modifiée ou reste inchangée en cas de coupure de courant. La taille du secteur ne fournit pas à elle seule une telle promesse : le périphérique doit documenter sa garantie. Une écriture qui couvre plusieurs unités atomiques peut laisser une écriture déchirée, avec certaines unités nouvelles et d’autres anciennes. Les vidages concernent la durabilité ; les unités atomiques concernent les mises à jour partielles.

Lire correctement les indications de capacité

Les capacités des disques utilisent les préfixes SI décimaux. Les unités binaires utilisent des puissances de deux :

1 To=1012 octets,1 Tio=240 octets

Un disque de 4 To contient donc :

4×1012/240≈3,64 Tio

Les deux indications décrivent le même nombre d’octets. Un outil qui affiche environ 3,64 en le notant « TB » a utilisé un calcul binaire avec une notation qui paraît décimale ; la conversion n’a supprimé aucun espace.

Reconnaître une contrainte d’écriture supplémentaire

L’enregistrement magnétique en bardeaux (SMR) fait se chevaucher les pistes adjacentes pour stocker davantage de données. Réécrire une piste peut perturber sa voisine, ce qui rend les petites mises à jour aléatoires coûteuses. Les grandes écritures séquentielles dans des zones adaptées fonctionnent mieux. Il s’agit d’un disque magnétique soumis à une contrainte de gestion des écritures, même si les lectures ordinaires utilisent toujours les mêmes têtes et plateaux en rotation.

Points clés

  • Les LBA identifient les secteurs logiques ; les tailles des secteurs logiques et physiques peuvent différer.
  • Les têtes se déplacent entre les pistes pendant que les plateaux tournent sous elles.
  • L’enregistrement par zones et le décalage de piste favorisent un accès séquentiel efficace.
  • Avec l’écriture différée, la fin de l’écriture peut précéder sa durabilité ; le vidage et FUA demandent la persistance.
  • L’atomicité en cas de coupure de courant découle de la garantie documentée du périphérique.
  • Le To décimal et le Tio binaire expriment les mêmes octets dans des unités différentes.
  • Le SMR améliore la densité, mais rend les petites réécritures aléatoires plus coûteuses.

2.2 Calcule la latence, les IOPS et le débit

Une requête disque prend du temps pour atteindre les données avant de les transférer. Pour une requête simple sans attente en file ni succès de cache, décompose le temps de service en trois parties :

TI/O=Tseek+Trotation+Ttransfer

Le temps de recherche correspond au déplacement et à la stabilisation du bras sur la piste. La latence de rotation correspond à l’attente du passage du secteur sous la tête. Le temps de transfert couvre le passage des octets sous celle-ci. Une éventuelle mise en file ajoute une attente avant le début du service.

Convertir la vitesse de rotation en durée d’attente

Un tour prend 60 000 ms divisées par la vitesse en tr/min. À 7 200 tr/min :

Trev=60 000/7200≈8,33 ms

Pour une position aléatoire du secteur, l’attente moyenne est d’un demi-tour, soit environ 4,17 ms. À 15 000 tr/min, un tour prend 4 ms et l’attente moyenne est de 2 ms. Une vitesse de rotation plus élevée réduit la latence de rotation ; elle ne réduit pas directement le temps de recherche du bras.

Les fiches techniques indiquent un temps de recherche moyen. Pour des requêtes uniformément réparties, la distance de recherche moyenne est d’environ un tiers de la course complète, mais le temps de recherche n’est pas proportionnel à la distance. L’accélération et la stabilisation dominent les recherches courtes ; les recherches longues comprennent davantage de déplacement à pleine vitesse.

Calculer une petite lecture aléatoire

Utilise un disque à 7 200 tr/min avec un temps de recherche moyen de 8 ms et un débit de transfert de 200 Mo/s. Une requête de 4 Kio contient 4 096 octets. Calcule d’abord le transfert en secondes :

Ttransfer=4096/(200×106) s≈0,0205 ms

Additionne ensuite le positionnement et le transfert :

TI/O≈8+4,17+0,0205=12,19 ms

Avec une seule requête en attente à la fois, on obtient environ :

IOPS=1/0,01219≈82

Le débit effectif est d’environ 4 096 octets multipliés par 82 par seconde, soit 0,34 Mo/s. Un débit de transfert annoncé de 200 Mo/s décrit le transfert de données une fois la tête positionnée ; il ne peut pas supprimer les quelque 12 ms de positionnement nécessaires à chaque petite requête aléatoire.

Calculer une longue lecture séquentielle

Lis maintenant 100 Mo avec une seule recherche initiale et une seule attente de rotation. Le temps de transfert est de 100/200 s, soit 500 ms. Le temps total est d’environ 512,17 ms, ce qui donne :

RI/O=100 Mo/0,51217 s≈195 Mo/s

Le débit effectif est environ 580 fois supérieur à celui de la petite lecture aléatoire. Un seul coût de positionnement est réparti sur bien plus d’octets. Les grands transferts séquentiels sont dominés par le temps de transfert ; les petites requêtes aléatoires sont dominées par le positionnement.

Utilise les octets de manière cohérente lorsque tu combines des Kio et des Mo/s, et convertis les millisecondes en secondes avant de diviser les octets par le temps. Les IOPS conviennent aux petites opérations aléatoires ; les Mo/s conviennent aux flux séquentiels. La lecture anticipée, le placement rapproché et le regroupement de petites écritures en lots séquentiels améliorent les performances en modifiant la fréquence à laquelle le coût du positionnement est payé.

Points clés

  • Additionne le temps de recherche, la latence de rotation et le temps de transfert pour modéliser le temps de service du disque.
  • La latence de rotation moyenne pour une position aléatoire est la moitié de 60 000 divisé par la vitesse en tr/min, en millisecondes.
  • Utilise des octets et des unités de temps cohérentes pour calculer un débit effectif.
  • Les petites requêtes aléatoires paient le positionnement à répétition ; les grandes requêtes séquentielles répartissent ce coût.
  • Les IOPS comptent les opérations par seconde ; le débit compte les octets par seconde.

2.3 Compare les parcours d’ordonnancement et les attentes

Un ordonnanceur de requêtes disque choisit la prochaine requête en attente à servir. La position lui fournit des informations utiles sur le coût du service. Réduire le déplacement du bras aide, mais une politique doit aussi tenir compte du temps d’attente de chaque requête.

Comparer les politiques
PolitiqueProchaine requête ou parcoursPrincipal compromis
FCFSOrdre d’arrivéeOrdre équitable, déplacement potentiellement important
SSTFPiste la plus procheFaible coût de recherche, famine possible
SCANServir pendant un balayage jusqu’au bord, puis inverser le sensAttente bornée par les balayages
C-SCANServir dans un sens, revenir sans servirAttentes plus uniformes selon la position
LOOKInverser le sens à la dernière requête en attenteÉvite un déplacement inutile jusqu’au bord
C-LOOKServir dans un sens, revenir entre les requêtes en attente extrêmesService circulaire sans déplacement inutile jusqu’au bord

SSTF peut choisir à répétition de nouvelles requêtes proches pendant qu’une requête éloignée attend. Un système d’exploitation qui ne connaît pas la géométrie exacte l’approche souvent par la distance entre LBA : c’est la politique du bloc le plus proche d’abord. L’équité des politiques de type SCAN suppose que le système puisse continuer à servir les requêtes pendant ses balayages ; un périphérique surchargé ne peut toujours pas garantir un temps de réponse fixe à chaque arrivée.

Additionner les déplacements étape par étape

Prends les pistes 0–199, une tête à 50 se dirigeant vers les numéros supérieurs et les requêtes arrivées dans l’ordre 82, 170, 43, 140, 24, 16, 190. Arrête le calcul lorsque toutes les requêtes sont terminées.

FCFS suit la liste. Son déplacement est de 32 + 88 + 127 + 97 + 116 + 8 + 174 = 642 pistes. SSTF passe par 43, 24, 16, 82, 140, 170, 190, soit 208 pistes au total.

SCAN passe par les requêtes de numéro supérieur, continue jusqu’à 199, puis inverse le sens jusqu’à 16. Sa distance est de 149 + 183 = 332. LOOK fait demi-tour à 190, soit 140 + 174 = 314. C-LOOK va de 50 à 190, revient à 16 et termine à 43 : 140 + 174 + 27 = 341 pistes. Le retour est un déplacement réel, même si aucune requête n’est servie pendant celui-ci. C-SCAN irait jusqu’à 199, reviendrait à 0 sans servir, puis servirait les requêtes en remontant jusqu’à 43.

Le meilleur total pour cette file finie ne détermine pas la meilleure politique pour un flux de requêtes futures. Le faible déplacement de SSTF s’accompagne ici d’un risque de famine si la charge continue.

Tenir compte de la rotation et du micrologiciel

La politique plus court temps de positionnement d’abord (SPTF) minimise la somme du temps de recherche et de la latence de rotation. Une piste plus éloignée peut être préférable si son secteur arrive plus tôt. Des choix précis nécessitent la géométrie et la position de rotation : le micrologiciel du disque est donc mieux placé que le système d’exploitation pour les effectuer.

Le système d’exploitation peut fusionner les requêtes portant sur des blocs adjacents, puis soumettre plusieurs commandes par NCQ. Le micrologiciel réordonne ce lot à l’aide d’informations internes. L’ordonnancement anticipatif peut laisser brièvement le disque inactif pour attendre une probable requête ultérieure proche. L’ordonnancement à échéance limite les reports ; mq-deadline sous Linux suit les expirations et favorise les lectures. L’ordonnancement des SSD se concentre sur l’équité et la latence, car il n’y a ni recherche mécanique ni rotation à éviter.

Points clés

  • FCFS conserve l’ordre d’arrivée ; SSTF réduit les déplacements au prix d’un risque de famine.
  • SCAN et LOOK balayent dans les deux sens ; les variantes circulaires servent dans un seul sens.
  • Compte chaque déplacement, y compris un retour circulaire sans service.
  • SPTF tient compte de la position de rotation en plus de la recherche.
  • Le système d’exploitation fusionne et met en file ; le micrologiciel du disque peut réordonner les requêtes à l’aide de la géométrie cachée.
  • Les échéances et l’anticipation poursuivent d’autres objectifs que la minimisation des déplacements.
3

Explique les mises à jour de la mémoire flash et les performances des SSD

La mémoire flash peut lire rapidement une petite page, mais sa réutilisation nécessite l’effacement d’un bloc beaucoup plus grand. Un contrôleur SSD masque ce décalage derrière des adresses logiques. Suis la façon dont il place les nouvelles versions, récupère l’ancien espace et répartit l’usure, puis utilise ces mécanismes pour interpréter l’amplification des écritures, la profondeur de file et les valeurs d’endurance. L’absence de pièces mobiles change les coûts du stockage sans rendre tous les accès aussi peu coûteux.

3.1 Comprends les pages, les blocs d’effacement et l’usure

La mémoire flash NAND stocke les informations sous forme de charges électriques dans des cellules. Le contrôleur distingue les niveaux de charge pour lire les bits. Une cellule contenant plus de bits nécessite davantage de niveaux distincts, ce qui augmente la capacité mais complique la programmation et le contrôle des erreurs.

Compter les niveaux de charge
Type de celluleBits par celluleNiveaux de charge
SLC12
MLC24
TLC38
QLC416

Pour une cellule de b bits, le nombre de niveaux est 2b. Plus de bits par cellule réduisent généralement le coût par gigaoctet, mais la programmation devient plus lente et l’endurance en cycles d’effacement diminue. Ce sont des propriétés de l’organisation des cellules ; le contrôleur et le parallélisme de l’ensemble du SSD influent aussi sur les performances.

Associer chaque opération à son unité

Les puces flash contiennent des blocs d’effacement, chacun contenant de nombreuses pages. Une page fait généralement de 4 à 16 Kio, tandis qu’un bloc d’effacement peut contenir des centaines de pages et occuper de centaines de Kio à plusieurs Mio. Une page de mémoire flash, une page de mémoire virtuelle et un bloc de système de fichiers sont des unités distinctes, même si certaines tailles coïncident parfois.

Une lecture renvoie une page, généralement en quelques dizaines de microsecondes. Une programmation écrit une page effacée et prend des centaines de microsecondes. Un effacement remet tous les bits d’un bloc entier à un et prend des millisecondes. Les pages sont programmées dans l’ordre imposé par la puce, généralement des pages de numéro inférieur vers celles de numéro supérieur. Le contrôleur doit respecter ces règles d’ordre lorsqu’il place les données.

Une page utilisée ne peut pas simplement recevoir une version de remplacement. Son bloc d’effacement doit d’abord être effacé, ce qui détruit le contenu de chaque page de ce bloc. C’est le décalage central : les écritures portent sur des pages, tandis que les effacements portent sur des blocs.

Voir le coût d’une mise à jour sur place

Imagine un bloc contenant les pages A, B, C et D. Pour remplacer A par A′ tout en conservant le même placement physique :

  1. Lis B, C et D dans un espace de stockage temporaire.
  2. Efface le bloc entier, y compris l’ancien A.
  3. Programme A′, B, C et D dans les pages effacées.

Une page de nouvelles informations a entraîné trois lectures, quatre programmations et un effacement. Il est impossible d’effacer seulement A. Un SSD évite de payer ce coût à chaque réécriture demandée par l’hôte en écrivant la nouvelle version ailleurs et en modifiant sa correspondance.

Gérer les dommages et la conservation des données

Chaque cycle de programmation-effacement (P/E) endommage légèrement les cellules. Les plages d’endurance représentatives sont d’environ 50 000 à 100 000 cycles pour les SLC, 1 000 à 3 000 pour les TLC et environ 1 000 ou moins pour les QLC ; les valeurs réelles varient fortement selon la génération de la puce et le fabricant. Les contrôleurs retirent du service les blocs devenus peu fiables.

La charge se dissipe aussi avec le temps, surtout dans les cellules usées. La lecture ou la programmation peut perturber les cellules voisines. De puissants codes correcteurs d’erreurs (ECC) corrigent de nombreuses erreurs de bits qui en résultent, et le contrôleur peut rafraîchir les données dont le nombre d’erreurs augmente. La mémoire flash est un stockage persistant dont les opérations sont asymétriques et l’endurance limitée : la rapidité d’une lecture de page ne dit donc pas grand-chose du coût de réécritures soutenues.

Points clés

  • Une cellule stockant b bits doit distinguer 2ᵇ niveaux de charge.
  • La mémoire flash lit et programme des pages, mais efface des blocs entiers.
  • La programmation exige un espace effacé ; la conservation des pages valides voisines rend les mises à jour sur place coûteuses.
  • Les cycles P/E usent les cellules, tandis que les perturbations et la dissipation des charges provoquent des erreurs.
  • Les ECC, le rafraîchissement et le retrait des blocs aident le contrôleur à gérer ces erreurs.

3.2 Suis les pages logiques dans la FTL

L’hôte lit et réécrit des blocs logiques. La couche de traduction flash (FTL) du SSD associe ces adresses à des pages physiques de mémoire flash et gère les effacements qu’elles masquent. Garder en permanence la page logique N à la page physique N obligerait les réécritures fréquentes à effacer les mêmes blocs à répétition.

Écrire une nouvelle version ailleurs

Une FTL structurée en journal programme les nouvelles données dans une page libre et modifie leur correspondance. Supposons que la LBA 100 corresponde à la page physique 0 et la LBA 101 à la page 1. Une réécriture de la LBA 100 est programmée dans la page 2. La correspondance devient 100 → 2 ; la page 0 devient invalide. L’hôte demande toujours la LBA 100 et obtient la nouvelle version.

Invalide est un état de la correspondance, pas un effacement physique immédiat. Les anciens bits restent présents jusqu’à la récupération de leur bloc d’effacement. La suppression ou la réécriture d’un fichier ne donne donc aucune garantie fiable sur le moment où chaque ancienne copie physique disparaît. Un effacement fiable utilise une opération d’assainissement adaptée du disque ou un système de chiffrement de tout le disque correctement géré avec destruction de la clé.

Récupérer l’espace et compter les écritures supplémentaires

Le ramasse-miettes (GC) choisit un bloc, copie ses pages valides ailleurs, met à jour la table de correspondance et efface l’ancien bloc. Les pages invalides n’ont pas besoin d’être copiées. Un bloc contenant de nombreuses pages invalides fournit plus d’espace libre par page valide copiée.

L’amplification des écritures (WA) mesure ces programmations supplémentaires :

WA=octets programmeˊs dans la meˊmoire flashoctets eˊcrits par l’hoˆte

Dans un bloc de 64 pages contenant 48 pages valides et 16 pages invalides, le ramasse-miettes copie 48 pages. L’effacement du bloc crée 64 pages libres, mais les copies ont consommé 48 pages ailleurs : le gain net est de 16. Remplir cet espace avec 16 pages de l’hôte produit 64 programmations de pages flash pour 16 écritures de pages par l’hôte, donc WA = 4. Une amplification plus élevée consomme plus vite la bande passante et l’endurance en cycles d’effacement.

Le surprovisionnement réserve un espace flash que l’hôte ne peut pas remplir. Davantage d’espace libre donne au ramasse-miettes la possibilité de choisir des blocs moins coûteux à récupérer. TRIM, appelé Deallocate dans NVMe et UNMAP dans SCSI, indique au périphérique les plages logiques qui ne contiennent plus de données nécessaires. Les pages d’un fichier supprimé peuvent alors être traitées comme invalides au lieu d’être copiées par le ramasse-miettes.

Prévoir la mémoire de correspondance et gérer l’usure

Une table de correspondance au niveau des pages nécessite une entrée par page logique. Un périphérique de 1 Tio avec des pages de 4 Kio possède :

240/212=228 entreˊes

À raison de 4 octets par entrée, la table occupe 1 Gio. La correspondance au niveau des blocs réduit la taille de la table, mais rend les petites mises à jour coûteuses. La correspondance hybride combine des tables de blocs et des zones de journal associées page par page ; une autre approche ne met en cache que les entrées actives de la table de pages.

La répartition de l’usure distribue les effacements entre les blocs. Les nouvelles écritures changent déjà d’emplacement, mais les blocs contenant des données froides et inchangées pourraient sinon éviter l’usure indéfiniment pendant que les zones chaudes s’usent. Déplacer certaines données froides libère des blocs peu utilisés qui rejoignent l’ensemble des blocs disponibles pour l’écriture. Cette migration peut ajouter des écritures : le contrôleur cherche donc un équilibre entre usure uniforme et coût de copie.

Points clés

  • Une FTL associe les adresses logiques de l’hôte aux pages physiques de mémoire flash.
  • Les mises à jour écrites ailleurs invalident les anciennes pages sans effacer immédiatement leurs bits.
  • Le ramasse-miettes copie les pages valides avant d’effacer un bloc.
  • L’amplification des écritures divise toutes les programmations de la mémoire flash par les écritures de l’hôte.
  • Le surprovisionnement et TRIM réduisent les copies inutiles.
  • Les tables de correspondance au niveau des pages échangent de la mémoire contre une souplesse de mise à jour.
  • La répartition de l’usure fait participer les blocs peu utilisés aux cycles d’effacement.

3.3 Interprète la vitesse et l’endurance des SSD

Un SSD n’a ni bras de disque ni plateau en rotation. Il évite les délais de positionnement de plusieurs millisecondes, mais sa vitesse dépend toujours de la taille des requêtes, du parallélisme, des écritures précédentes et du travail que son contrôleur effectue en arrière-plan.

Comparer latence et débit
Charge de travail ou propriétéDisque durSSD à mémoire flash
Latence d’une petite lecture aléatoireMillisecondesDe quelques dizaines à environ une centaine de microsecondes
Nombre de petites lectures aléatoiresEnviron 75 à 200 IOPSNVMe peut atteindre des centaines de milliers d’IOPS avec assez de travail en file
Transfert séquentielJusqu’à quelques centaines de Mo/sEnviron 550 Mo/s pour SATA ; plusieurs Go/s pour NVMe
Principaux coûts internesRecherche, rotation, transfertAccès aux pages, travail du contrôleur, ramasse-miettes, parallélisme

Ces classes de périphériques sont représentatives et ne constituent pas des garanties pour chaque disque. Le débit d’un SSD SATA est limité par la liaison à 6 Gbit/s. NVMe utilise PCIe et peut occuper de nombreux canaux flash à la fois.

Un programme qui lance une petite lecture et attend sa fin avant de lancer la suivante subit la latence de chaque requête. Si la latence est de 80 µs, cette exécution en série permet environ 12 500 opérations par seconde. Un périphérique annoncé avec un nombre d’IOPS bien supérieur nécessite de nombreuses requêtes en cours, fournies par des fils d’exécution ou des entrées-sorties asynchrones. La profondeur de file crée des possibilités de travail en parallèle ; elle peut aussi ajouter de l’attente lorsque le périphérique est saturé.

Tenir compte des écritures précédentes

Les écritures aléatoires et séquentielles restent différentes. Les mises à jour aléatoires peuvent laisser des pages invalides dispersées parmi les pages valides, ce qui augmente les copies du ramasse-miettes. Les charges séquentielles peuvent invalider des zones entières ensemble, ce qui rend leur récupération moins coûteuse et maintient l’amplification des écritures plus près de un. Un SSD vide peut programmer directement dans l’espace libre ; un SSD rempli doit le récupérer. Les performances en régime permanent comprennent ce coût continu du ramasse-miettes, contrairement aux tests réalisés à la sortie de la boîte.

Lire les valeurs d’endurance comme un budget d’écriture

La valeur TBW indique le total de téraoctets écrits par l’hôte. La valeur DWPD exprime le nombre d’écritures complètes du disque par l’hôte par jour sur la période de garantie. Pour un périphérique de 1 To donné pour 600 TBW sur cinq ans :

DWPD=600/(1×5×365)≈0,33

À raison de 50 Go par jour, 600 To d’écritures de l’hôte s’accumuleraient après 12 000 jours, soit environ 33 ans. Ce calcul compare des charges de travail et ne prévoit pas la durée de vie : les pannes de contrôleur, le vieillissement et les limites de garantie comptent toujours. Une forte amplification interne use les cellules plus rapidement, même si la valeur d’endurance compte les écritures de l’hôte.

Adapter le périphérique au travail

Les disques durs offrent un faible coût par téraoctet pour les grands ensembles de données rarement consultés. Les SSD conviennent aux tâches sensibles à la latence. Le stockage hiérarchisé conserve les données chaudes sur des SSD et les données plus froides sur des disques durs. Les deux peuvent tomber en panne : les disques durs subissent des défauts mécaniques et des secteurs défectueux ; les SSD subissent l’usure, des défauts de contrôleur et des bogues de micrologiciel. La redondance et des sauvegardes séparées restent utiles pour les deux.

Sur les SSD, la défragmentation ajoute des écritures pour peu de gain lié aux recherches. TRIM aide le contrôleur à identifier les données inutilisées. Les outils de partitionnement actuels alignent généralement les débuts de partition sur des frontières de 1 Mio, ce qui évite les requêtes de blocs mal alignées.

Points clés

  • Un SSD supprime le positionnement mécanique, mais conserve des coûts liés au contrôleur et à la mémoire flash.
  • Atteindre un nombre élevé d’IOPS annoncé nécessite suffisamment de requêtes indépendantes en cours.
  • Les écritures aléatoires et le ramasse-miettes peuvent réduire les performances d’écriture en régime permanent.
  • TBW compte les écritures de l’hôte ; DWPD répartit ce budget selon la capacité et le nombre de jours de garantie.
  • Choisis les SSD pour un accès rapide et les disques durs pour une grande capacité économique.
  • TRIM et un alignement adapté aident les SSD à éviter du travail inutile.
4

Répartis les données et évalue les choix RAID

Une grappe combine des disques derrière une seule interface de périphérique en mode bloc. Son organisation détermine quels disques contiennent chaque bloc, quelle capacité reste disponible pour les données et ce qui survit à une panne. Pars de l’entrelacement des données et des paires en miroir pour arriver à la parité XOR, puis compte les entrées-sorties physiques pour expliquer les performances. Enfin, tiens compte du fonctionnement en mode dégradé et du temps de reconstruction pour choisir un niveau : une grappe en bon état ne représente qu’une étape de sa vie.

4.1 Évalue ce qu’apporte une grappe

Le RAID, une grappe redondante de disques peu coûteux ou indépendants, présente plusieurs disques physiques comme un seul périphérique logique en mode bloc. En interne, une correspondance dirige chaque bloc logique vers des copies de données ou vers une rangée avec redondance. Les applications et les systèmes de fichiers peuvent continuer à utiliser l’interface en mode bloc sans comprendre cette organisation.

Comparer trois critères distincts

La capacité est l’espace utilisable pour les données utilisateur. La fiabilité décrit les pannes qu’une organisation peut tolérer. Les performances comprennent à la fois le débit sur de nombreuses opérations et la latence d’une seule opération. Un niveau peut améliorer un critère tout en en réduisant un autre. Un débit global supérieur ne réduit pas non plus nécessairement la latence d’une seule requête de bloc.

Utilise ce modèle simple pour des disques de même taille :

SymboleSignification
NNombre de disques
BBlocs par disque
SDébit séquentiel d’un disque
RDébit aléatoire d’un disque pour la taille de requête considérée
TLatence d’une requête sur un disque

S et R utilisent les mêmes unités de débit, comme les Mo/s. Sur un disque dur, ils diffèrent fortement : l’exemple précédent donnait environ 195 Mo/s en séquentiel et 0,34 Mo/s pour les petites lectures aléatoires. Les formules du modèle supposent suffisamment de travail concurrent et l’absence de goulot d’étranglement dans le contrôleur ; leur but est de faire apparaître les coûts de l’organisation.

Préciser le modèle de panne

Un disque relevant du modèle de panne par arrêt fonctionne correctement jusqu’à ce qu’il tombe complètement et visiblement en panne. Cela facilite le raisonnement de base sur le RAID : la grappe sait quel disque manque. Les disques réels peuvent aussi avoir des secteurs illisibles ou renvoyer des octets incorrects. Ces défauts partiels et silencieux nécessitent des contrôles d’intégrité en plus d’une organisation qui résiste à la perte d’un disque entier.

Une grappe redondante fonctionne en mode dégradé tant que les disques en panne restent dans les limites de sa tolérance. Elle continue à fournir les données, mais les disques restants effectuent un travail supplémentaire ou disposent de moins de capacité de lecture disponible. Une reconstruction remplit un disque de remplacement à partir des informations restantes. Un disque de secours à chaud est un disque inutilisé déjà installé qui permet de commencer rapidement la reconstruction. RAID-0 n’a aucune redondance et ne dispose pas d’un tel état de fonctionnement dégradé après la perte d’un disque membre.

Maintenir la cohérence des mises à jour sur plusieurs disques

Le RAID peut fonctionner dans un contrôleur matériel doté de son propre processeur et d’un cache protégé, dans un logiciel du système d’exploitation comme md sous Linux, ou dans un système de fichiers comme ZFS. Chacun doit traiter une écriture interrompue entre les mises à jour de différents disques. Les miroirs peuvent différer ; les données et la parité peuvent décrire des versions différentes. Le cas de la parité est le trou d’écriture.

Un cache non volatil protégé ou un journal adapté peut conserver les mises à jour en attente pour la reprise. Une table de bits d’intention d’écriture enregistre les zones à resynchroniser après une interruption. Elle ne conserve pas les nouvelles données et ne constitue pas à elle seule une solution complète au trou d’écriture de parité lorsqu’un disque manque aussi.

Le RAID maintient la disponibilité malgré les pannes de disque prévues. Une suppression ou une écriture par un rançongiciel atteint les copies de la grappe par l’interface normale. Un incendie ou un vol peut faire disparaître toute la grappe. Des sauvegardes séparées fournissent des versions ou des copies récupérables malgré ces événements qui touchent toutes les copies.

Points clés

  • Compare séparément la capacité utilisable, la tolérance aux pannes, le débit et la latence des requêtes.
  • Le modèle de base de panne par arrêt suppose que le disque en panne est identifié.
  • Les grappes redondantes peuvent fournir les données en mode dégradé et reconstruire un disque de remplacement.
  • Les mises à jour interrompues sur plusieurs disques nécessitent un mécanisme de cohérence.
  • Une table de bits identifie les zones à resynchroniser ; des journaux protégés peuvent conserver les informations de mise à jour.
  • Le RAID et les sauvegardes séparées protègent contre différents types de perte.

4.2 Localise les blocs dans les rangées et les paires en miroir

RAID-0 entrelace les données entre les disques sans conserver d’informations redondantes. Avec une bande d’un bloc et une numérotation commençant à zéro, le bloc logique A va à :

disque=A mod N,deˊplacement=⌊A/N⌋

Pour quatre disques, le bloc 14 appartient au disque 2 au déplacement 3. Le modulo choisit le disque ; la division entière compte les rangées complètes avant ce bloc.

Tenir compte de la taille de bande dans la correspondance

Une bande est une suite de blocs consécutifs placés sur un disque avant de passer au suivant. Soit c sa taille en blocs. Identifie d’abord la bande, puis le disque et le déplacement local :

q=⌊A/c⌋,disque=q mod N deˊplacement=⌊q/N⌋c+(A mod c)

Pour le bloc 14, c = 2 et N = 4, la bande est 7, le disque est 3 et le déplacement est 2. Utiliser directement A modulo N ignorerait les bandes de deux blocs. De petites bandes peuvent répartir une grande requête sur davantage de disques ; de plus grandes bandes gardent davantage de travail proche sur un même disque. Les bandes courantes des grappes vont de 64 à 512 Kio ; md sous Linux utilise généralement 512 Kio par défaut.

RAID-0 a une capacité NB et des débits globaux idéaux NS en séquentiel et NR en aléatoire. Une petite requête sur un seul disque prend toujours environ T. La panne d’un disque membre entraîne la perte d’une partie des données de la grappe : cette organisation convient donc aux données temporaires reproductibles lorsque la disponibilité n’est pas importante.

Ajouter des copies en miroir

Un miroir RAID-1 à deux disques écrit chaque bloc sur les deux membres. RAID-10 entrelace les données entre des paires en miroir. Avec quatre disques et des bandes d’un bloc entre les paires, le bloc A va dans la paire A modulo 2 au déplacement obtenu par division entière de A par 2, et les deux membres le stockent.

RAID-10 utilise la moitié de la capacité brute. Il résiste à toute panne unique et peut résister à N/2 pannes si chacune touche une paire différente. La perte des deux membres d’une paire entraîne la perte des données de cette paire, même si toutes les autres restent en bon état.

Compter le travail utile par disque

Chaque écriture en miroir met à jour deux disques en parallèle. Sa latence est d’environ T, déterminée par le membre le plus lent, tandis que le débit global des écritures aléatoires est NR/2. Les lectures peuvent être réparties entre toutes les copies, ce qui donne NR si les lectures aléatoires indépendantes sont assez nombreuses.

Quatre disques de 4 To chacun ; S = 200 Mo/s, R = 1 Mo/sRAID-0RAID-10
Capacité utilisable16 To8 To
Débit de lecture-écriture séquentielle dans le modèle simple800 Mo/s400 Mo/s
Débit de lecture aléatoire4 Mo/s4 Mo/s
Débit d’écriture aléatoire4 Mo/s2 Mo/s

Le modèle simple de lecture séquentielle en miroir donne NS/2 parce que les partenaires sautent chacun les blocs de l’autre. Les mises en œuvre qui attribuent des plages entières de lecture à chaque copie peuvent faire mieux. La mise en miroir fournit davantage de capacité de lecture ; elle ne permet pas à un disque de terminer une lecture individuelle en deux fois moins de temps.

Points clés

  • Utilise le modulo pour trouver le disque d’une bande d’un bloc et la division entière pour trouver son déplacement local.
  • Pour des bandes plus grandes, localise la bande avant de choisir le disque.
  • RAID-0 offre toute la capacité utilisable et ne tolère aucune panne de disque.
  • RAID-10 entrelace les données entre des paires en miroir et utilise la moitié de la capacité brute.
  • Deux pannes ne sont supportées que si aucune paire en miroir ne perd ses deux membres.
  • Les écritures en miroir mobilisent deux disques ; les lectures indépendantes peuvent utiliser l’une ou l’autre copie.
  • Le résultat simple NS/2 pour la lecture séquentielle en miroir dépend de la répartition des lectures.

4.3 Reconstruis et mets à jour la parité

Une rangée à parité stocke des blocs de données et un bloc de redondance égal à leur XOR bit à bit. Pour chaque position de bit, le XOR vaut un lorsqu’un nombre impair d’entrées vaut un. Appliquer le XOR à une valeur et à elle-même l’annule. Cette annulation permet à la grappe de retrouver un bloc manquant.

Récupérer un bloc manquant identifié

Pour les données 0011, 0101 et 1001 :

P=0011⊕0101⊕1001=1111

Si le deuxième bloc manque :

D2=0011⊕1001⊕1111=0101

La grappe doit savoir quel bloc reconstruire. Une parité non concordante entre des blocs apparemment sains révèle une incohérence, mais n’identifie pas le membre défectueux. Une somme de contrôle peut aider à établir quelles données sont valides.

Mettre à jour un bloc sans lire toute la rangée

Reconstruire la parité à partir des autres données est la parité additive. Avec cinq disques de données, modifier un bloc nécessite de lire les quatre autres blocs de données, puis de les combiner avec la nouvelle valeur. La parité soustractive, ou lecture-modification-écriture, retire la contribution de l’ancien bloc et insère celle du nouveau :

Pnew=Pold⊕Dold⊕Dnew

Remplace 0101 par 1100 dans la rangée précédente :

1111⊕0101⊕1100=0110

Cela nécessite deux lectures, des anciennes données et de l’ancienne parité, suivies de deux écritures, des nouvelles données et de la nouvelle parité. La phase de lecture doit se terminer avant la phase d’écriture, ce qui donne une latence d’environ 2T. Une écriture de bande complète dispose de tous les nouveaux blocs de données : elle calcule donc directement la nouvelle parité sans lire les anciens blocs.

Répartir le travail de parité
NiveauPlacement de la redondanceBlocs utilisablesPannes de disque toléréesDébit idéal des petites écritures aléatoires
RAID-4Un disque de parité dédié(N − 1)BUne quelconqueR/2
RAID-5Un bloc de parité qui tourne entre les disques(N − 1)BUne quelconqueNR/4
RAID-6Deux blocs de redondance indépendants par rangée(N − 2)BDeux quelconquesNR/6

Le disque de parité de RAID-4 effectue une lecture et une écriture pour chaque petite mise à jour, ce qui crée un goulot d’étranglement fixe. RAID-5 répartit la parité entre les membres et permet aux mises à jour de rangées indépendantes de s’exécuter simultanément. Il paie toujours quatre entrées-sorties physiques par petite écriture logique. Les lectures aléatoires peuvent utiliser tous les disques à NR ; les grandes écritures séquentielles atteignent environ (N − 1)S.

RAID-6 ajoute deux blocs de redondance indépendants P et Q, généralement avec un code Reed–Solomon pour Q. Deux copies du même XOR ne donneraient qu’une seule équation. La mise à jour d’un bloc de données par lecture-modification-écriture lit les anciennes données, P et Q, puis écrit les trois : six entrées-sorties.

Pour quatre disques de 4 To avec R = 1 Mo/s, RAID-4 et RAID-5 fournissent 12 To et des débits d’écriture aléatoire de 0,5 et 1 Mo/s. RAID-6 fournit 8 To et environ 0,67 Mo/s. En mode dégradé avec RAID-5, un bloc de données manquant nécessite N − 1 lectures de blocs restants. Avec RAID-6 et un bloc de données manquant, la reconstruction par P nécessite N − 2 lectures et exclut Q ; deux blocs manquants nécessitent les deux équations indépendantes.

Points clés

  • La parité XOR reconstruit un bloc manquant identifié.
  • Une parité non concordante ne peut pas à elle seule localiser une corruption silencieuse.
  • La lecture-modification-écriture lit les anciennes données et la parité, puis écrit les deux nouvelles valeurs.
  • Les écritures de bande complète évitent les lectures des anciennes données et de l’ancienne parité.
  • RAID-4 centralise le goulot d’étranglement de la parité ; RAID-5 le répartit.
  • RAID-6 nécessite deux codes indépendants et résiste à deux pannes de disque quelconques.
  • Compte quatre entrées-sorties pour une petite écriture RAID-5 et six pour RAID-6.
  • Les lectures en mode dégradé reconstruisent les données manquantes et demandent davantage de travail aux disques restants.

4.4 Choisis un niveau en tenant compte des reconstructions

Pour choisir un niveau RAID, pars de la charge de travail et des pertes auxquelles il doit résister. La capacité seule laisse de côté le coût des écritures, les performances en mode dégradé et le temps nécessaire pour rétablir la redondance. Une grappe plus grande comprend plus de disques qui contribuent à sa capacité, mais aussi plus de disques membres et de secteurs exposés pendant la récupération.

Adapter l’organisation à la charge de travail

RAID-0 convient aux données temporaires qui peuvent être recréées et ne nécessitent pas de tolérance aux pannes de disque. RAID-10 convient à de nombreuses petites lectures et écritures aléatoires lorsqu’il est acceptable de renoncer à la moitié de la capacité. Le RAID à parité utilise efficacement l’espace et fonctionne bien pour les grandes écritures de bande complète. RAID-6 ajoute une protection contre deux pannes quelconques, utile lorsque la reconstruction de grands disques prend longtemps.

Avec quatre disques, RAID-10 et RAID-6 fournissent chacun la moitié de la capacité brute. RAID-10 nécessite deux écritures physiques par petite écriture logique ; la lecture-modification-écriture de RAID-6 nécessite six entrées-sorties. RAID-6 résiste à toute combinaison de deux pannes de disque, tandis que RAID-10 exige que ces pannes touchent des paires différentes. Aucun des deux choix ne l’emporte sur tous les critères.

Calculer une borne inférieure du temps de reconstruction

La reconstruction d’un miroir copie son partenaire restant. La reconstruction complète d’une grappe à parité lit les données restantes et reconstruit les blocs manquants. L’équation P de RAID-6 peut reconstruire un bloc de données manquant sans Q ; les lectures réellement nécessaires à la récupération dépendent de l’organisation et de la mise en œuvre. La reconstruction complète d’un périphérique peut nécessiter des lectures importantes sur les disques restants.

Écrire un disque de remplacement de 20 To à 200 Mo/s prend au moins :

T=20×1012200×106=100 000 s

Cela représente environ 27,8 heures sans charge concurrente ni goulot d’étranglement supplémentaire. Les entrées-sorties normales, les recherches, le travail du contrôleur et la limitation du débit de récupération peuvent prolonger cette durée. L’ajout d’un disque de secours à chaud réduit l’attente avant le début de la reconstruction ; il ne supprime pas le temps de copie.

Examiner l’exposition au risque pendant la récupération

Une grappe RAID-5 dégradée a épuisé son unique tolérance à une panne de disque. La perte d’un autre disque empêche la récupération. Un secteur illisible sur un disque restant peut aussi laisser une rangée avec deux blocs inconnus : le bloc du disque manquant et le bloc illisible du disque restant. D’autres rangées peuvent rester récupérables.

À titre d’exemple, la reconstruction d’une grappe RAID-5 de quatre disques de 4 To lit les trois disques restants en entier :

3×4×1012×8=9,6×1013 bits

Si les erreurs sont modélisées au taux d’une erreur pour 10¹⁴ bits, l’espérance du nombre d’erreurs est de 0,96. Il s’agit d’une espérance selon ce modèle de taux, pas d’une probabilité de panne de 96 %. La limite du taux d’erreur indiquée sur une fiche technique n’est pas une prévision mesurée pour une reconstruction donnée. Les caractéristiques destinées aux entreprises indiquent souvent une limite plus exigeante, par exemple une erreur pour 10¹⁵ bits.

Passer de quatre à huit disques RAID-5 augmente la capacité utilisable de 75 % à 87,5 % de l’espace brut, tout en augmentant la quantité de données restantes à lire pendant la récupération. Un âge et une usure similaires affaiblissent aussi l’hypothèse de pannes indépendantes. Une base de données comportant beaucoup d’écritures peut favoriser RAID-10 ; une grande archive séquentielle peut favoriser RAID-6. Planifie des vérifications périodiques d’intégrité pour découvrir les secteurs défectueux tant que la redondance subsiste, et conserve des sauvegardes séparées.

Points clés

  • Choisis selon la charge de travail, la capacité, les combinaisons de pannes et l’exposition au risque pendant la récupération.
  • La capacité divisée par le débit de reconstruction donne un temps de reconstruction optimiste.
  • Une grappe RAID-5 dégradée ne tolère aucune autre panne complète de disque.
  • Un secteur illisible sur un disque restant peut empêcher la reconstruction de sa rangée.
  • Une espérance du nombre d’erreurs n’est pas une probabilité de panne.
  • Davantage de disques membres RAID-5 améliorent le rendement de capacité tout en augmentant l’exposition au risque pendant la récupération.
5

Vérifie les données et répare les erreurs détectées

Un disque peut rester en service tout en renvoyant des blocs illisibles ou incorrects. Distingue ces défauts de la panne complète d’un disque, puis compare les méthodes de somme de contrôle et les erreurs qu’elles peuvent manquer. Le placement des sommes de contrôle compte autant que le calcul : des octets corrects à la mauvaise adresse et une ancienne version à la bonne adresse nécessitent des vérifications différentes. Combine la vérification avec la redondance et des lectures périodiques pour trouver et réparer les défauts avant que les possibilités de récupération disparaissent.

5.1 Reconnais les défauts partiels et silencieux

Le modèle de panne par arrêt identifie un disque entier comme manquant. Un périphérique relevant du modèle de panne partielle fonctionne dans l’ensemble alors que certains blocs sont illisibles ou incorrects. Ces défauts peuvent rester cachés dans des données rarement consultées jusqu’à ce qu’une autre panne rende ces blocs nécessaires à une reconstruction.

Distinguer une erreur de lecture signalée d’octets erronés

Une erreur de secteur latente (LSE) signifie que le disque ne peut pas lire un secteur et signale une erreur. Elle peut être causée par des dommages physiques ou des erreurs de bits dépassant la capacité de correction du code correcteur d’erreurs interne. Comme l’emplacement est connu, un système redondant peut lire une copie miroir ou reconstruire ce bloc à partir de la parité. Réécrire les données récupérées permet au disque de retirer du service ou de réaffecter l’emplacement endommagé.

La corruption silencieuse signifie qu’une lecture renvoie des octets incorrects sans signaler d’erreur. Un micrologiciel défectueux, un défaut du contrôleur ou du bus, ou une écriture mal dirigée peuvent la provoquer. Le statut de réussite de la commande indique que le transfert est terminé ; il ne valide pas le contenu de bout en bout.

Distinguer les erreurs d’adresse et de version
DéfautCe qui est erronéPourquoi une somme de contrôle locale des données peut le manquer
Écriture mal dirigéeDe nouveaux octets corrects arrivent sur le mauvais disque ou blocLes données et leur somme de contrôle correspondante peuvent voyager ensemble
Écriture perdueUne mise à jour signalée comme terminée n’atteint jamais le stockageLes anciens octets correspondent toujours à leur ancienne somme de contrôle

Une écriture mal dirigée peut écraser un bloc sans rapport tout en laissant la destination prévue avec des données périmées. Une écriture perdue laisse l’ancienne version du bloc prévu en place. Un identifiant d’adresse aide à détecter le premier défaut ; une valeur attendue de la nouvelle version, stockée indépendamment, aide à détecter le second.

Le code correcteur d’erreurs (ECC) interne du disque corrige de nombreuses erreurs dans les bits stockés. Il ne peut pas vérifier tous les défauts ailleurs sur le parcours, comme une valeur corrompue avant que le disque calcule son code ou après qu’il l’a renvoyée. Une protection limitée au support laisse d’autres composants sans vérification.

Comprendre pourquoi l’échelle compte

Une étude de terrain a suivi 1,53 million de disques en production pendant 32 mois. Des LSE ont touché environ 8,5 % des disques de stockage secondaire et 1,9 % des disques de classe entreprise. Une étude distincte de la corruption sur la même population pendant 41 mois a trouvé des sommes de contrôle non concordantes sur respectivement environ 0,86 % et 0,065 % des disques. Ce sont des observations historiques sur des périodes d’étude différentes, pas des probabilités annuelles ni des garanties actuelles. À l’échelle d’un grand parc, même des défauts rares par disque deviennent des événements courants.

Utiliser la redondance avec une vérification

Une lecture ordinaire sur un miroir à deux copies peut choisir une copie sans la comparer à l’autre. Elle peut renvoyer des octets corrompus si aucune somme de contrôle n’est vérifiée. Si les copies sont comparées et diffèrent, les deux copies seules ne permettent pas de savoir laquelle est correcte. Une somme de contrôle valide fournit une base pour sélectionner une bonne version.

Pendant une reconstruction RAID-5, une LSE sur un disque restant peut supprimer les dernières informations nécessaires pour sa rangée. Il manque déjà un bloc à la grappe, et une équation XOR ne peut pas retrouver deux inconnues. Trouver et réparer les défauts latents tant que tous les disques membres sont disponibles préserve les possibilités face à la panne suivante.

Points clés

  • Une LSE est une impossibilité de lire un secteur qui est signalée ; la corruption silencieuse renvoie des données erronées sans erreur signalée.
  • Les écritures mal dirigées ont une mauvaise destination ; les écritures perdues laissent une ancienne version.
  • L’ECC du disque protège le support, mais laisse d’autres parties du parcours des données exposées.
  • Deux copies miroir différentes nécessitent une vérification pour identifier une copie correcte.
  • Un défaut latent peut devenir irrécupérable une fois la redondance épuisée.

5.2 Calcule des sommes de contrôle et compare leur efficacité

Une somme de contrôle représente un bloc de données par une valeur bien plus petite. À la lecture, recalcule-la et compare-la à la valeur attendue qui a été stockée. Une différence révèle une incohérence. Des entrées différentes peuvent partager une même valeur, ce qu’on appelle une collision : des sommes de contrôle concordantes fournissent donc un indice solide dont la force dépend de la fonction choisie et du type d’erreur.

Essayer le XOR et l’addition

Pour les octets 0x36, 0x5A, 0xC1 et 0x0F, le XOR bit à bit donne 0xA2. En binaire, le calcul est :

00110110⊕01011010⊕11000001⊕00001111=10100010

Inverse le bit de poids faible des deux premiers octets, ce qui donne 0x37 et 0x5B. Les deux changements s’annulent avec le XOR, qui reste égal à 0xA2. Une opération peu coûteuse peut avoir une faiblesse prévisible.

Une somme de contrôle additive de 8 bits additionne les valeurs des octets modulo 256 :

(54+90+193+15) mod 256=96=0x60

La double inversion précédente change la somme en 0x62 : l’addition détecte donc cette erreur. Mais modifier l’ordre des octets ne change ni la simple addition ni le XOR.

Ajouter une sensibilité à la position

Une somme de contrôle de Fletcher maintient deux sommes, initialisées à zéro. Pour chaque octet d, mets à jour la première somme, puis ajoute sa nouvelle valeur à la seconde :

s1=(s1+d) mod 255,s2=(s2+s1) mod 255
OctetNouvelle valeur de s₁Nouvelle valeur de s₂
545454
90144198
1938225
1597122

Le résultat est (97 ; 122). Échanger les deux premiers octets donne (97 ; 158). La première somme ignore l’ordre, mais la seconde pondère les positions par l’accumulation progressive. Fletcher détecte les erreurs portant sur un seul bit et de nombreuses erreurs en rafale à faible coût, même si des collisions restent possibles.

Suivre une courte division CRC

Un contrôle de redondance cyclique (CRC) traite les bits comme des coefficients d’un polynôme et effectue une division à l’aide du XOR. Avec le générateur 1011, qui représente x³ + x + 1, un reste de trois bits protège les données. Pour les données 1101, ajoute trois zéros :

  1. Pars de 1101000 et applique le XOR avec 1011000, ce qui laisse 0110000.
  2. Aligne le générateur sur le premier bit à un et applique le XOR avec 0101100, ce qui laisse 0011100.
  3. Applique le XOR avec 0010110, ce qui laisse 0001010.
  4. Applique le XOR avec 0001011, ce qui laisse 0000001.

Le reste est 001 : stocke donc 1101001. La division de ce mot de code donne zéro ; le remplacer par 1111001 donne un reste de 110. Un CRC de n bits détecte toute rafale d’une longueur maximale de n bits. La prise en charge par le processeur rend le CRC pratique pour le stockage et le trafic réseau, notamment CRC32C pour les métadonnées d’ext4 et Btrfs.

Les hachages cryptographiques comme SHA-256 résistent aussi aux tentatives délibérées de collision. Un hachage utilisé contre les modifications malveillantes nécessite une valeur attendue fiable ; remplacer à la fois les données et leur hachage non fiable rend la comparaison inutile. OpenZFS utilise normalement Fletcher pour les données ordinaires et SHA-256 pour la déduplication. Huit octets de somme de contrôle par bloc de 4 Kio coûtent environ 0,2 % d’espace. La détection seule ne fournit aucun octet de remplacement : la réparation nécessite de la redondance ou un code correcteur d’erreurs.

Points clés

  • Une différence de somme de contrôle révèle une incohérence ; une collision peut masquer une erreur.
  • Le XOR manque les inversions de bits qui s’annulent ; l’addition manque les changements d’ordre des éléments.
  • Fletcher met à jour deux sommes cumulées afin que les positions des octets influent sur le résultat.
  • Le CRC utilise une division polynomiale avec XOR et détecte les rafales de longueur bornée.
  • Les hachages cryptographiques renforcent la résistance aux collisions, mais nécessitent une valeur attendue fiable contre les modifications malveillantes.
  • Les sommes de contrôle détectent les erreurs ; leur réparation nécessite des informations supplémentaires.

5.3 Place les contrôles là où ils peuvent détecter le défaut

Une fonction de somme de contrôle détermine les changements détectables. La conception du stockage détermine à quelle valeur elle est comparée, à quelle adresse elle appartient et si un remplacement correct existe. Une somme de contrôle robuste associée à la mauvaise version peut malgré tout accepter des données périmées.

Choisir où placer la valeur attendue
PlacementFonctionnementPrincipale conséquence
Par secteurPar exemple, 512 octets de données et 8 octets de protection dans un secteur de 520 octetsLa protection voyage avec le secteur
Bloc regroupant les sommes de contrôleUn bloc de 4 Kio contient 512 sommes de contrôle de huit octetsMettre à jour les données peut aussi nécessiter la mise à jour d’un autre bloc
Pointeur parentUn parent stocke la somme de contrôle du bloc fils qu’il référenceLe contenu attendu est vérifié depuis l’extérieur du bloc fils

ZFS utilise des sommes de contrôle dans les pointeurs des blocs parents, créant un arbre de vérification jusqu’à sa racine. Les informations de protection peuvent aussi contenir l’adresse attendue. L’étiquette de référence de T10 utilise les 32 bits de poids faible de l’adresse de bloc logique, à côté d’un CRC de 16 bits des données et d’une étiquette d’application. Une vérification de l’adresse peut rejeter des octets corrects renvoyés depuis le mauvais emplacement.

Distinguer mauvais emplacement et mauvaise version

Supposons qu’une lecture du disque 3, bloc 1 207, renvoie une paire valide de données et de somme de contrôle portant l’adresse d’un autre emplacement. La somme de contrôle seule concorde, mais l’identifiant d’adresse révèle l’erreur de destination.

Une écriture perdue est plus difficile à détecter : l’ancien contenu peut avoir une somme de contrôle valide et la bonne adresse. La vérification par relecture après écriture compare une nouvelle lecture au nouveau contenu attendu, en ajoutant environ une entrée-sortie. Elle doit observer le résultat stocké, et pas seulement la même copie dans un cache volatil. Une somme de contrôle attendue stockée séparément, par exemple dans un pointeur parent validé, peut à la place rejeter la version périmée du bloc fils. La valeur attendue séparée doit elle-même décrire la mise à jour prévue.

Vérifier avant de renvoyer ou de réparer

Lors d’une lecture, obtiens le bloc et sa somme de contrôle attendue, recalcule-la et compare-les. Si la première copie échoue à la vérification, lis une autre copie ou reconstruis le bloc à partir de la redondance. Vérifie ce résultat avant de le renvoyer. S’il réussit, renvoie les données correctes et réécris la copie endommagée. C’est l’autoréparation. Si aucune copie valide ne peut être trouvée, renvoie une erreur plutôt que des octets non vérifiés.

Par exemple, un pool ZFS en miroir lit le disque A et détecte une différence de somme de contrôle. La copie du disque B réussit la vérification. Le système renvoie les données de B, répare A et enregistre l’erreur de A. Une mise en miroir ordinaire sans vérification des sommes de contrôle pourrait renvoyer les octets erronés de A sans les remarquer.

Chercher les erreurs avant qu’une panne n’impose une récupération

La vérification périodique d’intégrité lit et vérifie régulièrement les données stockées, y compris les blocs que les applications consultent rarement. Tant que la redondance est disponible, le système peut réparer les défauts avant la panne d’un autre disque membre. Dans l’étude historique sur les LSE, cette vérification a trouvé plus de 60 % des erreurs.

La vérification consomme du temps processeur, de l’espace pour les sommes de contrôle et parfois des entrées-sorties supplémentaires. Huit octets par bloc de 4 Kio coûtent environ 0,2 % ; huit octets par 512 octets de données coûtent environ 1,6 %. Les lectures de vérification concurrencent les requêtes au premier plan : les périodes calmes sont donc utiles. L’argument de bout en bout place la vérification finale près du système de fichiers ou de l’application, couvrant une plus grande partie du parcours que l’ECC du disque limité au support.

Points clés

  • Le placement des sommes de contrôle détermine la valeur attendue disponible pendant une lecture.
  • Les informations d’adresse détectent les données provenant du mauvais emplacement ; une valeur attendue actuelle et séparée peut détecter les données périmées.
  • Vérifie une copie récupérée avant de la renvoyer ou de l’utiliser pour réparer.
  • La vérification périodique d’intégrité contrôle les données rarement lues tant que la redondance permet encore de les réparer.
  • Les contrôles de bout en bout couvrent des défauts au-delà du support du disque.

Entrée-sortie, disques et RAID : exemples

5 Leçons Interactives

1

Suis une requête sans monopoliser le processeur

16 étapes
Suis les commandes, l’attente, le DMA et la fin d’une opération en file pendant une lecture sur un périphérique de stockage.
  1. 1
    IntroductionDistingue les tâches d’une requête d’entrée-sortie

    Une requête de stockage comporte plusieurs tâches : décrire ce qu’il faut faire, transférer les octets et signaler la fin de l’opération. Le processeur n’a pas à toutes les effectuer en permanence : le DMA permet au matériel de transférer les octets, et les interruptions permettent au processeur d’exécuter d’autres tâches pendant l’attente.

    Suis une requête depuis son interface de registres en passant par l’attente et le transfert, puis reconstitue le parcours complet par un pilote et un contrôleur.

  2. 2
    ExplicationCommence par l’interface du périphérique

    Le contrôleur masque son micrologiciel et son matériel interne derrière des registres. Dans un protocole de sortie simple, le pilote vérifie que l’état indique que le périphérique est prêt, fournit les données, écrit la commande, puis vérifie la fin de l’opération et les erreurs.

    L’ordre compte : écrire la commande peut démarrer le matériel immédiatement. Une application accède à cette opération contrôlée par un appel système.

  3. 3
    Point cléUne adresse de registre peut déclencher une opération

    Avec les MMIO, les instructions de lecture et d’écriture atteignent les registres du périphérique par des adresses mappées. La lecture d’un registre peut effacer un indicateur ; une écriture peut lancer une commande. Les hypothèses habituelles sur la RAM ne sont pas sûres ici.

    Le pilote utilise les fonctions d’accès de la plateforme et les barrières nécessaires. Déclarer un pointeur volatile ne garantit pas entièrement l’ordre entre un descripteur en RAM et la notification MMIO qui demande au périphérique de le récupérer.

  4. 4
    DéfiCorrige l’ordre des commandes

    Un pilote constate qu’un périphérique de sortie est prêt, écrit sa commande, puis remplit le registre de données. Quel ordre devrait-il utiliser, et pourquoi ?

    ---reveal---

    Fournis les données avant d’émettre la commande. La commande démarre le périphérique, qui pourrait sinon consommer des données périmées. Après la soumission, le pilote vérifie la fin de l’opération et toute erreur signalée.

  5. 5
    ExempleLaisse un autre processus s’exécuter

    Le processus C lance une lecture qui dure 7 ms. Le processus D a des calculs prêts à exécuter. Avec la scrutation, le processeur vérifie à plusieurs reprises l’état de la lecture de C pendant toute l’attente.

    Avec une attente pilotée par interruption, C se bloque et D peut s’exécuter. À la fin de l’opération, le gestionnaire vérifie la requête et remet C à l’état prêt. La lecture prend toujours 7 ms ; des calculs utiles ont occupé cet intervalle.

  6. 6
    ExplicationCompare le coût des notifications

    Une opération très rapide peut se terminer avant que le blocage et le réveil soient rentables. Une courte phase de scrutation évite ce surcoût, puis une stratégie hybride se met en sommeil si la requête n’est pas terminée.

    Sous un trafic important, le regroupement partage une interruption entre plusieurs fins d’opération. Cela réduit le travail du processeur, mais peut retarder la première fin d’opération pendant la formation du lot.

  7. 7
    DéfiChoisis une taille de lot à partir de son coût

    Un périphérique termine 60 000 opérations chaque seconde. Le traitement d’une interruption coûte 6 µs de temps processeur. Combien de temps processeur est économisé chaque seconde en regroupant trois fins d’opération par interruption ?

    ---reveal---

    Des interruptions séparées coûtent 360 ms par seconde. Des lots de trois fins d’opération nécessitent 20 000 interruptions :

    20 000×6 μs=120 ms

    L’économie est de 240 ms par seconde. Le temps de service du périphérique reste inchangé, tandis que la notification peut être retardée.

  8. 8
    ExempleCompte les copies nécessaires aux PIO

    Supposons que des données utiles de 8 Kio passent par un registre de données de 8 octets, avec un coût de 80 ns par accès. Le processeur doit effectuer :

    8192/8=1024 acceˋs 1024×80 ns=81,92 μs

    Ces opérations ne transfèrent que les données utiles. Le DMA confie le transfert au matériel et laisse au processeur la préparation du tampon, la soumission et le traitement de la fin de l’opération.

  9. 9
    ExplicationMaintiens la destination stable

    Le pilote rend le tampon accessible au périphérique et maintient ses pages sous-jacentes épinglées jusqu’à la fin de l’opération. Une liste de dispersion-rassemblement décrit les zones distinctes par leur adresse et leur longueur lorsque les pages physiques ne sont pas adjacentes.

    Le périphérique reçoit des adresses de bus DMA, pas un pointeur utilisateur ordinaire. Une IOMMU peut traduire ces adresses et limiter l’accès du périphérique à la mémoire autorisée.

  10. 10
    ConseilCoordonne la visibilité en mémoire

    Une adresse valide n’est qu’une partie de ce qui rend un transfert DMA correct. Le périphérique doit voir les dernières données sortantes du processeur, et le processeur doit voir les octets entrants écrits par le périphérique.

    La cohérence matérielle s’en charge sur certaines plateformes. D’autres nécessitent une synchronisation explicite du cache par l’API DMA. Garde le tampon mappé et stable jusqu’à ce que le périphérique ait cessé d’y accéder.

  11. 11
    DéfiDiagnostique une libération prématurée du tampon

    Un pilote lance un transfert DMA vers deux pages épinglées, les libère avant la fin de l’opération et les donne à un autre processus. Pourquoi une interruption ultérieure ne peut-elle pas rendre cela sûr ?

    ---reveal---

    Le périphérique peut déjà avoir écrit dans les pages réutilisées avant de déclencher son interruption. Les pages doivent rester épinglées et ne pas pouvoir être réutilisées jusqu’à la fin du transfert DMA. Traiter la fin de l’opération ensuite ne peut pas annuler la corruption de la mémoire.

  12. 12
    LienFais passer la requête dans la pile

    Pour une lecture avec mise en tampon et échec de cache, le système de fichiers localise les blocs de stockage demandés. La couche bloc met leurs requêtes en file ou les fusionne, et le pilote soumet les commandes matérielles.

    Cette répartition permet au système de fichiers d’utiliser la même interface en mode bloc pour différents périphériques. Une opération de contrôle spéciale, comme une commande propre au périphérique, peut nécessiter une interface telle que ioctl().

  13. 13
    ExplicationSoumets du travail par une file NVMe

    Le pilote NVMe place une commande dans une file de soumission en mémoire, puis écrit dans le registre de notification MMIO. Le contrôleur récupère l’entrée, utilise le DMA pour transférer les données utiles et dépose une entrée de complétion. MSI-X peut diriger la notification vers un cœur approprié.

    De nombreuses paires de files permettent aux cœurs de processeur de soumettre du travail avec moins de contention partagée qu’une seule file de périphérique peu profonde.

  14. 14
    DéfiRepère une requête avant sa soumission

    Deux lectures de blocs voisins attendent dans le noyau. Où peuvent-elles être fusionnées, et quelle action ultérieure indique à un contrôleur NVMe de récupérer le travail soumis ?

    ---reveal---

    La couche bloc générique peut fusionner les requêtes adjacentes avant leur soumission au pilote. Le pilote NVMe remplit ensuite une entrée de soumission et écrit dans son registre de notification. La fusion concerne la requête ; le registre de notification annonce le travail en file.

  15. 15
    DéfiExplique la faible utilisation du processeur pendant une grande lecture

    Une grande lecture avec échec de cache se termine pendant qu’un autre processus effectue des calculs. Le processeur prépare l’opération et traite sa fin, mais ne copie pas les données mot par mot par les registres du périphérique. Quels mécanismes expliquent cette observation ?

    ---reveal---

    Le DMA transfère les données utiles directement en mémoire. L’attente pilotée par interruption permet au processus qui lit de se bloquer pendant que d’autres calculs s’exécutent. Le pilote et la couche bloc organisent la soumission et le traitement de la fin ; aucun de ces mécanismes ne fait disparaître le travail propre au périphérique de stockage.

  16. 16
    RécapitulatifSuis les responsabilités à chaque interface

    Lis le parcours d’une requête en te demandant qui connaît l’adresse du bloc, qui connaît le protocole du contrôleur, qui transfère les données utiles et qui signale la fin de l’opération.

    Distingue l’attente, la copie et l’ordonnancement lorsque tu analyses le coût en temps processeur. Une même lecture peut combiner une interface standard en mode bloc, une notification MMIO, le DMA et une interruption.

2

Transforme les mouvements du disque en estimation de performances

13 étapes
Relie les garanties sur les secteurs, les calculs de temps d’accès et l’ordonnancement des requêtes.

Enregistre cette unité pour suivre chaque Leçon Interactive pas à pas.

  1. 1
    IntroductionPars du travail caché derrière une adresse
  2. 2
    ExplicationDistingue trois garanties du stockage
  3. 3
    DéfiAnalyse une confirmation d’écriture en cache
  4. 4
    ExempleConvertis la vitesse de rotation en attente moyenne
  5. 5
    ExempleAjoute le transfert pour une petite lecture
  6. 6
    Point cléRépartis le positionnement sur davantage de données
  7. 7
    DéfiEstime une autre charge de lectures aléatoires
  8. 8
    ExempleTrace un parcours LOOK
  9. 9
    ExempleCompte le retour circulaire
  10. 10
    DéfiApplique une politique à de nouvelles requêtes
  11. 11
    LienNe te limite pas à la distance de recherche
  12. 12
    DéfiChoisis ce qu’il faut améliorer
  13. 13
    RécapitulatifUtilise la bonne grandeur pour décider
3

Suis une réécriture sur SSD jusqu’à la récupération de l’espace

14 étapes
Suis les contraintes des cellules, les changements de correspondance, les écritures supplémentaires et les performances visibles par l’hôte.

Enregistre cette unité pour suivre chaque Leçon Interactive pas à pas.

  1. 1
    IntroductionObserve ce que fait réellement une réécriture
  2. 2
    ExplicationChoisis l’unité physique de l’opération
  3. 3
    Point cléRelie la densité aux limites des cellules
  4. 4
    DéfiPréserve les pages voisines
  5. 5
    ExempleRedirige une réécriture logique
  6. 6
    ExplicationNe copie que ce qui est encore valide
  7. 7
    ExempleCalcule le coût caché des programmations
  8. 8
    ConseilDonne de meilleures informations au ramasse-miettes
  9. 9
    DéfiRécupère un bloc contenant plus de pages valides
  10. 10
    ExplicationFournis suffisamment de requêtes indépendantes
  11. 11
    ExempleInterprète une valeur d’endurance
  12. 12
    DéfiInterprète un ralentissement en régime permanent
  13. 13
    DéfiUtilise les informations de suppression pour modifier le travail interne
  14. 14
    RécapitulatifRelie les vues physique et de l’hôte
4

Choisis un RAID à partir du travail physique

18 étapes
Répartis les blocs, récupère-les par parité et compare les performances en fonctionnement normal à l’exposition au risque pendant la reconstruction.

Enregistre cette unité pour suivre chaque Leçon Interactive pas à pas.

  1. 1
    IntroductionCompare une grappe selon plusieurs critères
  2. 2
    ExplicationDistingue l’interface de l’organisation
  3. 3
    LienPrévois l’état après une panne
  4. 4
    DéfiDistingue la disponibilité de la récupération d’une ancienne version
  5. 5
    ExempleRépartis une rangée avec des bandes d’un bloc
  6. 6
    ExplicationAjoute des paires en miroir
  7. 7
    DéfiSuis une bande plus grande
  8. 8
    Point cléDistingue une écriture de nombreuses écritures
  9. 9
    ExempleCalcule la parité XOR d’une rangée
  10. 10
    ExempleRestaure la valeur manquante
  11. 11
    ExempleMets à jour la parité avec le bloc modifié
  12. 12
    ExplicationDéplace le goulot d’étranglement ou ajoute une équation
  13. 13
    DéfiChoisis la mise à jour de parité utile
  14. 14
    ExempleCalcule le temps avant d’annoncer une reconstruction
  15. 15
    ExplicationExamine les erreurs pendant cette période
  16. 16
    DéfiChoisis entre des organisations de capacité égale
  17. 17
    DéfiCombine charge de travail et phases de mise à jour
  18. 18
    RécapitulatifSuis les conséquences de l’organisation pendant la récupération
5

Vérifie un bloc avant de te fier à ses octets

15 étapes
Distingue les modes de panne, calcule des sommes de contrôle et suis une réparation vérifiée.

Enregistre cette unité pour suivre chaque Leçon Interactive pas à pas.

  1. 1
    IntroductionDemande-toi ce qu’établit une lecture réussie
  2. 2
    ExplicationDistingue les données illisibles des données silencieusement erronées
  3. 3
    ExempleSuis la destination et la version
  4. 4
    DéfiDiagnostique une lecture réussie de données périmées
  5. 5
    ExempleCalcule une somme de contrôle additive
  6. 6
    Point cléObserve une collision sans chercher au hasard
  7. 7
    ExemplePrends en compte la position avec Fletcher
  8. 8
    DéfiChoisis le bon calcul de somme de contrôle
  9. 9
    LienSache ce qu’apportent des contrôles plus puissants
  10. 10
    ExplicationPlace la valeur attendue hors de la valeur suspecte
  11. 11
    ExempleVérifie la source de la réparation
  12. 12
    ConseilTrouve les défauts cachés tant que des copies subsistent
  13. 13
    DéfiChoisis un contrôle pour un bloc mal placé
  14. 14
    DéfiRépare avant que la redondance soit épuisée
  15. 15
    RécapitulatifSuis les éléments qui permettent de vérifier un bloc renvoyé

Entrée-sortie, disques et RAID : QCM

50 Questions Pratiques en 5 séries

Série 1 : Périphériques, temps d’accès et protection des données10 Questions Pratiques

Question 1 sur 10

Un pilote doit lancer une opération de sortie simple. Le périphérique est prêt. Que doit-il faire immédiatement avant d’écrire dans le registre de commande ?
  1. Attendre la fin de la sortie.
  2. Fournir les données de sortie.
  3. Effacer le bit d’occupation du périphérique.
  4. Lire les données du périphérique.
Afficher la réponseMasquer la réponse
Réponse : B
Le protocole simple fournit les données utiles avant que la commande ne lance l’opération. Une fois démarré, le périphérique peut consommer immédiatement ces données. L’attente de la fin intervient après la soumission de la commande ; l’effectuer d’abord reviendrait à attendre une opération qui n’a pas encore commencé.

Question 2 sur 10

Sur un cœur de processeur, une opération de stockage prend 14 ms. Un autre processus a 9 ms de calculs prêts à exécuter. Comment une attente pilotée par interruption peut-elle améliorer l’utilisation du processeur ?
  1. Elle réduit l’opération du périphérique à 5 ms.
  2. Elle exécute simultanément les instructions des deux processus.
  3. Elle termine le transfert sans préparation par le processeur.
  4. Elle exécute les calculs prêts pendant l’attente.
Afficher la réponseMasquer la réponse
Réponse : D
Le processus appelant peut se bloquer pendant que l’ordonnanceur exécute les 9 ms de calculs de l’autre processus. Le périphérique prend toujours 14 ms. Soustraire les calculs du temps du périphérique revient à confondre le recouvrement de deux activités avec une accélération du matériel de stockage.

Question 3 sur 10

Un disque possède des secteurs physiques de 4 Kio et accepte des secteurs logiques de 512 octets. Que désigne une LBA ?
  1. Un secteur logique exposé à l’hôte.
  2. Une piste physique située sous une tête.
  3. Un bloc de système de fichiers alloué à un fichier.
  4. Une unité atomique garantie en cas de coupure de courant.
Afficher la réponseMasquer la réponse
Réponse : A
Une LBA identifie un secteur dans l’interface logique, ici une unité de 512 octets. Plusieurs de ces secteurs peuvent partager un secteur physique de 4 Kio. Considérer chaque LBA comme un secteur physique revient à ignorer la couche d’émulation, et aucune des deux tailles n’établit l’atomicité en cas de coupure de courant.

Question 4 sur 10

Un disque dur à 6 000 tr/min a un temps de recherche moyen de 4 ms et un débit de transfert de 100 Mo/s. Il traite une à une des lectures aléatoires indépendantes de 10 000 octets, sans succès de cache ni mise en file. Quel débit effectif obtient-on approximativement ?
  1. 2,44 Mo/s
  2. 100 Mo/s
  3. 1,10 Mo/s
  4. 0,71 Mo/s
Afficher la réponseMasquer la réponse
Réponse : C
Un tour prend 10 ms, donc la latence de rotation moyenne est de 5 ms. Le transfert de 10 000 octets prend 0,1 ms, ce qui donne 9,1 ms au total et environ 1,10 Mo/s. Le résultat de 2,44 Mo/s omet la rotation, alors qu’un placement aléatoire impose cette attente.

Question 5 sur 10

Une page NAND contient d’anciennes données. À quelle granularité physique la mémoire flash doit-elle être effacée avant de pouvoir programmer de nouveau cette même page ?
  1. L’octet programmé individuellement.
  2. Le bloc d’effacement qui contient la page.
  3. Le bloc du système de fichiers de l’hôte.
  4. La seule page flash occupée.
Afficher la réponseMasquer la réponse
Réponse : B
L’effacement réinitialise tout le bloc d’effacement flash qui contient la page. Les autres pages valides doivent être préservées avant cette opération. Confondre l’unité de programmation, qui est une page, avec l’unité d’effacement masque la raison pour laquelle une mise à jour sur place peut exiger de nombreuses copies.

Question 6 sur 10

Pour un disque dur tournant à 12 000 tr/min, quelle est la latence de rotation moyenne pour un secteur placé aléatoirement ?
  1. 2,5 ms
  2. 5 ms
  3. 1,25 ms
  4. 12 ms
Afficher la réponseMasquer la réponse
Réponse : A
Un tour prend 60 000/12 000 = 5 ms. Une cible dont la position est uniforme nécessite en moyenne un demi-tour, soit 2,5 ms. Utiliser 5 ms revient à traiter chaque requête comme si son secteur venait de passer sous la tête et devait effectuer presque un tour complet.

Question 7 sur 10

Un fichier est supprimé accidentellement d’un volume stocké sur une grappe en miroir en bon état. Pourquoi une sauvegarde séparée reste-t-elle utile ?
  1. La suppression modifie un membre ; l’autre devient une copie historique conservée.
  2. La suppression reste en cache jusqu’à ce qu’une sauvegarde restaure le membre manquant.
  3. La suppression modifie la parité ; une reconstruction du miroir annule la mise à jour.
  4. La suppression met à jour les deux copies actives ; une sauvegarde peut garder une version antérieure.
Afficher la réponseMasquer la réponse
Réponse : D
La mise en miroir maintient des copies des données actives : une suppression peut donc retirer le fichier de ces copies en même temps. Une sauvegarde séparée peut conserver une version antérieure récupérable. Considérer le second membre du miroir comme une copie historique revient à confondre la redondance avec la récupération de versions.

Question 8 sur 10

Une grappe RAID-0 possède cinq disques et des bandes d’un bloc. Les disques et les déplacements locaux sont numérotés à partir de zéro. Où se trouve le bloc logique 23 ?
  1. Disque 4, déplacement 3.
  2. Disque 2, déplacement 5.
  3. Disque 3, déplacement 4.
  4. Disque 3, déplacement 5.
Afficher la réponseMasquer la réponse
Réponse : C
Le disque est donné par 23 modulo 5, soit 3, et le déplacement local par la division entière de 23 par 5, soit 4. Quatre rangées complètes précèdent ce bloc. Choisir le déplacement 5 revient à arrondir le quotient vers le haut au lieu de compter seulement les rangées complètes.

Question 9 sur 10

Un disque renvoie un bloc contenant des octets incorrects et signale que l’opération a réussi. Quel type de défaut s’est produit ?
  1. Une panne complète de disque détectée.
  2. Une erreur de secteur latente signalée.
  3. Une corruption silencieuse des données.
  4. Une écriture perdue confirmée.
Afficher la réponseMasquer la réponse
Réponse : C
La corruption silencieuse renvoie des données incorrectes sans signaler d’erreur de lecture. Une erreur de secteur latente rend au contraire le secteur illisible et est signalée par le disque. Le seul statut de réussite d’une commande ne vérifie ni le contenu ni l’ensemble du parcours des données.

Question 10 sur 10

Une somme de contrôle additive de 8 bits commence à zéro et ignore le dépassement. Quelle somme de contrôle résulte des octets décimaux 150, 90 et 40 ?
  1. 25
  2. 24
  3. 255
  4. 280
Afficher la réponseMasquer la réponse
Réponse : B
La somme des valeurs des octets est 280, et la réduction modulo 256 donne 24. La somme de contrôle stockée doit tenir sur huit bits. Conserver 280 ignore la règle de dépassement ; réduire modulo 255 donnerait 25, ce qui relève d’une autre convention de somme de contrôle.
Série 2 : Files, maintenance de la mémoire flash et récupération10 Questions Pratiques

Enregistre cette unité pour voir chaque réponse et t'entraîner sur chaque série.

Question 1 sur 10

Quelle tâche le DMA délègue-t-il principalement à la place du processeur pendant un transfert volumineux avec un périphérique ?
  1. Choisir le prochain processus prêt.
  2. Vérifier les permissions de fichier de l’application.
  3. Copier chaque mot de données vers ou depuis le périphérique.
  4. Traiter chaque interruption de fin de requête.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 2 sur 10

Deux lectures de blocs adjacents attendent pour le même périphérique de stockage Linux. Quelle couche peut les combiner avant que le pilote matériel soumette le travail ?
  1. La couche bloc générique des requêtes.
  2. La table des vecteurs d’interruption du périphérique.
  3. La table de réaffectation des secteurs du disque.
  4. Le mécanisme de projection des adresses virtuelles de l’application.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 3 sur 10

Les pistes sont numérotées de 0 à 99. La tête est à 30 et se dirige vers les numéros supérieurs, avec des requêtes en 10, 45 et 70. Quelle distance LOOK parcourt-il avant que les trois requêtes soient terminées ?
  1. 109 pistes
  2. 100 pistes
  3. 40 pistes
  4. 89 pistes
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 4 sur 10

Un hôte réécrit la page logique 27. La FTL place sa nouvelle version dans la page physique libre 93. Quel changement permet aux lectures suivantes de renvoyer la nouvelle version ?
  1. Effacer la page 27 indépendamment.
  2. Déplacer chaque page dans l’ordre physique.
  3. Renuméroter la page logique 27 en page 93.
  4. Modifier la correspondance entre pages logiques et physiques.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 5 sur 10

Un SSD prend 125 µs pour chaque lecture. Un programme attend la fin de chaque lecture avant de lancer la suivante, sans autre surcoût. Quel est son nombre approximatif d’opérations par seconde ?
  1. 125 IOPS
  2. 8 000 IOPS
  3. 80 000 IOPS
  4. 125 000 IOPS
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 6 sur 10

Le ramasse-miettes récupère un bloc de 100 pages contenant 60 pages valides. Il copie ces pages ailleurs, puis utilise l’espace libre net pour de nouvelles pages de l’hôte. Toutes les pages ont la même taille. Quelle amplification des écritures couvre les copies et les nouvelles écritures ?
  1. 1,5
  2. 0,6
  3. 2,5
  4. 4,0
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 7 sur 10

Une rangée contient les blocs de données 1010 et 0110 et la parité XOR 1100. Le disque contenant 0110 tombe en panne. Quel bloc permet de reconstruire les données manquantes ?
  1. 0110
  2. 1100
  3. 1010
  4. 0000
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 8 sur 10

Six disques de 3 To sont disponibles. Une grappe doit fournir au moins 12 To et résister à deux pannes de disque quelconques. Dans les modèles RAID à disques identiques, quelle organisation satisfait les deux exigences ?
  1. RAID-10 avec trois paires en miroir.
  2. RAID-1 utilisant deux des disques.
  3. RAID-5 utilisant les six disques.
  4. RAID-6 utilisant les six disques.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 9 sur 10

Quelle opération de maintenance lit et vérifie régulièrement les données auxquelles les applications accèdent parfois rarement ?
  1. La vérification périodique d’intégrité du stockage.
  2. Le surprovisionnement de la mémoire flash.
  3. La fusion des requêtes.
  4. Le regroupement des interruptions.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 10 sur 10

Une écriture envoie une paire correcte de données et de somme de contrôle au bloc 840 au lieu du bloc 480 prévu. Quelle vérification supplémentaire peut révéler la mauvaise destination lors de la lecture du bloc 840 ?
  1. Vérifier de nouveau la paire avec la même somme de contrôle.
  2. Comparer la vitesse de rotation indiquée.
  3. Comparer son étiquette d’adresse à l’adresse demandée.
  4. Attendre la sélection des deux copies miroir.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Série 3 : Répartis les requêtes et tiens compte du travail caché10 Questions Pratiques

Enregistre cette unité pour voir chaque réponse et t'entraîner sur chaque série.

Question 1 sur 10

Un pilote écrit un descripteur de commande en RAM, puis actionne un registre de notification MMIO. Pourquoi un pointeur volatile vers ce registre peut-il être insuffisant à lui seul ?
  1. Il ordonne les registres de ports, mais pas les registres mappés.
  2. Il protège le pointeur, mais pas le contenu du descripteur.
  3. Il ordonne les lectures du périphérique, mais pas ses écritures.
  4. Il ne garantit pas tout l’ordre requis des accès mémoire.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 2 sur 10

Un tampon utilisateur de trois pages occupe des pages physiques non adjacentes. Un pilote les a mappées pour le DMA. Que faut-il maintenir jusqu’à la fin de l’opération du périphérique ?
  1. L’application doit maintenir la scrutation par le processeur.
  2. Les pages sous-jacentes doivent rester épinglées et stables.
  3. Les pages physiques doivent recevoir des numéros adjacents.
  4. Le périphérique doit utiliser le pointeur utilisateur d’origine.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 3 sur 10

La tête d’un disque dur part de la piste 40 avec des requêtes en attente en 10, 44 et 47. Il utilise SSTF. Immédiatement après chaque fin d’opération, une nouvelle requête arrive sur la piste juste supérieure à celle de la tête. Quelles sont les trois premières requêtes servies ?
  1. 44, puis 45, puis 46.
  2. 44, puis 47, puis 48.
  3. 44, puis 47, puis 10.
  4. 44, puis 45, puis 47.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 4 sur 10

Un disque signale qu’une écriture est terminée après l’avoir placée dans un cache volatil. Quelle politique de cache cela décrit-il ?
  1. Un cache à écriture immédiate.
  2. Un cache à lecture anticipée.
  3. Un cache à écriture différée.
  4. Un cache à décalage de piste.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 5 sur 10

Une somme de contrôle de Fletcher initialise ses deux sommes à zéro et utilise le modulo 255. Quel couple obtient-on après les octets décimaux 100 et 200, en mettant à jour la première somme avant la seconde pour chaque octet ?
  1. (44 ; 144)
  2. (45 ; 145)
  3. (45 ; 90)
  4. (100 ; 45)
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 6 sur 10

Un SSD de 2 To est donné pour 1 460 TBW sur cinq ans. En utilisant 365 jours par an, quelle valeur DWPD cela implique-t-il ?
  1. 0,8 DWPD
  2. 2,0 DWPD
  3. 0,2 DWPD
  4. 0,4 DWPD
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 7 sur 10

Huit disques identiques supportent chacun 120 petites entrées-sorties physiques aléatoires par seconde. Dans le modèle idéal équilibré, combien de petites écritures logiques par seconde RAID-5 et RAID-6 peuvent-ils prendre en charge par lecture-modification-écriture ?
  1. RAID-5 : 240 ; RAID-6 : 160.
  2. RAID-5 : 480 ; RAID-6 : 320.
  3. RAID-5 : 120 ; RAID-6 : 120.
  4. RAID-5 : 960 ; RAID-6 : 960.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 8 sur 10

Une rangée à parité possède l’ancienne parité 1011. Un bloc de données passe de 0010 à 1101. Quelle est la nouvelle parité XOR ?
  1. 0110
  2. 1001
  3. 0100
  4. 1111
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 9 sur 10

Une somme de contrôle XOR couvre les octets 0x20 et 0x10. Le bit de poids faible des deux octets est inversé, ce qui donne 0x21 et 0x11. Qu’arrive-t-il à la somme de contrôle ?
  1. Elle passe de 0x30 à 0x32.
  2. Elle passe de 0x30 à 0x2E.
  3. Elle passe de 0x30 à 0x31.
  4. Elle reste égale à 0x30.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 10 sur 10

Une mise à jour confirmée du bloc 80 doit correspondre à la nouvelle somme de contrôle d’un parent validé. Une lecture renvoie les octets précédents avec leur ancienne somme de contrôle correspondante et l’étiquette d’adresse 80. Une copie miroir correspond au parent. Quelle copie faut-il renvoyer, qu’est-ce qui rejette la première copie et que faut-il réparer ?
  1. Renvoyer la première ; son étiquette d’adresse passe le contrôle ; réparer le miroir.
  2. Renvoyer le miroir ; le contrôle du parent rejette la première ; réparer la première.
  3. Renvoyer la première ; sa somme locale passe le contrôle ; réparer le parent.
  4. Renvoyer le miroir ; l’étiquette d’adresse rejette la première ; réparer l’étiquette.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Série 4 : Explique les compromis entre performances et intégrité10 Questions Pratiques

Enregistre cette unité pour voir chaque réponse et t'entraîner sur chaque série.

Question 1 sur 10

Un périphérique termine 240 000 requêtes par seconde. Chaque interruption coûte 4 µs de temps processeur. Des lots de quatre ajoutent au plus 12 µs de délai de notification ; des lots de huit ajoutent au plus 28 µs. Les limites sont de 0,30 cœur et de 20 µs de délai supplémentaire. Quelle politique respecte les deux limites ?
  1. Une interruption pour huit fins d’opération.
  2. Une interruption pour chaque fin d’opération.
  3. Une interruption pour quatre fins d’opération.
  4. Une interruption pour deux fins d’opération.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 2 sur 10

Dans une requête NVMe, que signale au contrôleur une écriture dans le registre de notification de la file de soumission ?
  1. Qu’un processus a déjà consommé son résultat.
  2. Qu’un fichier a atteint un stockage durable.
  3. Que tous les caches du processeur contiennent les nouvelles données.
  4. Que du travail soumis est disponible dans la file.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 3 sur 10

Un disque dur a un temps de recherche de 3 ms, une durée de rotation de 10 ms et un débit de transfert de 200 Mo/s. Ignore les succès de cache et la mise en file. Quelle est la plus petite taille d’une requête séquentielle unique qui donne un débit effectif d’au moins 100 Mo/s, en utilisant la latence de rotation initiale moyenne pour une position aléatoire ?
  1. 1,6 Mo
  2. 0,8 Mo
  3. 1,0 Mo
  4. 2,0 Mo
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 4 sur 10

Deux requêtes disque ont des temps de recherche et de rotation prévus de 1 ms et 7 ms pour la première, et de 3 ms et 1 ms pour la seconde. Dans quel ordre SPTF les sert-il ?
  1. Il sert la première, car 1 ms est le temps de recherche le plus court.
  2. Il sert la seconde, car 4 ms est le temps de positionnement le plus court.
  3. Il sert la première, car 7 ms est l’attente de rotation la plus longue.
  4. Il sert la seconde, car une recherche plus longue est toujours prioritaire.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 5 sur 10

Un SSD de 512 Gio utilise des pages logiques de 8 Kio et une entrée de correspondance de 8 octets par page. Si la table complète au niveau des pages reste en mémoire, quel espace occupe-t-elle ?
  1. 256 Mio
  2. 1 Gio
  3. 64 Mio
  4. 512 Mio
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 6 sur 10

Un SSD rempli ralentit pendant des réécritures aléatoires soutenues, bien que la vitesse de sa liaison soit inchangée. Quel travail interne peut expliquer cette baisse ?
  1. L’augmentation des attentes de rotation entre les pages flash.
  2. La copie des pages déjà invalides par le ramasse-miettes.
  3. La copie des pages valides par le ramasse-miettes.
  4. L’effacement des seules pages flash réécrites.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 7 sur 10

Une grappe redondante a perdu un disque membre, mais continue à fournir toutes les données demandées dans les limites de sa tolérance aux pannes. Dans quel état se trouve-t-elle ?
  1. En fonctionnement dégradé.
  2. En reconstruction terminée.
  3. En arrêt après panne complète.
  4. En fonctionnement sans entrelacement.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 8 sur 10

La reconstruction d’une grappe RAID-5 à quatre disques doit lire trois disques restants de 6 To. Pour illustrer le calcul, modélise une erreur de lecture pour 10¹⁵ bits. Quelle espérance du nombre d’erreurs obtient-on, et que signifie-t-elle ?
  1. 0,018 erreur ; une espérance selon le modèle de taux.
  2. 0,144 erreur ; une espérance selon le modèle de taux.
  3. 0,144 erreur ; exactement 14,4 % de risque de perte de données.
  4. 0,018 erreur ; exactement 1,8 % de risque de perte de données.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 9 sur 10

Deux disques membres d’un miroir renvoient des contenus différents pour le même bloc. Aucun ne signale d’erreur de lecture et aucune somme de contrôle attendue n’est disponible. Quelle conclusion est justifiée ?
  1. Le premier membre lu contient forcément les données les plus récentes.
  2. Le membre qui a le plus d’espace libre est forcément correct.
  3. La différence identifie le membre défectueux.
  4. Les copies diffèrent, mais aucune n’est vérifiée comme correcte.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 10 sur 10

Combien de niveaux de charge distincts une cellule flash QLC doit-elle reconnaître pour représenter ses quatre bits ?
  1. 16
  2. 8
  3. 4
  4. 32
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Série 5 : Choisis des conceptions sous plusieurs contraintes10 Questions Pratiques

Enregistre cette unité pour voir chaque réponse et t'entraîner sur chaque série.

Question 1 sur 10

Un registre de périphérique efface son indicateur d’état prêt chaque fois qu’il est lu. Pourquoi le pilote doit-il traiter les lectures répétées comme des opérations sur le périphérique ?
  1. Le registre contient toujours un bloc complet de données.
  2. Chaque lecture peut modifier l’état visible du périphérique.
  3. Chaque lecture renvoie nécessairement des octets en cache.
  4. Le registre ne peut être écrit que par DMA.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 2 sur 10

Pendant un afflux de paquets, un processeur reste occupé à traiter des interruptions tandis que l’application ne consomme presque aucun paquet. Quel changement agit sur ce mécanisme de verrouillage actif ?
  1. Déclencher une interruption distincte pour chaque paquet en attente.
  2. Garder le même rythme d’interruptions et bloquer chaque consommateur.
  3. Utiliser des lots bornés de scrutation sous forte charge.
  4. Faire déclencher une autre interruption par chaque paquet traité.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 3 sur 10

Un tampon est contigu en mémoire virtuelle sur deux pages physiques non adjacentes. Le pilote transmet le pointeur utilisateur à un périphérique DMA, puis libère les pages avant la fin de l’opération. Quelle correction traite les deux défauts ?
  1. Garder le pointeur utilisateur et vider le registre de commande.
  2. Mapper une page et ne copier que l’état de fin.
  3. Épingler les pages mais transmettre toujours le pointeur virtuel.
  4. Fournir des adresses mappées de dispersion-rassemblement et garder les pages épinglées.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 4 sur 10

Un périphérique garantit l’atomicité en cas de coupure de courant pour une unité de 4 Kio. Une écriture alignée de 8 Kio couvre deux unités de ce type et est confirmée dans un cache volatil à écriture différée. Que peut-on conclure en cas de coupure de courant immédiate ?
  1. Ni l’atomicité de toute la mise à jour de 8 Kio ni sa persistance ne sont garanties.
  2. Toute la mise à jour de 8 Kio est atomique car les deux unités sont alignées.
  3. Toute l’écriture est durable car la confirmation est déjà arrivée.
  4. Seule la seconde unité de 4 Kio peut conserver son ancien contenu.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 5 sur 10

Quel processus physique limite principalement l’endurance en programmation-effacement de la mémoire NAND ?
  1. Les lectures répétées comptent toujours comme des cycles d’effacement complets.
  2. Chaque effacement supprime définitivement une position de bit stockée.
  3. Les cycles de programmation-effacement répétés endommagent les cellules flash.
  4. Les contrôles ECC répétés consomment le budget d’écriture de la cellule.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 6 sur 10

Une grappe possède une table de bits d’intention d’écriture, mais aucun journal des nouvelles données ou de la parité. Quelle information de récupération la table fournit-elle après une mise à jour interrompue ?
  1. Le nouveau contenu exact prévu pour chaque bloc concerné.
  2. Les zones à vérifier et à resynchroniser.
  3. L’identité de chaque disque de données silencieusement corrompu.
  4. Les valeurs de parité manquantes pour chaque rangée incomplète.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 7 sur 10

Une grappe RAID-10 de six disques possède les paires (0 ; 1), (2 ; 3) et (4 ; 5). Le disque 2 est en panne. Chaque disque en bon état a un débit de lecture aléatoire R. Quelle seconde panne préserve toutes les données, et quel débit global idéal de lecture aléatoire reste-t-il ?
  1. Le disque 3 tombe en panne ; il reste 4R.
  2. Le disque 4 tombe en panne ; il reste 3R.
  3. Le disque 3 tombe en panne ; il reste 3R.
  4. Le disque 4 tombe en panne ; il reste 4R.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 8 sur 10

Une grappe RAID-0 possède quatre disques et des bandes de trois blocs. Les numéros de disque et les déplacements locaux commencent à zéro. Où se trouve le bloc logique 29 ?
  1. Disque 1, déplacement 8.
  2. Disque 1, déplacement 7.
  3. Disque 3, déplacement 6.
  4. Disque 2, déplacement 8.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 9 sur 10

Quatre disques de 8 To doivent fournir 16 To, résister à deux pannes quelconques de disques membres et permettre la reconstruction complète d’un disque de remplacement. Le débit d’écriture sur ce dernier ne peut pas dépasser 160 Mo/s. Quels niveau et temps minimal optimiste conviennent ?
  1. RAID-10 ; environ 13,9 heures.
  2. RAID-6 ; environ 6,9 heures.
  3. RAID-6 ; environ 13,9 heures.
  4. RAID-5 ; environ 13,9 heures.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 10 sur 10

Une lecture en miroir échoue à la vérification de sa somme de contrôle attendue sur le disque A. Le disque B fournit une copie qui réussit la vérification. Que doit faire un système à autoréparation ?
  1. Renvoyer les données de A et enregistrer seulement la différence de somme de contrôle.
  2. Renvoyer les données de B et les utiliser pour réparer la copie de A.
  3. Rejeter les deux copies parce que la première lecture a échoué.
  4. Réécrire B à partir de A parce que A a été sélectionné en premier.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Tu bloques sur ton propre exercice ? Aide aux Devoirs

Mots-Clés

103 Mots-Clés, chacun avec sa définition

A

Accès direct à la mémoire (DMA)
L’accès direct à la mémoire (DMA) transfère des données entre un périphérique et la mémoire principale au moyen du matériel, évitant au processeur de copier chaque mot de données utiles.
L’accès direct à la mémoire (DMA) permet au processeur d’effectuer des calculs pendant qu’un contrôleur remplit un tampon préparé en mémoire.
Accès séquentiel
L’accès séquentiel lit ou écrit des blocs proches dans l’ordre, permettant à un disque dur de répartir le coût de positionnement sur un long transfert.
L’accès séquentiel peut approcher le débit de transfert soutenu du disque dur lorsque la requête est assez grande.
Adresse de bloc logique (LBA)
Une adresse de bloc logique (LBA) est un numéro de secteur dans le tableau d’un périphérique de stockage visible par l’hôte, indépendamment de son placement physique caché sur le support.
Le système de fichiers demande une adresse de bloc logique (LBA) sans désigner de plateau ni de piste.
Amplification des écritures
L’amplification des écritures est le rapport entre les octets programmés en interne dans la mémoire flash et les octets écrits par l’hôte, y compris le travail de déplacement interne.
L’amplification des écritures augmente lorsque des mises à jour soutenues imposent la copie de nombreuses pages valides par le ramasse-miettes.
Attente hybride
L’attente hybride effectue une scrutation pendant un court instant, puis bloque le processus en attendant une interruption si l’opération n’est pas terminée, afin de s’adapter à des temps de fin variables.
L’attente hybride traite immédiatement une réponse rapide sans attendre activement pendant un long délai du périphérique.
Autoréparation
L’autoréparation répare une copie stockée défectueuse à l’aide d’un contenu redondant qui a d’abord été vérifié par rapport aux données attendues.
Un système de fichiers en miroir effectue une autoréparation après avoir trouvé une autre copie valide à la suite d’un échec de somme de contrôle.

B

Bloc d’effacement
Un bloc d’effacement est le groupe de pages flash réinitialisées ensemble par une opération d’effacement, généralement bien plus grand que l’unité de programmation qu’est la page.
Le ramasse-miettes copie les pages valides hors d’un bloc d’effacement avant de le réinitialiser pour de futures programmations.

C

C-LOOK
C-LOOK sert les requêtes dans un seul sens et revient entre les requêtes en attente situées aux extrémités, évitant de parcourir les bords physiques inutilisés du disque.
C-LOOK revient à la requête en attente de numéro le plus bas sans servir de requêtes pendant le retour.
C-SCAN
C-SCAN sert les requêtes dans un seul sens et revient au départ sans servir, donnant aux différentes positions un cycle de service plus uniforme.
Le trajet de retour de C-SCAN déplace toujours la tête et doit être inclus dans le déplacement total.
Cache à écriture différée
Un cache à écriture différée confirme les écritures dès leur acceptation dans le cache, permettant de signaler leur fin avant que les octets n’atteignent le support de stockage persistant.
Un cache volatil à écriture différée peut perdre une mise à jour confirmée si l’alimentation disparaît avant son vidage.
Code correcteur d’erreurs (ECC)
Un code correcteur d’erreurs (ECC) stocke des informations redondantes capables de détecter et de corriger certains motifs d’erreurs de bits dans les limites de sa capacité de correction.
Un disque signale un secteur illisible lorsque son code correcteur d’erreurs (ECC) ne peut pas récupérer les bits.
Collision de sommes de contrôle
Une collision de sommes de contrôle se produit lorsque des entrées différentes donnent la même somme de contrôle, permettant à certains contenus modifiés de passer une comparaison avec la valeur attendue.
Deux inversions de bits qui s’annulent créent une collision de sommes de contrôle pour un simple contrôle XOR par octet.
Contrôle de redondance cyclique (CRC)
Un contrôle de redondance cyclique (CRC) stocke un reste issu d’une division polynomiale par XOR, offrant une forte capacité de détection de certains motifs d’erreurs en rafale.
Un contrôle de redondance cyclique (CRC) de trois bits utilise un générateur de degré trois et un reste de trois bits.
Corruption silencieuse
Une corruption silencieuse se produit lorsqu’une lecture sur un stockage renvoie un contenu incorrect sans signaler d’erreur, ce qui exige une vérification indépendante pour la détecter.
Un simple miroir peut renvoyer des données affectées par une corruption silencieuse lorsqu’il lit une copie défectueuse sans vérifier son contenu.
Couche bloc
La couche bloc met les requêtes de stockage en file et peut les fusionner ou les ordonnancer avant de transmettre les opérations au pilote matériel approprié.
La couche bloc combine deux lectures adjacentes afin que le pilote puisse soumettre une seule requête plus grande.
Couche de traduction flash (FTL)
La couche de traduction flash (FTL) est un micrologiciel de SSD qui associe les adresses logiques de l’hôte aux pages flash et gère le placement, l’effacement et l’usure.
La couche de traduction flash (FTL) redirige une réécriture vers un espace libre sans modifier la LBA de l’hôte.
Cycle de programmation-effacement
Un cycle de programmation-effacement (P/E) est une utilisation des cellules flash comprenant une programmation et un effacement, qui contribue à leur usure et réduit progressivement leur capacité à conserver leur charge de manière fiable.
La répartition de l’usure distribue les cycles P/E afin qu’un petit ensemble de blocs chauds ne s’use pas en premier.
Cylindre
Un cylindre est l’ensemble des pistes d’un disque dur situées à la même distance de l’axe sur les surfaces des plateaux et atteintes à une même position du bras commun des têtes.
Changer de surface dans un cylindre ne nécessite pas de déplacer le bras vers une autre position radiale.

D

Débit
Le débit est la quantité de travail terminée par unité de temps, par exemple en Mo/s ou en IOPS ; il diffère du temps pris par une requête individuelle.
Davantage de copies en miroir disponibles pour la lecture peuvent augmenter le débit alors qu’une lecture de bloc unique prend toujours à peu près le même temps.
Décalage de piste
Le décalage de piste décale les positions des secteurs entre pistes adjacentes afin qu’une lecture séquentielle puisse continuer après le temps nécessaire au changement de piste.
Le décalage de piste empêche le secteur séquentiel suivant de passer juste avant que la tête n’atteigne sa piste.
Disque de secours à chaud
Un disque de secours à chaud est un disque installé et inutilisé, disponible pour servir rapidement de destination de reconstruction après la panne d’un membre de la grappe.
Un disque de secours à chaud réduit le délai de remplacement, mais laisse à effectuer le travail réel de copie pour la reconstruction.
DWPD
DWPD exprime le volume quotidien nominal d’écriture par l’hôte en multiples de la capacité totale du disque sur la période de garantie.
Un SSD de 2 To donné pour 0,5 DWPD permet en moyenne nominale 1 To d’écritures de l’hôte par jour de garantie.

E

Enregistrement par zones
L’enregistrement par zones place davantage de secteurs sur les pistes extérieures plus longues d’un disque dur, ce qui augmente le nombre d’octets transférés par tour par rapport aux pistes intérieures plus courtes.
L’enregistrement par zones explique pourquoi une longue lecture séquentielle peut ralentir lorsqu’elle se rapproche des pistes intérieures.
Entrées-sorties mappées en mémoire (MMIO)
Les entrées-sorties mappées en mémoire (MMIO) attribuent aux registres des périphériques des adresses dans l’espace d’adressage physique, permettant d’y accéder par des lectures et écritures contrôlées.
Le pilote NVMe utilise les entrées-sorties mappées en mémoire (MMIO) pour écrire dans le registre de notification d’une file après avoir préparé une commande.
Entrées-sorties par ports
Les entrées-sorties par ports accèdent aux registres des périphériques par un espace d’adressage de ports distinct, à l’aide d’instructions spéciales du processeur comme in et out sur x86.
Un noyau x86 peut limiter les processus autorisés à exécuter les instructions utilisées pour les entrées-sorties par ports.
Entrées-sorties programmées (PIO)
Les entrées-sorties programmées (PIO) transfèrent les données utiles entre la mémoire et un registre de périphérique au moyen d’instructions du processeur, qui intervient à chaque transfert.
Les entrées-sorties programmées (PIO) nécessitent de nombreux accès aux registres lorsque les données utiles comprennent un grand bloc de données.
Entrelacement des données
L’entrelacement des données répartit des bandes logiques consécutives entre les disques, permettant du travail en parallèle ; la présence de redondance dépend de l’organisation RAID.
RAID-0 utilise l’entrelacement des données pour augmenter le débit global sans conserver d’informations de récupération supplémentaires.
Erreur de lecture irrécupérable (URE)
Une erreur de lecture irrécupérable (URE) est une erreur de lecture que le disque ne peut pas corriger ; un taux d’URE publié fixe une limite d’erreurs par rapport au nombre de bits lus.
Une URE sur un disque restant pendant une reconstruction RAID-5 peut laisser sa rangée avec trop peu d’informations de récupération.
Erreur de secteur latente (LSE)
Une erreur de secteur latente (LSE) est une impossibilité de lire un secteur, découverte lors de son accès et signalée par le disque après l’échec de la correction interne.
La vérification périodique d’intégrité peut révéler une erreur de secteur latente (LSE) dans des données qui n’ont pas été lues depuis des mois.
Espérance du nombre d’erreurs
L’espérance du nombre d’erreurs est le nombre moyen d’erreurs prévu pour un volume de lecture selon un modèle de taux choisi ; elle n’est pas en elle-même une probabilité de panne.
Doubler le volume de lecture modélisé double l’espérance du nombre d’erreurs lorsque le taux d’erreur est fixe.
Exposition au risque pendant la reconstruction
L’exposition au risque pendant la reconstruction correspond à la période et à la charge de travail durant lesquelles une grappe dispose d’une redondance réduite pendant la restauration des données manquantes sur un disque de remplacement.
Un disque plus grand peut prolonger l’exposition au risque pendant la reconstruction même lorsque le disque de remplacement est disponible immédiatement.

É

Écriture de bande complète
Une écriture de bande complète remplace tous les blocs de données d’une rangée à parité, permettant de calculer la nouvelle redondance sans lire l’ancien contenu de la rangée.
Un contrôleur peut combiner un lot complet en une écriture de bande complète pour éviter les lectures de l’ancienne parité.
Écriture déchirée
Une écriture déchirée est une mise à jour interrompue qui laisse certaines unités indépendamment atomiques avec un nouveau contenu et d’autres avec leur contenu précédent.
Une mise à jour de 8 Kio couvrant deux unités atomiques de 4 Kio peut devenir une écriture déchirée après une coupure de courant.
Écriture mal dirigée
Une écriture mal dirigée stocke des données à une destination autre que le disque ou le bloc prévu, pouvant laisser un bloc périmé et en écraser un autre.
Une étiquette d’adresse peut révéler une écriture mal dirigée même lorsque les données renvoyées correspondent à leur somme de contrôle.
Écriture perdue
Une écriture perdue est une mise à jour signalée comme terminée qui n’atteint pas le stockage, laissant un ancien contenu qui peut conserver une somme de contrôle locale valide.
Une somme de contrôle actuelle dans un enregistrement parent peut rejeter le contenu périmé du bloc fils laissé par une écriture perdue.
Étiquette d’adresse
Une étiquette d’adresse enregistre l’emplacement auquel un bloc appartient, permettant au lecteur de comparer l’identifiant renvoyé à la destination demandée.
Une étiquette d’adresse pour le bloc 720 est incompatible avec une lecture demandant le bloc 270.

F

Force Unit Access (FUA)
Force Unit Access (FUA) est un attribut de requête d’écriture qui exige que les données concernées atteignent un stockage persistant avant que la fin de l’opération soit signalée.
Un système de fichiers peut utiliser Force Unit Access (FUA) lorsque les données écrites doivent être durables à la fin de l’opération.

G

Gestionnaire d’interruption
Un gestionnaire d’interruption est un code du noyau qui répond à une notification matérielle, vérifie l’événement et effectue le travail nécessaire à la fin de l’opération.
Le gestionnaire d’interruption remet à l’état prêt le processus qui attendait une lecture terminée, afin que l’ordonnanceur du processeur puisse le sélectionner.

H

Hachage cryptographique
Un hachage cryptographique associe à des données une empreinte de taille fixe conçue pour résister aux attaques délibérées par collision ainsi qu’aux changements accidentels.
Un hachage cryptographique ne détecte une modification malveillante que si l’empreinte attendue est elle-même fiable.

I

Intégrité de bout en bout
L’intégrité de bout en bout vérifie le contenu près de son consommateur final sur l’ensemble du parcours des données, détectant des défauts au-delà de ceux couverts par une protection limitée au support.
Une somme de contrôle du système de fichiers assure l’intégrité de bout en bout sur davantage de composants que l’ECC interne du disque.
Interface de périphérique
Une interface de périphérique est l’ensemble des registres et des commandes par lesquels les logiciels système contrôlent un matériel sans connaître sa conception interne.
Un pilote peut utiliser la même interface de périphérique même si un contrôleur plus récent possède un micrologiciel différent.
IOMMU
Une IOMMU traduit les adresses mémoire visibles par les périphériques et applique des restrictions d’accès, contribuant à isoler les périphériques DMA des zones de mémoire physique qui ne leur sont pas destinées.
L’IOMMU peut limiter un périphérique affecté directement à la mémoire attribuée à sa machine virtuelle.
IOPS
Les IOPS mesurent le nombre d’opérations d’entrée-sortie terminées par seconde ; leur signification dépend de la taille des requêtes, de la charge de travail, de la concurrence et de la proportion de lectures et d’écritures.
Un test de lectures aléatoires une à une indique des IOPS pour une charge très différente de celle d’un test avec une file profonde.

L

Latence de rotation
La latence de rotation est l’attente du passage d’un secteur demandé sous la tête d’un disque dur après son positionnement ; elle vaut en moyenne un demi-tour pour des secteurs aléatoires.
À 10 000 tr/min, la latence de rotation moyenne pour une position aléatoire est de 3 ms, car un tour complet prend 6 ms.
Lecture-modification-écriture
La lecture-modification-écriture met à jour la parité en lisant les anciennes données et la redondance, en calculant leurs remplacements, puis en écrivant les nouvelles données et la nouvelle redondance.
Une lecture-modification-écriture RAID-5 utilise deux lectures suivies de deux écritures pour une petite mise à jour logique.
Liste de dispersion-rassemblement
Une liste de dispersion-rassemblement décrit des zones de transfert distinctes par des couples d’adresses et de longueurs, permettant à une requête de couvrir des zones mémoire non adjacentes.
Un pilote construit une liste de dispersion-rassemblement pour un tampon reposant sur plusieurs pages physiques séparées.
LOOK
LOOK balaie les requêtes, mais inverse le sens à la dernière requête en attente dans sa direction, évitant le déplacement inutile de ce point jusqu’au bord du disque.
LOOK fait demi-tour à la piste 110 lorsqu’aucune requête supérieure ne reste, même si le disque s’étend jusqu’à 199.

M

Maître de bus
Un maître de bus est un périphérique ou un contrôleur qui lance des transferts sur l’interconnexion, comme un moteur DMA qui lit ou écrit la mémoire principale.
Un SSD agit comme maître de bus lorsqu’il écrit un bloc demandé directement dans le tampon mappé.
Mémoire flash NAND
La mémoire flash NAND est une mémoire non volatile qui représente les bits par des niveaux de charge dans des cellules et organise les accès en pages au sein de blocs d’effacement plus grands.
La mémoire flash NAND conserve son contenu sans alimentation, mais nécessite un espace effacé avant de pouvoir programmer une page.
Micrologiciel
Un micrologiciel est un logiciel exécuté dans le contrôleur d’un périphérique, qui met en œuvre son comportement interne et prend en charge l’interface matérielle exposée.
Le micrologiciel d’un SSD gère le placement dans la mémoire flash tandis que l’hôte continue d’émettre des requêtes de blocs ordinaires.
Mise en miroir
La mise en miroir conserve des copies des mêmes données logiques sur des disques membres distincts, permettant la lecture de l’une ou l’autre copie et exigeant que les deux reçoivent chaque mise à jour.
La mise en miroir permet à une copie saine vérifiée de fournir les données lorsque son partenaire est en panne.
Mode dégradé
Le mode dégradé est la poursuite du service par une grappe redondante après des pannes restant dans les limites de sa tolérance, avant la reconstruction de la redondance manquante.
Une grappe RAID-5 en mode dégradé peut lire les données, mais ne peut pas tolérer une autre panne complète de disque.
Modèle de panne par arrêt
Le modèle de panne par arrêt suppose qu’un disque fonctionne correctement ou tombe complètement en panne de façon détectable, ce qui permet de connaître les emplacements des données manquantes.
Le modèle de panne par arrêt permet à une grappe à parité d’identifier le bloc qu’elle doit reconstruire après la perte d’un disque membre.
Modèle de panne partielle
Le modèle de panne partielle permet à un périphérique de rester largement fonctionnel alors que certains blocs sont illisibles ou renvoient silencieusement des données incorrectes.
Le modèle de panne partielle explique pourquoi un disque en ligne peut tout de même avoir des blocs nécessitant une récupération.
MSI-X
MSI-X est un mécanisme PCIe d’interruption signalée par message qui fournit plusieurs vecteurs, permettant à un périphérique de diriger différentes notifications indépendamment.
Un contrôleur NVMe peut utiliser des vecteurs MSI-X pour envoyer les fins d’opération des files aux cœurs de processeur qui les traitent.

N

NVMe
NVMe est une interface de commandes de stockage conçue pour la mémoire non volatile, qui prend en charge de nombreuses files de soumission et de complétion en mémoire.
Les paires de files NVMe permettent à différents cœurs de processeur de soumettre des requêtes flash avec moins de contention partagée.

O

Ordonnancement anticipatif
L’ordonnancement anticipatif attend brièvement une probable requête ultérieure proche au lieu de déplacer immédiatement la tête vers d’autres requêtes en attente.
L’ordonnancement anticipatif peut éviter un déplacement aller-retour de la tête lorsqu’un processus demande bientôt un autre bloc.

P

Page de mémoire flash
Une page de mémoire flash est une unité lue ou programmée dans un bloc d’effacement, généralement de plusieurs Kio, dont la réutilisation dépend de l’état d’effacement du bloc.
Une page de mémoire flash contenant une ancienne version ne peut pas simplement recevoir la nouvelle version au même emplacement.
Page épinglée
Une page épinglée est une page maintenue en mémoire et stable tant qu’une opération comme le DMA peut encore accéder à son emplacement physique.
Une page épinglée ne peut pas être réutilisée pour un autre tampon avant la fin du transfert actif du périphérique.
Parité XOR
La parité XOR est le résultat du OU exclusif bit à bit des blocs de données d’une rangée, permettant de reconstruire un bloc lorsque son emplacement manquant est connu.
La parité XOR et les blocs de données restants permettent de récupérer la valeur stockée sur un disque membre visiblement en panne.
Performances en régime permanent
Les performances en régime permanent décrivent le comportement soutenu d’un SSD une fois que les écritures continues et le ramasse-miettes ont remplacé la phase initiale du disque vide.
Les performances en régime permanent d’un disque rempli peuvent être inférieures à sa vitesse d’écriture à la sortie de la boîte.
Périphérique en mode bloc
Un périphérique en mode bloc fournit le stockage sous forme de blocs adressés qui peuvent être lus ou écrits indépendamment par l’interface de requêtes en mode bloc du noyau.
Linux expose un espace de noms NVMe comme un périphérique en mode bloc qu’un système de fichiers peut lire et écrire.
Périphérique en mode caractère
Un périphérique en mode caractère expose une interface orientée flux, comme celle d’un terminal ou d’un port série, au lieu d’un tableau de blocs de stockage adressés.
Un terminal en mode caractère échange des octets sans offrir un adressage par secteurs comparable à celui d’un disque.
Perturbation de lecture
Une perturbation de lecture est une modification de la charge stockée dans la mémoire flash, causée par des lectures répétées et pouvant augmenter les erreurs de bits dans les cellules voisines.
Les mécanismes ECC et de rafraîchissement du contrôleur aident à gérer les erreurs que la perturbation de lecture peut créer.
Pilote de périphérique
Un pilote de périphérique met en œuvre les commandes propres au matériel et le traitement des fins d’opération derrière une interface utilisable par le reste du système d’exploitation.
Un nouveau pilote de périphérique permet à la couche bloc existante de soumettre des requêtes à un autre contrôleur.
Piste
Une piste est un chemin circulaire de données magnétiques sur une surface de plateau de disque dur, divisé en secteurs qui passent sous une tête lorsque le plateau tourne.
Passer à une autre piste nécessite de repositionner le bras avant de pouvoir lire les secteurs voulus.
Plus court déplacement d’abord (SSTF)
La politique plus court déplacement d’abord (SSTF) choisit la requête en attente dont la recherche est la plus courte, réduisant les déplacements proches mais risquant de reporter indéfiniment les requêtes éloignées.
SSTF choisit à répétition de nouvelles requêtes proches pendant qu’une requête plus ancienne sur une piste éloignée attend.
Plus court temps de positionnement d’abord (SPTF)
La politique plus court temps de positionnement d’abord (SPTF) choisit la requête dont la somme prévue du temps de recherche et de la latence de rotation est la plus courte, à l’aide d’informations de positionnement normalement disponibles dans le disque.
SPTF peut préférer une piste plus éloignée lorsque son secteur passera plus tôt sous la tête.
Premier arrivé, premier servi (FCFS)
La politique premier arrivé, premier servi (FCFS) sert les requêtes disque dans leur ordre d’arrivée, préservant cet ordre tout en pouvant entraîner de grands déplacements de tête entre des requêtes consécutives éloignées.
FCFS peut envoyer la tête d’un bout à l’autre du disque à répétition lorsque les requêtes successives alternent entre les bords.
Profondeur de file
La profondeur de file est le nombre de requêtes d’entrée-sortie en attente ; elle peut permettre d’exploiter le parallélisme d’un SSD, mais aussi ajouter de l’attente lorsque la capacité de service est saturée.
Augmenter la profondeur de file permet à plusieurs canaux flash de traiter des lectures indépendantes en même temps.

R

RAID
Le RAID combine plusieurs disques en un périphérique logique de stockage dont l’organisation détermine l’espace utilisable, les performances en parallèle et la tolérance aux pannes de disque.
Un système de fichiers peut lire une interface RAID en mode bloc sans savoir quel disque physique membre contient les données.
RAID-0
RAID-0 entrelace les données entre les disques membres sans redondance, utilise toute leur capacité brute, mais perd des données de la grappe à la panne de n’importe quel membre.
RAID-0 convient aux résultats temporaires qui peuvent être recréés si un disque de stockage tombe en panne.
RAID-4
RAID-4 entrelace les données tout en conservant la parité XOR sur un disque dédié, qui devient un goulot d’étranglement partagé pour les petites écritures de toute la grappe.
Ajouter des disques de données à RAID-4 ne supprime pas le travail de lecture et d’écriture du disque de parité pour chaque mise à jour.
RAID-5
RAID-5 répartit un bloc de parité par rangée entre les disques membres, conservant une tolérance à la panne d’un membre tout en distribuant le travail de mise à jour de la parité.
Une grappe RAID-5 de six disques membres offre une capacité de données équivalente à cinq disques et tolère une panne.
RAID-6
RAID-6 stocke deux valeurs de redondance indépendantes par rangée, tolérant deux pannes quelconques de disques membres au prix de la capacité de deux disques.
Une petite mise à jour RAID-6 doit maintenir les deux valeurs de redondance, ce qui augmente le travail d’entrées-sorties physiques par rapport à RAID-5.
RAID-10
RAID-10 entrelace les données entre des paires en miroir, utilise la moitié de la capacité brute et résiste aux pannes tant que chaque paire conserve une copie fonctionnelle.
Une grappe RAID-10 de six disques peut résister à trois pannes si chacune touche une paire en miroir différente.
Ramasse-miettes
Le ramasse-miettes récupère de l’espace sur un SSD en déplaçant les pages valides d’un bloc d’effacement, en mettant à jour leurs correspondances et en effaçant le bloc source.
Le ramasse-miettes coûte moins cher lorsque le bloc choisi contient peu de pages valides à préserver.
Reconstruction
Une reconstruction restaure le contenu d’un disque membre manquant sur un disque de remplacement en copiant un miroir ou en reconstruisant les données à partir des informations restantes.
Le trafic au premier plan peut prolonger une reconstruction, car les requêtes des applications concurrencent les entrées-sorties de récupération.
Reconstruction en mode dégradé
La reconstruction en mode dégradé retrouve les données demandées à partir de la redondance restante lorsque le disque membre qui les stocke normalement manque.
Une reconstruction RAID-5 en mode dégradé lit plusieurs blocs restants de la rangée au lieu d’un seul bloc de données.
Registre d’état
Un registre d’état indique l’état actuel d’un périphérique, par exemple s’il est prêt, actif, a terminé ou présente une erreur, afin que les logiciels système puissent le consulter.
Le pilote vérifie le registre d’état avant de soumettre une commande à un contrôleur occupé.
Registre de commande
Un registre de commande reçoit une demande d’opération destinée au périphérique et peut lancer le travail matériel dès que le pilote y écrit la commande requise.
Le pilote fournit les données de sortie avant d’écrire dans le registre de commande qui démarre le transfert.
Registre de notification
Un registre de notification est un registre de contrôle de périphérique dans lequel le logiciel écrit pour signaler à un contrôleur un changement de l’état de soumission ou de complétion d’une file.
Après avoir placé une commande en mémoire, le pilote écrit dans le registre de notification de soumission.
Regroupement des interruptions
Le regroupement des interruptions rassemble plusieurs événements de périphérique en un nombre réduit d’interruptions, ce qui diminue le surcoût des notifications pour le processeur tout en ajoutant un certain délai de fin.
Le regroupement des interruptions permet à une seule exécution du gestionnaire de traiter les fins de plusieurs requêtes de stockage.
Rendement de capacité
Le rendement de capacité est la capacité utilisable pour les données divisée par la capacité brute des disques membres ; il montre la part d’espace consacrée à la redondance par une organisation.
Le rendement de capacité de RAID-5 augmente avec le nombre de disques membres, tandis que la récupération doit lire davantage de données restantes.
Répartition de l’usure
La répartition de l’usure distribue les cycles d’effacement flash entre les blocs, en déplaçant parfois des données inchangées afin que les blocs peu utilisés puissent rejoindre les blocs disponibles pour l’écriture.
La répartition de l’usure peut déplacer des données froides même lorsque l’hôte n’a demandé aucune modification de ces données.

S

SCAN
SCAN sert les requêtes pendant un balayage vers un bord du disque, puis inverse le sens, répartissant le service par des passages répétés sur les pistes.
SCAN continue jusqu’au bord même lorsque sa dernière requête en attente dans cette direction se trouve avant celui-ci.
Scrutation
La scrutation vérifie à plusieurs reprises l’état d’un périphérique pour savoir s’il est prêt ou s’il a terminé, permettant une observation immédiate au prix du travail du processeur pendant que le périphérique reste occupé.
Une brève boucle de scrutation peut coûter moins cher que le blocage et le réveil pour une opération de stockage très rapide.
Somme de contrôle
Une somme de contrôle est une valeur compacte calculée à partir de données et comparée à une valeur attendue lors de la lecture afin de détecter des changements dans le contenu protégé.
Le lecteur recalcule une somme de contrôle avant de déterminer si un bloc stocké correspond à la valeur attendue.
Somme de contrôle additive
Une somme de contrôle additive additionne des éléments de données modulo une plage fixe, détectant à faible coût certains changements tout en restant insensible à l’ordre des éléments.
Une somme de contrôle additive de huit bits réduit un total de 300 modulo 256 à la valeur 44.
Somme de contrôle dans le pointeur parent
Une somme de contrôle dans le pointeur parent stocke la somme de contrôle attendue d’un bloc fils dans le parent qui le référence, séparant ainsi la valeur attendue du bloc fils vérifié.
Une somme de contrôle dans le pointeur parent peut rejeter une ancienne version du bloc fils même lorsque sa somme de contrôle locale concorde.
Somme de contrôle de Fletcher
Une somme de contrôle de Fletcher maintient une somme des données et une somme cumulée de cette somme, ajoutant une sensibilité à la position à un contrôle d’intégrité peu coûteux.
La seconde composante de la somme de contrôle de Fletcher peut changer lorsque les deux premiers octets sont échangés.
Stockage hiérarchisé
Le stockage hiérarchisé place les données fréquemment consultées sur un stockage plus rapide et les données moins actives sur une capacité moins coûteuse afin de concilier temps d’accès et coût.
Le stockage hiérarchisé peut conserver un index actif sur des SSD tandis que de grands fichiers rarement lus restent sur des disques durs.
Surprovisionnement
Le surprovisionnement réserve une capacité flash hors de l’usage de l’hôte, donnant au SSD davantage d’espace libre pour le ramasse-miettes et les autres tâches de gestion interne.
Le surprovisionnement permet au ramasse-miettes de différer la récupération de blocs qui nécessiteraient de copier de nombreuses pages valides.

T

Table de correspondance
Une table de correspondance enregistre l’emplacement physique dans la mémoire flash qui stocke actuellement chaque unité logique associée, permettant aux mises à jour de déplacer les données de façon transparente.
La table de correspondance pointe vers la nouvelle page après qu’une mise à jour écrite ailleurs a invalidé l’ancienne page.
Taille de bande
La taille de bande est la quantité consécutive de données d’une grappe placée sur un disque avant que le placement ne passe au membre suivant de la rangée.
Une taille de bande de deux blocs place deux blocs logiques voisins sur le même disque avant de passer au suivant.
TBW
TBW est une valeur d’endurance indiquant le total de téraoctets écrits par l’hôte dans les conditions précisées, distinct des programmations internes de la mémoire flash.
Une valeur de 900 TBW compte le volume écrit par l’hôte même lorsque le ramasse-miettes ajoute des écritures flash.
Temps de recherche
Le temps de recherche est la durée nécessaire au bras d’un disque dur pour déplacer et stabiliser les têtes sur la piste demandée, avant l’attente de rotation.
Pour une petite lecture aléatoire, le temps de recherche peut largement dépasser le temps nécessaire au transfert des données utiles.
Temps de transfert
Le temps de transfert est la durée nécessaire pour transférer les données utiles une fois accessibles ; il se calcule en divisant le nombre d’octets par le débit de transfert applicable.
Une grande requête séquentielle consacre une part bien plus importante de son temps de service au transfert qu’une très petite lecture.
TRIM
TRIM indique à un SSD que des plages logiques ne contiennent plus de données nécessaires, permettant au contrôleur de considérer leur ancien contenu physique comme invalide.
TRIM après la suppression d’un fichier peut empêcher le contrôleur de copier des pages devenues inutiles pendant la récupération de l’espace.
Trou d’écriture
Le trou d’écriture est une incohérence de parité causée par une mise à jour interrompue sur plusieurs disques, qui laisse des données et une redondance de versions différentes.
Un journal de mises à jour protégé et adapté aide à empêcher le trou d’écriture de compromettre une récupération ultérieure.

V

Vérification par relecture après écriture
La vérification par relecture après écriture compare une nouvelle lecture au nouveau contenu prévu, en ajoutant des entrées-sorties pour vérifier que la mise à jour attendue a été stockée.
La vérification par relecture après écriture doit atteindre le résultat stocké au lieu de simplement relire le cache volatil.
Vérification périodique d’intégrité
La vérification périodique d’intégrité lit et vérifie les données stockées de manière proactive, révélant les défauts latents tant que la redondance restante peut encore permettre une réparation.
Une vérification périodique d’intégrité mensuelle peut contrôler les données froides bien avant qu’une application ne les demande de nouveau.
Verrouillage actif
Le verrouillage actif est une activité continue du système avec peu de progression utile, comme un traitement excessif des interruptions qui empêche les consommateurs de paquets de s’exécuter.
Un afflux de paquets peut provoquer un verrouillage actif même lorsque le taux d’utilisation du processeur reste proche de cent pour cent.

À propos de cette unité

Par StudeliSignaler une erreur

Crée ton propre Matériel d'Étude

Transforme tes notes, diapos et documents en Guides d'Étude, Questions Pratiques, Flashcards et 6 autres outils.

Commencer