[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Installation sur un SSD



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 <christophedenatale@orange.fr>


Reply to: