Solid State Disk
Optimalisation du disque statique
SSD
Root » Serveurs » Electro-ménager » Ordinateurs » Disques durs » SSD » Optimalisation

Pour le fonctionnement optimal d'un système avec un disque statique, il faut que le système d'exploitation soit optimalisé. Autrement, le système deviendra plus lent qu'un système avec disque dur classique!
-

-

Optimalisations


Les disques statiques utilisent le même type de connecteur que les disques durs classiques.
On trouve des connecteurs SATA et PATA.

Les SSD pour les applications-consommateur sont disponibles au format 2.5 inch
Les SSD de qualité entreprise (serveurs) sont fabriqués au format 3.5 inch.

Le problème principal est que les systèmes d'exploitation ont été concus pour l'utilisation de disques durs, et ce depuis les années 1970. Les disques statiques demandent une approche particulière.

Différence de coût lecture - écriture

Traditionellement, une opération d'écriture “coute” autant qu'une opération de lecture: les systèmes d'exploitation classiques vont donc écrire souvent, en essayant de placer les données qui forment un tout les unes près des autres. Il s'agit de la fonction prefetch et superfetch instaurée sous Vista et qui est néfaste pour les disques statiques (et se basant sur la vitesse de Vista, on peut se demander avec raison si ces fonctionalités apportent vraiment un plus...)

Regroupement de blocs sous forme de clusters

Le système d'exploitation travaille avec des blocs de 512 octets (c'est l'allocation de base du disque). Les disques modernes de haute capacité ont donc énormément de blocs, plus que le système ne peut en traiter de façon optimale. Alors que la taille moyenne d'un fichier sous windows 98 était de 16kB (fichier doc), elle est maintenant de 5MB (musique MP3, photos, vidéos). Un fichier de 5MB utilise 10.000 blocs de 512 octets.

Les systèmes d'exploitation vont regrouper un certain nombre de blocs consécutifs et les traiter comme une unité indivisible: il s'agit des clusters. Les clusters font 2kB, 4kb, 8kB ou 16kB. Un fichier de 80 octets utilise dans le dernier cas 16384 octets.

Les disques statiques travaillent dès l'origine avec des pages de 4kB. L'accès au niveau du bloc élémentaire de 512 octets (comme défini par le format classique des disques) est possible, mais produit une légère pénalisation en lecture et une très forte pénalisation en écriture (puisque toute la page doit être déplacée).

L'idéal est que le système d'exploitation utilise des clusters de la même taille que les pages. Mais ce n'est pas tout: il faut de plus qu'il n'y ait pas d'offset. Traditionnelement, le début de la partie 'données' d'un disque dur commence à partir du bloc 63, ce qui fait que l'écriture d'un cluster de 4kB force la modification de 2 pages (read-modify-write), l'opération la plus désavantageuse qui soit!

Ce “bloc 63” date du tout début des disques durs: la première piste (cylindre) était réservée aux paramètres du système, tandis que les données commencaient à partir de la seconde piste. Un cylindre pouvait avoir au maximum 63 secteurs. Plus tard, les disques ont effectué la traduction CHS vers un numéro de bloc. Le bloc 63 étant alors le premier secteur de la seconde piste.

Optimalisations

Le placement correct des partitions est expliqué ici.

Les optimalisations viennent aussi bien des fabricants de modules SSD que du système de gestion (système d'exploitation). Il est un fait que la communication reste défaillante tant que le système d'exploitation ne donne pas de directives claires au disque. Il n'y a que Linux et windows 7 qui sont au courant de l'existence des disques SSD.

Garbage collection

L'optimalisation au niveau du SSD concerne l'effacement préventif des blocs qui ne contiennent que des pages invalidées. De cette manière, le système n'a pas à attendre un effacement quand il n'y a plus de pages vierges. Le disque statique peut même aller plus loin et déplacer les données quand un bloc ne contient qu'un très petit nombre de pages valides (et ainsi créer des pages vierges). Cela augmente la vitesse de fonctionnement du disque en écriture, mais réduit sa durée de vie à cause des cycles d'écriture plus fréquents.

Pour niveller l'usure, le firmware va effacer les blocs qui ont un total d'écriture plus bas, au lieu d'effacer les blocs qui rapportent le plus de pages vierges. Ici aussi il s'agit d'un compromis.

Compression et écriture conditionnelle

Certains disques SSD compriment les données avant l'écriture. Comme c'est surtout la phase d'écriture qui est lente, le système bénéficie d'une compression qui permet d'écrire moins de données, même si la compression en elle-même demande également du temps. Les routines de compression sont surtout lentes à la compression, la lecture n'est pratiquement pas ralentie. L'avantage est que moins de blocs doivent être écrits pour un fichier donné. Le gain de place engendré par la compression est utilisé pour l'overprovisionning.

Certains SSD effectuent une écriture conditionelle. Quand on modifie un fichier (par exemple un document de plusieurs centaines de pages), toutes les pages ne sont pas modifiées. Le système d'exploitation va par contre ré-écrire tout le fichier (cela ne pose pas problème pour un disque dur classique). Certains SSD controlent si le bloc à écrire ne se trouve pas déjà quelque part sur le SSD. Si c'est le cas, un indicateur pointe vers le bloc déjà existant au lien d'en enregistrer un nouveau.

Système d'exploitation

Mais c'est surtout au niveau du système de gestion de l'ordinateur qu'on tire profit des avantages du disque statique. Est-ce-que le système doit vraiment tenir à jour de nombreux logs? Faut-il écrire chaque fois la date d'accès à un fichier? Il existe des formats extrèmes qui sont spécialement adaptés aux disques statiques: YAFFS (Yet Another Flash File System) et JFFS (Journalling Flash File System).

Ces systèmes n'utilisent pas de répertoire pour les fichiers, mais un journal circulaire qui contient toutes les modifications aux fichiers. Un élément de journal est écrit à chaque modification des données sur le disque. Cet élement est écrit à la première place disponible (donc en fait n'importe où). C'est un système qui est à éviter avec les disques durs classiques (les données sont écrites sans structure, à la première place de libre), mais ce manque d'organisation ne joue aucun role pour les disques statiques.

Les répertoires n'existent qu'en mémoire vive et sont perdus en cas d'arrêt de l'ordinateur. Les répertoires sont reconstruits en mémoire vive lors du démarrage, en se basant sur le journal.

Instruction TRIM

Pour les formats plus classiques, FAT et NTFS, l'instruction TRIM permet de signaler au disque dur qu'un fichier n'existe plus, et que les données ne doivent plus être gardées. Dans le cas d'un disque classique, on efface un fichier en le signalant simplement dans le répertoire (le contenu du fichier n'est pas modifié). L'instruction TRIM permet d'invalider les données: la place utilisée pourra ainsi être libérée.

Certains systèmes d'exploitation (par exemple windows XP) ne sont pas au courant de l'instruction TRIM, puisque les disques statiques sont très récents. Il existe des routines (généralement fournies par le fabricant de disques statiques) qui vont analyser la structure logique du disque (partitions, répertoires, FAT,...) et donner des instructions TRIM pour invalider les parties du disque statique qui n'ont pas ne contenu valable.

  1. Disque vierge: tout le contenu est disponible.
  2. On écrit des données: le disque se remplit.
  3. On efface une partie des données: le système d'exploitation "sait" que les blocs rouges ne contiennent pas de données valables, mais le disque statique ne le sait pas.
  4. L'instruction TRIM invalide les blocs qui ne sont plus utimisés: l'espace est à nouveau libéré.

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