Surapprovisionnement d'un SSD - tient-il toujours?

14

De multiples sources (mais pas très récentes) suggèrent que ~ 7% de l'espace SSD devrait être laissé non alloué afin de réduire l'usure du disque. Est-il toujours valable pour l'instant ou la situation a-t-elle changé?

marmistrz
la source
Cela importe en raison du problème d'activation de TRIM, comme je l'ai dit. Je soupçonne que SU convient bien à cette question, mais il a maintenant besoin d'être modifié pour mentionner Linux!
sourcejedi
l'espace libre est permet de meilleures performances. L'usure du disque est surestimée et peut-être un mythe maintenant. Un SSD de bonne qualité peut durer plus de 10 ans en y écrivant 24/7. cela pourrait être un bon article à examiner: howtogeek.com/165472/… - écrire dans un bloc vide est assez rapide, mais écrire dans un bloc partiellement rempli implique de lire le bloc partiellement rempli, de modifier sa valeur, puis de l'écrire retour. Répétez cette opération plusieurs fois pour chaque fichier que vous écrivez sur le lecteur car le fichier consommera probablement de nombreux blocs. ---
Dim

Réponses:

15

Windows utilise généralement TRIM. Cela signifie que tant que vous avez X% d'espace libre sur le système de fichiers, le lecteur verra X% comme non alloué. [*] Sur-provisionnement non requis.

Exception: historiquement, les SSD avec les contrôleurs / microprogrammes Sandforce n'ont pas restauré toutes les performances après TRIM :(.

La perte de performances sur le disque complet peut être importante, et plus encore que sur certains autres disques. Cela sera associé à une amplification d'écriture élevée et augmentera donc l'usure. Source: revues Anandtech.

Il est donc nécessaire si et seulement si

  • vous n'êtes pas sûr que TRIM sera utilisé. AFAIK, il n'est toujours pas activé par défaut sous Linux, en raison de problèmes de performances avec quelques anciens disques qui se comportent mal.
  • OU vous avez peur de remplir un lecteur Sandforce (et que le contenu ne puisse pas être compressé par le contrôleur intelligent).

Il n'est pas trop difficile d'activer TRIM sous Linux et vous ne remarquerez probablement aucun problème.

Heureusement, plusieurs des marques les plus populaires fabriquent leur propre contrôleur. Les contrôleurs Sandforce ne sont plus aussi populaires qu'avant. Les problèmes de Sandforce me rendent sceptique quant à la conception spécifique de ce contrôleur «intelligent», qui était très agressif pour l'époque. Toutes mes excuses à Sandforce, mais je n'ai pas de référence pour les modèles de contrôleurs exacts concernés.


[*] Les systèmes de fichiers aiment également avoir beaucoup d'espace libre pour réduire la fragmentation. TRIM est donc génial, car vous n'avez pas à ajouter deux marges de sécurité ensemble, le même espace libre aide les deux :). Le lecteur peut profiter de l'espace non alloué pour améliorer les performances et éviter une usure élevée, comme vous le dites.

sourcejedi
la source
Est-il possible de détecter un contrôleur Sandforce après avoir installé un SSD?
marmistrz
Il n'y a pas de lecture standard ni de test à ma connaissance. Vous devez savoir ce qu'est le lecteur et essayer de le rechercher. À peu près tout ce que je peux voir est un "numéro de modèle", par exemple dans les disques GNOME comme "M4-CT128M4SSD2", qui pourrait être difficile à faire correspondre. Encore pardon. Je pense que Samsung utilise ses propres contrôleurs et Crucial / Micron utilise Marvell. OCZ / Toshiba ont utilisé divers contrôleurs dont Sandforce.
sourcejedi
Cela suppose que vous réellement avez un espace libre sur le système de fichiers, non? : D
endolith
Soyez précis sur la partie à laquelle vous répondez s'il vous plaît, c'était il y a plus d'un an. Je pense que vous voulez dire "[hypothétique] Je n'ai aucune discipline, j'ai besoin de mon système pour repousser les abus continus et je n'ai pas de logiciel pour régler une alarme de seuil élevé". Ce qui est une critique parfaitement valable, bien qu'intéressante de la part de quelqu'un qui envisagerait en premier lieu le surprovisionnement.
sourcejedi du
7

