Qu'est-ce que TRIM exactement?


14

À partir de la page Wikipedia de TRIM, j'ai l'impression que TRIM a été introduit pour réduire les écritures sur un SSD, mais écrivez au système de fichiers en prenant en considération les blocs non utilisés.

Si cela est correct, cela signifie-t-il que les SSD qui n'utilisent pas TRIM écrivent des zéros dans les blocs, lorsqu'un fichier est supprimé, pour informer le SSD que les blocs sont libres?

Lire ceci

Les systèmes de fichiers d'un invité ont tendance à ne pas réutiliser les blocs, ce qui signifie que même si un système de fichiers reste petit par rapport à la taille de l'image virtuelle, la taille réelle de l'image a tendance à augmenter jusqu'à atteindre la taille maximale.

me fait penser que les SSD ne sont pas écrasés par des zéros? Ou les systèmes de fichiers chez les invités, quelque chose de complètement différent?

Réponses:


16

Les dispositifs de mémoire flash (ce qui est utilisé pour les SSD d'aujourd'hui) ne peuvent pas écrire de données arbitraires à tout moment; avant d'écrire sur une cellule (généralement 4Ko) doit être effacé en premier. Malheureusement, l'opération d'effacement est très lente; c'est pourquoi les appareils flash étaient beaucoup plus lents que les lecteurs magnétiques, malgré l'absence de pièces mobiles.

Les SSD modernes masquent le temps d'effacement en conservant un ensemble de cellules pré-effacées, ce qui signifie qu'une commande d'écriture n'écrasera pas immédiatement les données existantes, au lieu de cela, le contrôleur du lecteur sélectionne une cellule effacée, la remappe et écrit avec les nouvelles données. Cela (et plusieurs stratégies de cache en écriture) donne au disque une accélération énorme , surpassant considérablement les disques magnétiques.

Pour garantir qu'il y a toujours un ensemble de cellules pré-effacées, chaque fois qu'une cellule n'est pas nécessaire, le lecteur la planifie pour l'effacement en arrière-plan et ajoute à la liste des cellules payantes.

Malheureusement, les systèmes de fichiers existants n'ont pas pris la peine de dire au lecteur quand un secteur était libre. Le lecteur était censé être juste un référentiel stupide de bits, après tout. La suppression d'un fichier ou de toute autre opération qui marque un secteur comme libre du point de vue du système de fichiers n'était qu'une marque sur une structure de métadonnées. Le secteur lui-même n'a pas été touché. Même si le système de fichiers l'a effacé en écrivant des zéros dessus, le lecteur ne pouvait pas savoir si cela signifiait que le secteur était libre, ou si l'utilisateur voulait des zéros sur un fichier. Après un certain temps, le lecteur n'aurait plus de cellule libre à effacer avant d'écrire; et les performances se sont dégradées tragiquement.

L'instruction TRIM a été rapidement rédigée et adoptée par la plupart des systèmes de fichiers actuellement maintenus. C'est un simple signal que le système de fichiers utilise pour indiquer au lecteur que le contenu d'un secteur n'est plus important. Dès que tous les secteurs mappés sur une cellule sont libres, le contrôleur SSD démappe la cellule et planifie son effacement. Si l'hôte lit ces secteurs, le SSD ne prend pas la peine d'aller chercher dans Flash, il répond immédiatement par des zéros; mais l'effet le plus important est de maintenir la liste des cellules pré-effacées toujours reconstituée.

Pourtant, la plupart des SSD présentent une capacité inférieure à la taille physique de la mémoire Flash, parfois aussi faible que 75%. Cela lui permet de conserver certaines cellules inutilisées même sur un système 100% complet, de sorte que l'écriture (sur) des secteurs utilisés est toujours rapide.


Intéressant. Je savais conceptuellement comment TRIM fonctionnait, mais je me demandais combien de stockage un SSD exposerait. Maintenant, je veux voir si ces données sont publiées n'importe où pour des SSD donnés ...
Michael B

Le nombre de cellules réservées est généralement publié. Il est généralement compris entre 5 et 10% pour les disques grand public moins chers, 20% + pour les disques grand public haut de gamme. Les lecteurs flash d'entreprise (EFD) ont généralement une réserve de 100% à 400%; par conséquent, pourquoi ils sont si chers, ils conservent cette énorme réserve car l'écriture dans un emplacement de mémoire flash détruit les emplacements à chaque fois. Écrire des applications lourdes, généralement présentes dans des environnements de serveur, tuerait rapidement la plupart des SSD grand public.
Chris S

"écrire sur une cellule (généralement 4 Ko)" - Vous utilisez mal le concept de "cellule" par rapport à l'utilisation conventionnelle de la mémoire flash. Une "cellule" flash ne stocke qu'un (ou quelques) bit (s). Votre utilisation de "cellule" semble correspondre au bloc beaucoup plus grand (effacement) (pourrait être 128K), comme décrit généralement dans les fiches de données IC flash. L'organisation des données est cellule <secteur <page <bloc <avion <puce.
sciure de bois

8

TRIM a été introduit afin qu'un système d'exploitation (le système de fichiers dans le système d'exploitation) puisse communiquer à un support de stockage ATA qu'un secteur n'est plus utilisé par le système de fichiers. Cela n'a rien à voir avec l'écriture sur le disque.

TRIM ne garantit pas que le secteur est mis à zéro sur les médias. Il garantit quand le système de fichiers demande une lecture de ce secteur que les zéros sont retournés (notez que parce que le SSD sait que le secteur devrait être des zéros qu'il les renverra indépendamment de ce qui est réellement stocké dans le média; il peut être possible de récupérer les données d'un disque qui a été simplement coupé, bien que les SSD effacent généralement la mémoire).

Les systèmes de fichiers ont tendance à distribuer leurs écritures (pour diverses raisons, de la tentative de nivellement de l'écriture au ramasse-miettes, en passant par la randomisation des emplacements de stockage, etc.). Pour cette raison, si le support ne sait pas quels secteurs le système de fichiers n'utilise pas, le simple fait d'écrire des zéros ne signifie pas nécessairement que le secteur n'est pas utilisé, il doit supposer finalement que le disque entier est en cours d'utilisation.

Pour les SSD, cette hypothèse signifie qu'un secteur doit être effacé au moment de l'écriture, ce qui diminue la vitesse d'écriture; au lieu d'effacer l'emplacement de la mémoire au moment où le fichier est supprimé. Similaire aux fichiers de disque virtuel dans les systèmes de virtualisation, le fichier de disque dynamique finira par englober la pleine capacité du disque virtuel. Si le système de virtualisation implémente TRIM, il saura quand un secteur n'est plus utilisé, et donc que le disque dynamique n'a pas besoin de garder une trace de cet emplacement.


Cela signifie-t-il que TRIM a été introduit pour permettre au SSD de savoir quels secteurs sont utilisés, afin qu'il puisse mettre les nouvelles données sur les secteurs qui ont été moins utilisés?
Sandra

1
Les SSD utilisent simplement TRIM pour savoir quand un secteur n'est plus nécessaire. Il ne garantit pas le niveau d'écriture ni aucune autre fonctionnalité que le support de stockage peut implémenter. Cela dit, la plupart des SSD l'utilisent pour le nivellement de l'écriture, la collecte des ordures (sur les supports flash, l'effacement des secteurs inutilisés) et la conservation de listes de secteurs libres pour de meilleures performances d'écriture).
Chris S
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.