Solid State Disk
Fonctionnement en pratique
SSD en pratique
Root » Serveurs » Electro-ménager » Ordinateurs » Disques durs » SSD » Fonctionnement en pratique

Disque dur classique (HDD)
Solid State Disk (SSD)
L'unité de stockage de base sur un disque dur est le bloc de 512 bytes. Le disque travaille lui-même avec des cylindres, des têtes et des secteurs, mais le système d'exploitation ne s'interesse plus à la géométrie du disque. Le firmware du disque dur transforme le bloc demandé en adresse physique. Les disques les plus récents travaillent maintenant avec des blocs de 4096 bytes au lieu de 512 bytes.

Le Solid State Disk travaille avec des pages de 4kB (le plus petit élément adressable). Une page d'un SSD est comparable à un bloc sur un disque classique. Les pages sont groupées en circuits indépendants, il y a par exemple un millier de pages par circuit (qu'on appelle malencontreusement aussi blocs). Les blocs forment une unité quand il s'agit d'effacer des données (il faut effacer un bloc complet). En plus des blocs, le disque SSD contient une mémoire pour le suivi des adresses et une mémoire vive qui a au moins la capacité d'un bloc.

-

-

Fonctionnement dans la pratique

Nous commencons avec un disque vierge (cliquez ici pour remettre le système à zéro). Notre disque d'exemple contient 4 blocs de 9 pages, donc une capacié de 147.456 octets.

Status blocs (HDD)
et pages (SDD)
 Vierge
 En fonction
 Invalide (uniquement SSD)
 TRIM (uniquement SSD *)
Disque dur (HDD)

Solid State Disk (SDD)

SSD avec fonction TRIM
    Cliquez sur les liens (dans l'ordre!) pour voir l'animation
  1. Le système d'exploitation formate le disque. Nous supposons que le répertoire a toujours une longueur d'un bloc (indiqué Δ). Le disque devient rouge pendant l'opération pour avoir une idée de la durée de l'opération.

  2. On écrit un petit fichier. On écrit le fichier A au premier endroit disponible et le répertoire est mis à jour. Le système d'exploitation modifie les données du répertoire sur place, mais un SSD ne peut pas modifier des données. Le SSD utilise une page vierge pour le répertoire et invalide l'ancien emplacement. Le système d'exploitation croit toujours que le répertoire se trouve à la même place, ce qui n'est plus le cas. Le tableau d'adresses du SSD effectue la translation.

  3. Le fichier A est étendu d'une page à 2 pages. C'est une situation qui se présente souvent (fichiers log, répertoires, registry, fichiers de données). Le système d'exploitation écrit le fichier à la même place et y ajoute un bloc. Le SSD doit utiliser de nouvelles pages. Le répertoire et le fichier ne se trouvent plus à leur place d'origine (assignée par le système d'exploitation).

  4. On écrit le fichier B. Le fichier B est écrit à la première place disponible. le répertoire est mis à jour.

  5. Le fichier B est étendu d'une page. Alors que le disque est utilisé à moins de 50%, il n'y a pratiquement plus de pages vierges.

  6. On efface le fichier B. Le système d'exploitation indique qu'un fichier est effacé en le signalant dans le répertoire. Les données du fichier restent sur place. Le SSD croit que le fichier existe toujours et va recopier (inutilement) son contenu lors d'opérations d'effacement. Linux et Windows 7 disposent de la commande TRIM avec laquelle ils indiquent les emplacements qui sont libérés. Une page libérée (en jaune) est comparable à une page invalidée (en rose). C'est à partir d'ici que le fonctionnement d'un SSD avec système d'exploitation utilisant la fonction TRIM diffère d'un système d'exploitation classique.

  7. On écrit le fichier C (5 pages). Il y a trop peu de place disponible. Le premier morceau du fichier est écrit aux emplacements disponible, puis il faut effacer un bloc. Nous avons heureusement un bloc qui ne contient que des pages invalidées. On efface le bloc, le reste du fichier est écrit, et puis on écrit à nouveau le répertoire.

  8. Le fichier C est modifié et étendu (1 page). Il y a à nouveau trop peu de place.

    Sans fonction TRIM:

    • Le bloc 1 contient le fichier A et des pages invalidées.
    • Le bloc 2 contient le second bout du fichier C, le répertoire et qquelques pages vierges.
    • Le bloc 3 contient un répertoire invalidé et le fichier B (le SSD ne sait pas qu'il n'existe plus)
    • Le bloc 4 contient le reste du fichier B, le premier morceau du fichier C et deux répertoires invalidés.
    Aucun bloc ne contient que des pages invalidées, mais l'effacement du premier bloc fournira le plus de pages vierges. On déplace le fichier A vers la mémoire vive, on efface le bloc et on réécrit le fichier A, le reste du fichier C et le répertoire.

    Avec la fonction TRIM:

    • Le bloc 3 ne contient que des pages invalidées et un fichier effacé
    On peut donc effacer tout le bloc sans avoir à recopier des données.

  9. On augmente le fichier A (3 pages). Le fichier est fragmenté en deux morceaux sur le disque classique.

    Sans TRIM:
    On peut placer le fichier dans les pages vierges qui restent, mais il faut à nouveau libérer un bloc pour le répertoire. Le disque SSD décide d'effacer le bloc 4. Comme le SSD ne sait pas que le fichier B n'existe plus (fichier fantôme), il est recopié.

    Avec TRIM:
    Le fichier et le répertoire sont placés dans les pages vierges du bloc 3.

Comme vous l'aurez remarqué, le SSD dispose d'une mémoire vive autonome qui a au minimum la grandeur d'un bloc (pour y placer le contenu non-invalidé en cas d'effacement). Il y a un phénomène d'amplification d'écriture qui se produit: l'écriture d'un petit fichier produit plusieurs opérations d'écriture au niveau de la mémoire flash. Or il faut essayer d'éviter les opérations d'écriture, car elles usent la mémoire.

Les disques SSD plus chers disposent d'une alimentation de secours (de gros condensateurs) qui permet de terminer une opération sans perte de données. Si la panne de courant se produit pendant une phase d'effacement, le disque pert le contenu de tout un bloc, ce qui n'est pas le cas avec les SSD de meilleure qualité technique.

Nous avons utilisé ici un format très élémentaire: un seul répertoire et les fichiers (comparable à DOS 3.0). Plus le format devient complexe (FAT, NTFS) et plus il faut d'opérations d'écriture pour stocker un seul fichier. Les SSD préfèrent donc les formats les plus simples (comme le format FAT) qui occasionnent moins d'opérations d'écriture par fichier à modifier.

Links to relevant pages - Liens vers d'autres pages au contenu similaire - Links naar gelijkaardige pagina's

-