Les contrôleurs SSD modernes sont suffisamment intelligents pour que le surprovisionnement ne soit généralement pas nécessaire pour une utilisation quotidienne. Cependant, il existe encore des situations, principalement dans les environnements de centre de données, où un surprovisionnement est recommandé. Pour comprendre pourquoi le surprovisionnement peut être utile, il est nécessaire de comprendre le fonctionnement des SSD.

Les SSD doivent faire face aux limites de la mémoire flash lors de l'écriture de données

Les SSD utilisent un type de mémoire appelé mémoire flash NAND . Contrairement aux disques durs, les cellules NAND contenant des données ne peuvent pas être écrasées directement; le lecteur doit effacer les données existantes avant de pouvoir écrire de nouvelles données. En outre, alors que les SSD écrivent des données dans des pages dont la taille est généralement de 4 Ko à 16 Ko, ils ne peuvent effacer les données que dans de grands groupes de pages appelées blocs , généralement de plusieurs centaines de Ko à plusieurs Mo dans les SSD modernes.

La NAND a également une endurance limitée en écriture . Pour éviter de réécrire inutilement des données afin d'effacer des blocs et pour garantir qu'aucun bloc ne reçoive un nombre disproportionné d'écritures , le lecteur essaie d'étaler les écritures, en particulier les petites écritures aléatoires, sur différents blocs. Si les écritures remplacent les anciennes données, elles marquent les anciennes pages comme non valides. Une fois que toutes les pages d'un bloc sont marquées comme non valides, le lecteur est libre de l'effacer sans avoir à réécrire des données valides.

Les disques SSD ont besoin d'espace libre pour fonctionner de manière optimale, mais toutes les charges de travail ne sont pas propices au maintien de l'espace libre

S'il reste peu ou pas d'espace libre sur le lecteur, il ne pourra pas étaler les écritures. Au lieu de cela, le lecteur devra effacer les blocs immédiatement au fur et à mesure que les écritures sont envoyées au lecteur, réécrivant toutes les données valides dans ces blocs dans d'autres blocs. Il en résulte que davantage de données sont écrites dans la NAND que celles envoyées au lecteur, un phénomène connu sous le nom d' amplification d'écriture . L'amplification en écriture est particulièrement prononcée avec des charges de travail aléatoires à forte intensité d'écriture, telles que le traitement des transactions en ligne (OLTP) , et doit être réduite au minimum car elle entraîne une réduction des performances et de l'endurance.

Pour réduire l'amplification d'écriture, la plupart des systèmes modernes prennent en charge une commande appelée TRIM , qui indique au lecteur quels blocs ne contiennent plus de données valides afin qu'ils puissent être effacés. Cela est nécessaire car le lecteur devrait autrement supposer que les données supprimées logiquement par le système d'exploitation sont toujours valides, ce qui entrave la capacité du lecteur à conserver un espace libre adéquat.

Cependant, TRIM n'est parfois pas possible, par exemple lorsque le lecteur se trouve dans un boîtier externe (la plupart des boîtiers ne prennent pas en charge TRIM) ou lorsque le lecteur est utilisé avec un système d'exploitation plus ancien. En outre, sous des charges de travail à écriture aléatoire très intensives, les écritures seront réparties sur de grandes régions de la NAND sous-jacente, ce qui signifie qu'une réécriture forcée des données et une amplification d'écriture associée peuvent se produire même si le lecteur n'est pas presque plein.

Les SSD modernes connaissent une amplification d'écriture nettement moins importante que les disques plus anciens, mais certaines charges de travail peuvent toujours bénéficier d'un surprovisionnement

