storiq logo

La traînée de poudre

Le blog StorIQ

 

Jeudi, 22 mai 2014

Terminologie des SSD


Les SSD se sont généralisés bien sûr dans les ordinateurs portables, mais aussi dans le monde de l’entreprise où leur vitesse pure les rend indispensables aux applications transactionnelles, aux bases de données, etc. Afin de vous aider à faire le tri, voici donc une rapide présentation des technologies présentes dans les SSD.

Endurance des SSD

La mémoire flash ne permet qu’un nombre limité d’écritures par emplacement. Le nombre d’écritures possible dépend de la technologie flash utilisée, MLC ,eMLC ou SLC (voir ci-dessous).

DWPD ( diskful writes per day )

L’acronyme DWPD est un méthode d’évaluation de l’endurance des SSD qui évalue le nombre d’écritures complètes que supporte un SSD sur sa durée garantie d’utilisation (généralement 5 ans). Un SSD garanti 5 ans avec un DWPD de 10 peut donc être écrit entièrement 10 fois par jour pendant 5 ans.

MLC

La mémoire MLC (Multi Level Cell) stocke plusieurs bits par cellule, typiquement 2 (il existe des types de cellules stockant 3 ou 4 bits mais en général ils sont réservés aux clefs USB bas de gamme et autres stockages peu sollicités). C’est le type de mémoire flash le moins coûteux et le plus capacitif, mais sa durabilité est limitée à cent ou deux cent mille écritures environ.

eMLC

La mémoire eMLC (“enterprise MLC” ou “enhanced MLC”) est une variante de MLC un peu plus performante et fiable que le MLC (en général donnée pour 500 000 à 1 million d’écritures).

SLC

La mémoire SLC (Single Level Cell) ne stocke qu’un seul bit par cellule. Elle est donc environ deux fois moins dense que la MLC, mais en contrepartie est 10 fois plus durable (1 à 2 millions d’écritures). Le coût de la SLC est environ 3 à 4 fois supérieur au MLC à capacité équivalente.

déduplication

La plupart des contrôleurs SSD intègrent des fonctions de déduplication afin de limiter les écritures. Ceci a pour effet de fausser les mesures de performances lorsqu’on utilise soit un motif répétitif (sujet à une forte déduplication donc des performances anormalement élevées), soit au contraire un motif aléatoire (impossible à dédupliquer, donc donnant des performances anormalement basses).

Ramasse-miettes

Les mémoires flash s’écrivent par unités appelées pages d’une taille typiquement de 4 Ko, mais s’effacent par blocs typiquement de 128 ko à 2 Mo (ou plus). Afin d’améliorer la performance et de limiter l’usure de la flash, lors de la modification d’une page elle est en fait réallouée et récrite sur un emplacement libre, et la donnée antérieure marquée comme “périmée”. Un processus de “ramasse-miettes” peut être initié automatiquement ou volontairement pour effacer les blocs de données périmées et ainsi libérer de l’espace pour les prochaines écritures, de préférence à un moment où cette activité impactera le moins possible la production.

répartition de l’usure ( wear leveling )

Le contrôleur du SSD tient le compte du nombre de cycles d’effacement pour chaque bloc, de façon à répartir au mieux les données afin que tous les blocs aient un taux d’usure similaire. En effet, certains types de fichiers (fichier de pagination, base de données…) peuvent être modifiés très fréquemment toujours aux mêmes emplacements. Sans réallocation dynamique des blocs, les pages hébergeant ces fichiers atteindraient très rapidement leur limite d’usure entrainant la panne du SSD.

surallocation ( over provisioning )

Afin d’améliorer la fiabilité, chaque SSD comporte un surplus de mémoire flash non exploitable, utilisée pour répartir l’usure et prolonger le nombre total d’écritures possibles. La différence principale entre un SSD MLC et eMLC porte sur cette réserve: chez un même constructeur on trouvera généralement deux modèles comportant une capacité de mémoire flash physique équivalente (par exemple 512 Go de flash) mais la capacité disponible variera, de 400 Go pour la version eMLC à 460 ou 480 Go pour la version MLC.

Notons qu’il est parfaitement possible (et même recommandé) d’augmenter encore la durabilité d’un SSD en le partitionnant de manière à ne jamais utiliser une certaine proportion de son espace libre. Pour les applications intensives en écriture, nous conseillons de conserver 20% de la capacité inutilisée.

amplification des écritures ( write amplification )

Il peut arriver que le nombre d’écriture tel que reporté par le système d’exploitation donne lieu au niveau de la flash à un nombre d’écritures bien plus grand. Le cas le plus courant sera celui où le SSD étant utilisé près de sa capacité maximale, n’aura plus de blocs libres pour allouer de nouvelles pages et sera contraint d’effectuer des cycles de lecture/effacement/écriture de blocs entiers. Là encore, la solution consiste à conserver une bonne marge de capacité inutilisée sur le SSD.

protection de l’alimentation par condensateurs

Les SSD eMLC et SLC destiné aux usages professionnels comportent des condensateurs de forte capacité qui permettent, en cas de coupure intempestive de l’alimentation, de fournir suffisamment d’énergie pour terminer les écritures en cours et ainsi éviter une corruption de données.

PCIe vs SAS vs SATA

Les SSD sont disponibles sous différents formats (nous ne considérons pas les modules pour ordinateurs portables): SATA, SAS et PCIe.

  • Les SSD à interface SATA sont les moins coûteux. Cependant, le SATA 3 ne permet qu’une vitesse de 6 Gbits/s, soit environ 700 Mo/s, ce qui est tout juste suffisant pour les modèles les plus performants.

  • Les SSD à interface SAS 12 Gbits/s sont sensiblement plus coûteux, et sont généralement des modèles à base de SLC, beaucoup plus performants que les modèles SATA. On trouve des SSD SLC SAS pouvant fournir jusqu’à 120.000 IOPS (entrées-sorties par seconde) et plus.

  • Les SSD à interface PCIe se présentent sous la forme de cartes PCIe. L’inconvénient de ce format est qu’il est impossible de remplacer un SSD défectueux sans interruption de service. Cependant l’interface PCI Express fournit une bande passante très élevée (plusieurs gigaoctets par seconde) et surtout des temps de réponse très faibles de l’ordre de 50 à 200 nanosecondes (contre 50 à 100 microsecondes pour le SAS). Les SSD sur PCIe présentent des performances de 100.000 à 10.000.000 d’IOPS environ.

posté à: 18:20 permalink