storiq logo

La traînée de poudre

Le blog StorIQ

 

Vendredi, 13 août 2010

Les promesses du SSD.

Les disques SSD existent depuis longtemps, mais il n’y a que récemment qu’ils sont enfin devenus à la fois relativement courants, peu coûteux et fiables. Intellique installe des serveurs avec des disques SSD depuis plus de deux ans déjà, et quelle évolution dans ce laps de temps!

De nombreux passionnés de techno ( qui a dit “geeks”? ) cependant, sont déjà impatients de voir les nouvelles fonctionnalités que promettent les constructeurs, en particulier :

  • la commande TRIM et le “Garbage Collector”
  • l’interface SATA3

Je me dois donc de vous expliquer tout d’abord ce que sont ces fonctionnalités, ensuite à quoi elles servent, ensuite pourquoi nous ne les proposons pas déjà :)

La fonction TRIM

La commande TRIM permet de demander explicitement à un SSD d’effacer un bloc de données. Il faut savoir qu’un SSD peut écrire généralement des blocs de 4 Kio (appelés pages), mais ne peut effacer que des blocs de 128 Kio ou plus. Ceci peut réduire drastiquement les performances en écriture lorsqu’on modifie des blocs précédemment écrits : en effet, avant de pouvoir écrire telle page de 4 Kio, il faut relire le bloc de 128 Kio auquel elle appartient, le modifier dans une mémoire cache, l’effacer puis le récrire entièrement. On se retrouve donc à lire 124 Kio, effacer le bloc puis écrire 128 Kio pour effectivement modifier 4 Kio… soit à manipuler 64 fois plus de données que prévu, entraînant par là une réduction équivalente de la performance.

Comment pallier ce grave problème? les constructeurs de disques SSD rivalisent d’ingéniosité pour éviter d’avoir à récrire un bloc déjà alloué. Cependant la seule bonne solution réside au niveau du système d’exploitation, qui lui choisit quels blocs utiliser et comment. Cependant, pour tirer la quintessence des SSD, il faut profondément modifier la manière dont nos systèmes de fichiers organisent les données. En fait, il faut même utiliser de nouveaux systèmes de fichiers optimisés pour cela.

C’est là qu’entre en jeu la commande TRIM. Un système de fichier optimisé pour l’utilisation de SSD peut allouer les blocs de manière à éviter les réécritures, et d’autre part demander au disque d’effacer certains blocs de façon à libérer de l’espace en avance plutôt qu’au moment précis où l’on en a besoin. C’est justement ce qu’on appelle un “ramasse miettes”, en anglais “Garbage collector”.

Et nous touchons le premier point délicat : pour utiliser la commande TRIM à bon escient, il faut un nouveau système de fichiers. Adieu, les bons vieux NTFS, ext3 et autres HFS+. On conçoit l’ampleur du problème : vu la difficulté à se débarrasser des scories de MS-DOS et de FAT32, quand les éditeurs seront-ils prêts? Et bien, pas avant un certain ( et même très certain ) temps.

La fonction TRIM et le stockage professionnel

Mais il y a pis : si on peut espérer voir poindre bientôt ( un an? 18 mois?) des solutions matures pour les disques durs SSD destinés aux ordinateurs portables, le problème est encore bien plus épineux en ce qui concerne le stockage d’entreprise. En effet, dans ce cas on utilise les disques ( SSD ou pas ) en grappes RAID, ce qui ajoute un nouveau lot de difficultés :

  • L’information permettant d’émettre la commande TRIM est disponible au niveau du système de fichier uniquement; à ce jour seuls certains systèmes de fichiers expérimentaux dédiés à l’utilisation sur SSD la supportent. On évitera de mettre des données critiques sur un système de fichier expérimental…

  • dès l’instant où le système de fichier repose sur une couche d’abstraction comme LVM ou un RAID logiciel, il faut implémenter des mécanismes permettant :

    • au système de fichier d’indiquer au gestionnaire de volume sous-jacent qu’il implémente la commande TRIM;
    • au gestionnaire de volume d’indiquer au système de fichier hôte que le(s) périphériques sous-jacents supportent la commande TRIM;
    • enfin et c’est le plus complexe, implémenter dans les gestionnaires de volume les mécanismes permettant la translation des adresses virtuelles de blocs du volume logique en blocs physiques sur lesquels appliquer la commande TRIM.
  • de plus, si l’on utilise un contrôleur RAID matériel, il faut également implémenter une norme générale et des méthodes au niveau de chaque pilote de périphérique concerné pour faire de même, c’est à dire indiquer à la couche d’abstraction de niveau bloc que les périphériques blocs sous-jacents supportent le TRIM, d’autre part transmettre les commandes TRIM de façon correcte en faisant les translations d’adresses nécessaires.

On peut donc conclure avec une certaine confiance que nous sommes encore assez loin de pouvoir profiter de la commande TRIM dans les systèmes d’entreprise…

Le SATA 3

Le SATA-3 est la nouvelle norme SATA 6 Gigabits par seconde, qui doit permettre de tirer le meilleur parti des disques SSD. En effet, les 3 Gb/s du SATA-2 permettent de faire transiter au grand maximum 384 Mo/s; or certains SSD peuvent déjà faire mieux. De plus cette nouvelle norme intègre le dernier jeu de commande ATA, dont la fameuse “TRIM”.

Formidable, passons vite au SATA-3!

Petit problème, aucun disque n’existe actuellement à cette norme. Celle-ci a fait son apparition dans le domaine grand public très récemment sur quelques cartes-mères et n’est que très rarement disponible, et il faudra patienter avant qu’il existe des solutions professionnelles (contrôleurs RAID, disques) la supportant.

Inutile d’attendre!

Heureusement, la conclusion générale est malgré tout positive! En effet, les disques SSD ont déjà un immense avantage sur les disques durs ordinaires : leur temps d’accès fabuleusement réduit. Ceci constitue la véritable révolution et le principal attrait du SSD dans le monde de l’entreprise, et on, peut en profiter sans TRIM, sans “garbage collector” et sans SATA-3. Une grappe RAID de quelques disques SSD peut en effet soutenir plusieurs dizaines de milliers d’opérations par seconde, c’est à dire la performance de quelques centaines de disques SAS hors de prix. C’est d’ores et déjà une révolution pour toutes les applications transactionnelles, et nul besoin d’attendre pour en tirer parti! Qui ne rêve de remplacer une pleine armoire de disques en SAN par un simple serveur de 1 ou 2U de rack? C’est déjà une réalité.

Quelques liens :

posté à: 18:04 permalink