Les premiers SSD avaient un firmware beaucoup moins mature qui aurait tendance à réécrire les données beaucoup plus souvent que nécessaire. Les premiers contrôleurs Indilinx et JMicron ( le JMF602 était tristement célèbre pour le bégaiement et les performances d'écriture aléatoire abyssales ) souffraient d'une amplification d'écriture extrêmement élevée sous des charges de travail d'écriture aléatoire intensives, dépassant parfois 100 fois. (Imaginez écrire plus de 100 Mo de données dans la NAND lorsque vous essayez d'écrire 1 Mo!). Les contrôleurs plus récents, avec l'avantage d'une puissance de traitement plus élevée, des algorithmes de gestion du flash améliorés et la prise en charge de TRIM, sont beaucoup mieux en mesure de gérer ces situations, bien que les charges de travail à écriture aléatoire lourdes puissent toujours provoquer une amplification d'écriture supérieure à 10 fois dans les SSD modernes .

Le surprovisionnement fournit au lecteur une plus grande zone d'espace libre pour gérer les écritures aléatoires et éviter la réécriture forcée des données. Tous les SSD sont surapprovisionnés au moins à un degré minimal; certains n'utilisent que la différence entre le Go et le GiB pour fournir environ 7% d'espace disponible pour le lecteur, tandis que d'autres ont plus de surprovision pour optimiser les performances pour les besoins d'applications spécifiques. Par exemple, un SSD d'entreprise pour des charges de travail OLTP ou de base de données gourmandes en écriture peut avoir 512 Gio de NAND physique tout en ayant une capacité annoncée de 400 Go, au lieu des 480 à 512 Go typiques des SSD grand public avec des quantités similaires de NAND.

Si votre charge de travail est particulièrement exigeante ou si vous utilisez le lecteur dans un environnement où TRIM n'est pas pris en charge, vous pouvez surprovisionner manuellement l'espace en partitionnant le lecteur afin de ne pas utiliser d'espace. Par exemple, vous pouvez partitionner un SSD de 512 Go en 400 Go et laisser l'espace restant non alloué, et le lecteur utilisera l'espace non alloué comme espace de rechange. Notez cependant que cet espace non alloué doit être coupé s'il a été écrit auparavant; sinon, cela n'aura aucun avantage car le lecteur verra cet espace comme occupé. (Les utilitaires de partitionnement doivent être suffisamment intelligents pour ce faire, mais je ne suis pas sûr à 100%; voir «Windows coupe-t-il l'espace non partitionné (non formaté) sur un SSD?» )

Si vous êtes juste un consommateur normal, le surprovisionnement n'est généralement pas nécessaire

Dans les environnements grand public typiques où TRIM est pris en charge, le SSD est rempli à moins de 70 à 80% et ne reçoit pas de claquements continus avec des écritures aléatoires, l'amplification d'écriture n'est généralement pas un problème et le surprovisionnement n'est généralement pas nécessaire.

En fin de compte, la plupart des consommateurs n'écriront pas assez de données sur le disque pour épuiser la NAND au cours de la durée de vie prévue de la plupart des SSD, même avec une amplification d'écriture élevée, donc ce n'est pas quelque chose pour perdre le sommeil.

bwDraco
la source
1

La taille de l'espace supplémentaire diffère beaucoup entre les modèles de disques SSD, mais en général, cela est toujours vrai.

Tomasz Klim
la source
Avez-vous une référence pour cela?
Léo Lam
Voulez-vous dire référence pour un lecteur spécifique? De nombreux disques (non seulement SSD) ont des références techniques publiques, mais désolé, je n'ai pas le temps de chercher. Cependant, si vous êtes intéressé par une référence générale, vérifiez ceci: samsung.com/global/business/semiconductor/minisite/SSD/…
Tomasz Klim
1
Oui, je me demandais si cela est toujours vrai pour tous les lecteurs, ou seulement pour des modèles ou des marques spécifiques, car l'autre réponse suggère qu'un sur-approvisionnement n'est plus nécessaire sur les lecteurs récents.
Léo Lam
L'autre réponse n'est pas exactement la bonne. En effet, les disques avec les contrôleurs Sandforce avaient beaucoup d'espace supplémentaire. C'est parfaitement vrai. Mais tout autre contrôleur SSD utilise également de l'espace supplémentaire, mais pas autant. Comme cela ne changera probablement pas.
Tomasz Klim
1
Du doc ​​pour Samsung SSD: "il y a toujours la possibilité de réserver manuellement de l'espace supplémentaire pour des performances encore améliorées (par exemple sous des charges de travail exigeantes)", c'est-à-dire qu'ils suggèrent que vous n'avez pas besoin de commencer à considérer cela à moins d'avoir un " charge de travail exigeante ".
sourcejedi