Le dimanche 17 janvier 2016 à 20:41 +0100, Pascal Hambourg a écrit : > Francois Lafont a écrit : > > > > Mais alors, si jamais on monte un disque SSD sans l'option discard _et_ sans > > prendre le soin de faire un fstrim régulièrement, alors que se passe-t-il ? > > Le disque va se remplir inexorablement au fil du temps > > Oui, en quelque sorte. > > > et à un moment donné je ne pourrai tout simplement plus écrire dessus > > Non, quand même pas. Mais les écritures seront beaucoup plus coûteuses. > > > Personnellement, j'aurais plutôt pensé que le SSD fait le trim lui-même tout > > seul comme un grand, quand ça l'arrange. > > C'est impossible puisque le TRIM sert justement à l'informer des blocs > qui ne sont plus occupés. Certains SSD ont essayé de faire ça > d'eux-mêmes mais ne savaient lire que NTFS. Inutile de dire qu'avec les > autres systèmes de fichiers, ça a été la catastrophe. > > > En fait, je pensais même que le discard ou le fstrim auraient même tendance > > à > > diminuer la durée de vie du SSD vu que ça l'oblige à effacer des cellules à > > un > > moment où, peut-être, ce n'est pas nécessaire. > > Rien n'oblige le SSD a effacer immédiatement suite à une commande TRIM. > > Un peu d'explication. > > Bien que la finalité soit la même, un SSD fonctionne très différemment > d'un disque dur. > > Un disque dur est divisé en secteurs indépendants les uns des autres (à > l'exception des disques au format avancé 512e où plusieurs secteurs > logiques sont regroupés dans un secteur physique, mais on va faire > l'impasse). Chaque secteur a un contenu (que ce soit des zéros ou autre > chose n'a pas d'importance) et la modification de ce contenu se fait > simplement en écrivant par dessus, comme une bande magnétique. Il y a > une correspondance entre l'adresse logique d'un secteur et sa position > physique sur le disque (à l'exception des secteurs défectueux qui ont > été réalloués). > > Un SSD est très différent. Les secteurs ne sont pas indépendants : ils > sont regroupés en pages (typiquement 4 ou 8 Kio), et les pages sont > regroupées en blocs d'effacement (typiquement 1 Mio). L'écriture ne peut > se faire que sur une page entière, mais il y a pire : on ne peut écrire > que dans une page préalablement effacée. On ne peut pas réécrire > directement par dessus une page qui a déjà été écrite, il faut d'abord > effacer tout le bloc qui la contient. Or l'effacement d'un bloc est une > opération coûteuse, en temps et en usure des cellules. > > C'est un peu comme écrire au crayon sur une feuille de papier : pour > réécrire au même endroit, il faut d'abord effacer à la gomme, ce qui use > le papier. A la longue, à force de gommer un emplacement, le papier > devient trop usé et inutilisable. > > Au début, toutes les pages sont vides, tout va bien. On écrit donc sans > avoir besoin d'effacer. Quand les données d'une page doivent être > modifiées, on écrit les nouvelles données dans une autre page vide et on > marque l'anciene page comme obsolète. C'est rapide. Au passage on devine > qu'il n'y a plus de correspondance entre l'adresse d'un secteur et sa > position physique. Si on ne fait rien, à force d'écrire et de modifier > les données, toutes les pages vont finir par être écrites, qu'elles > contiennent des données obsolètes ou actuelles. Pour continuer à écrire, > il va falloir effacer des blocs de pages contenant des données > obsolètes. Si toutes les pages d'un bloc contiennent des données > obsolètes, il suffit d'effacer le bloc. Mais si certaines pages du bloc > contiennent des données actuelles, il faut les copier dans une mémoire > tampon, effacer le bloc et réécrire les données. > > On ne peut pas faire ça à chaque nouvelle écriture, ce serait trop > coûteux en temps et en usure. Pour éviter cette situation, le SSA > procède régulièrement à un "ramasse-miettes" (garbage collection). Cela > consiste à transférer les données des pages actuelles dans de nouveaux > blocs et d'effacer les anciens blocs. Le but est de toujours disposer de > suffisamment de pages vides d'avance pour que l'écriture reste rapide. > Il ne faut pas le faire trop souvent non plus car, comme tout > effacement, cela augmente l'usure. > > C'est notamment ici que le TRIM intervient : en marquant des secteurs > comme obsolètes lors de l'effacement d'un fichier, il facilite le > ramasse-miettes. Pour que cela soit efficace il vaut mieux que le > système d'exploitation utilise comme unité de stockage des blocs de > secteurs coïncident avec une ou plusieurs pages du SSD (d'où les > contraintes nouvelles d'alignement des partitions), ainsi tous les > secteurs d'une page seront marqués en même temps et la page pourra être > écartée. > > Le TRIM en lui-même ne fait que marquer les données obsolètes, il > n'efface rien. Un firmware de SSD bien conçu ne devrait pas déclencher > le ramasse-miette en fonction de la fréquence du TRIM mais seulement en > fonction du nombre de blocs libres et du taux d'écriture. >
Bonjour et merci pour ces explications bien imagées, ça aide ;-) On peut lire ici ou là qu'il est nécessaire (en terme d'optimisation) de laisser de l'espace libre sur le ssd (donc un espace non partitionné). Est-ce réellement utile ? Bonne journée, -- Christophe De Natale <christophedenat...@orange.fr>