SSD : La documentation et les conseils (installation)

Si tu as compris à quoi sert cet espace non alloué ou cette partition non utilisée, tu devrais avoir une idée de la réponse.

Non, c’est juste un compromis ajustable.

Je n’ai pas compris à quoi sert cet espace et donc je n’ai pas d’idée de la réponse.

Je ne comprends pas, là encore, pourquoi on l’ajuste et d’après quoi.

C’est dommage de perdre deux cases avec du laïus … Mais bon.

Cet article est écrit pour Windows mais au fond je ne vois pas encore de subtile différence - le matériel restant lui même. Après, Debian - ou Linux en général - peuvent induire de meilleures manières d’intégrer un SSD.

J’aime beaucoup commentcamarche parfois mais il faut néanmoins - comme toujours - écouter d’autres sons de cloche :wink:

Le premier paragraphe des extraits nous apporte une information concrète telle que la rotation : le “turnover”

La proportion citée de 40 % est vraiment phénoménale ; Cela m’appelle à faire des recherches complémentaires.

Cet article n’est pas à prendre pour vérité dans son intégralité ; il est informatif et plutôt affirmatif, comme le dit PascalHambourg après, ce qui demande d’autres éclaircissements.

Ah. Je pensais que c’était expliqué dans l’article que tu as suivi, mais visiblement non.

Cet espace non utilisé constitue un niveau supplémentaire d’“over-provisioning” dont le rôle est de faciliter le nivellement de l’usure (wear levelling) et diminuer le phénomène d’amplification d’écriture (write amplification), et ainsi améliorer l’endurance (durée de vie) et les performances en écriture du SSD dans le temps. Le compromis se situe entre la diminution de la capacité utilisable et l’amélioration de performance et d’endurance. L’ennui est que si on sait immédiatement ce qu’on perd en capacité, il est plus difficile d’avoir une idée de ce qu’on gagnera en performance et endurance.

J’avais trouvé cet article en anglais sur Wikipédia : https://en.wikipedia.org/wiki/Write_amplification#Over-provisioning, mais au moment de poster cette réponse je vois qu’entretemps tu en as trouvé un en français (que je n’ai pas encore lu).

EDIT : bof, je trouve cet article plus affirmatif qu’informatif.

Si tu en doutais encore, la réponse à la seconde question est “peu importe” : il n’y a pas de différence du moment que cet espace n’a jamais servi. Au passage, je me demande comment on fait pour TRIMer un espace non alloué ou une partition non formatée qui a déjà servi.

EDIT : hdparm permet de TRIMer des plages de secteurs, mais ce n’est pas très ergonomique. Je n’ai pas trouvé mention de cette fonctionnalité dans les pages de manuel des programmes de gestion des partitions usuels (fdisk, parted, gdisk). A moins que ce ne soit pas nécessaire, le noyau envoyant lui-même les commandes TRIM quand il reçoit la notification qu’une partition a été supprimée (gare aux erreurs de manipulation dans ce cas) ?

PS : mettre l’URL dans l’attribution de la citation n’est pas idéal car on ne peut pas l’utiliser comme hyperlien.

@PascalHambourg

Je suis d’accord avec toi pour les extraits de commentcamarche, il y a quelques principes à prendre et le premier paragraphe qui explique simplement la rotation.

Par exemple, j’ai déplacé les index et les métadonnées des bibliothèques de mon serveur Plex sur un disque mécanique.

En ne parlant que d’endurance (de durée de vie) - pour un même SSD et pour un même usage pour comparaison - il est donc bon de laisser un grand espace vide dans le disque.

Il m’est impossible de lire un tel article technique en Anglais ; je ne suis pas assez compétent.

Ce n’est pas parce qu’un secteur TRIMé renvoie des zéros qu’écrire des zéros dans un secteur le TRIMe. Bien au contraire : écrire quoi que ce soit dans un secteur le marque comme occupé.

J’ai effacé la partie de ma contribution dont tu parles, la considérant comme une idiotie.
Ce qui confirme ce que je savais ; pas grand chose à propos de TRIM
Je suis davantage sur les couches hautes des systèmes.
Tu me semble toucher au bas niveau.
Je n’ai plus le goût pour ça, ni le temps.

C’est une question qui m’intéresse aussi ;

J’avais un W7 d’installé auparavant et cela n’a pas duré plus d’un mois ou deux. À cette période, je ne me suis pas du tout préoccupé de laisser un espace non alloué ; J’ai juste utilisé un utilitaire qui m’a expliqué avoir optimisé pour épargner le SSD (Wise Registry Cleaner). Le disque n’a jamais été totalement rempli mais il a été formaté.

J’ai actuellement sdc2 de 50 GB qui est de type Linux et non formatée, dédiée à la rotation.

Je pense qu’il serait utile de TRIMer toute cette partition.

Donc, il me suffirait dans ce cas de simplement supprimer sdc2

Effectivement, je crois qu’il faut être très prudent et parfaitement clair pour TRIMer des plages de secteurs avec “hdparm” : ce que je ne sais pas faire. D’autant plus dans de l’espace non-alloué.

Sans commande “hdparm” précise, je vais me contenter de supprimer sdc2.

Rien ne garantit que la suppression de la partition va TRIMer les blocs qu’elle contenait. Mais comme ton SSD semble avoir le bon goût de lire des zéros pour les blocs TRIMés, tu peux le vérifier en écrivant autre chose que des zéros dans la partition avant de la supprimer et en vérifiant s’il n’y a plus que des zéros après ou si les données sont encore présentes.

Sinon, une méthode sous-optimale consiste à utiliser la capacité de mk2efs à TRIMer lors de la création d’un système de fichiers ext2/3/4, avec l’option -E discard (active par défaut). Les blocs contenants des méta-données ne seront pas TRIMés, mais il sont relativement peu nombreux, surtout si on spécifie des options supplémentaires pour minimiser la taille des méta-données (nombre d’inodes, taille du journal…).

Hello r2mi, as-tu trouvé réponse à cette question quelque part stp ? Merci de ton aide :blush:

Hello SylvainMuller, PascalHambourg
Hello Tous et toutes

Je me réserve cette case pour te répondre SylvainMuller et également pour faire la manipulation évoquée PascalHambourg ;

Je suis très occupé avec mon Bois d’Hiver ; Désolé Modérateur

Considérez comme un brouillon et pour dire que je ne vous oublie pas.

Merci à toi, ici c’est la boxe française qui me prend du temps en ce moment.

Bonjour SylvainMuller,

Je préfère prendre la question d’une autre façon ; La qualité du nivellement d’usure n’est pas en rapport avec la quantité écrite globale.

On peut imaginer une très mauvaise qualité de nivellement d’usure et donc, à terme, une durée de vie réduite.

Ce qui n’empêche pas forcément totalement - peut-être - d’écrire énormément.

À l’inverse, avec une bonne qualité de nivellement d’usure, le volume global de données écrites peut aussi rester faible.

Il reste donc à bien redonner les principes qui prévalent pour définir une bonne qualité de nivellement d’usure des cellules.

Demeure néanmoins le choix (le compromis) entre endurance et performance - si j’ai bien compris.

L’endurance étant la durée de vie qui diminue d’autant l’espace disque disponible de la taille de l’espace non alloué.

Et la performance n’est t’elle que l’inverse ? C’est à dire une capacité SSD utilisable plus grande ?

La sortie détaillée de “smartctl” donne des infos sur le disque SSD. “tune2fs” liste ou ajuste des paramètres d’un système de fichiers ; d’une partition.

Ce sont deux outils différents.

Merci pour la réponse r2mi, et du coup, elle se traduirait comment comme attitude sur un système d’exploitation comme Debian stp, (ou dit autrement) : ça donnerait quoi comme ligne de commande propre ou comme fichier de config à mettre sur notre système stp ?

non. Le compromis se situe entre l’endurance et la performance en écriture d’une part, et la capacité disponible d’autre part. La performance en écriture, c’est la vitesse d’écriture qui a tendance à diminuer à cause du phénomène d’amplification lorsque l’espace libre diminue.

J’ai suivi le lien jugé parfait de mon tout premier message puis j’ai vérifié que l’option “discard” fonctionnait (un message précédent) et comme c’est le cas, je l’ai préférée au “fstrim” de l’amorçage (rc.local) et/ou en entrée crontab.
Je regrette de n’avoir pas prévu un espace non-alloué plus grand car je suis fan de matériel endurant et de très basse consommation également, au détriment de la performance (autre sujet).
J’ai besoin de faire la manipulation évoquée avec PascalHambourg pour TRIMer mon espace non alloué mais qui a déjà servi (donc qui fut alloué) pour pouvoir poursuivre. Cette manipulation est importante ; Elle signifie brièvement “désallouer” complètement (libérer) des cellules qui pourraient être considérées comme occupées - ou avoir été occupées - et ainsi les rendre à l’espace libre de rotation pour le nivellement. (de ce que j’ai compris)
J’ai évoqué avoir déporté sur un disque mécanique les métadonnées de mon serveur Plex ; Ces métadonnées peuvent représenter un très grand nombre d’écritures pour de grandes bibliothèques de médias.
Dans le même ordre d’idée, il est bon de penser à limiter les grandes séries d’écritures (ordonnancées ou manuelles) et tout comme pour mon Plex, déporter sur un mécanique les “bases de données” diverses qui pourraient être souvent sujettes à (ré)écriture.
Mais il ne s’agit pas de craindre sans raison ; suivant son matériel et la taille de l’espace non alloué, il n’y a pas le feu au lac :wink:
“smartctl” indique, comme évoqué, le niveau de vie SSD. Encore faut-t’il arriver à interpréter la sortie.
Je n’ai pas à dire davantage, donner des commandes ; je suis débutant et je cherche ; c’est mon tout premier SSD.

@PascalHambourg, pour la manipulation “TRIMer une partition ou un espace non alloué qui a servi”

J’ai ma partition sdc2 non formatée qui sert d’espace de rotation pour le nivellement de l’usure.

Le paramètre --write-sector de hdparm n’écrira que des zéro (man) ; donc ce ne sera pas vérifiable.

Il ne me reste que la possibilité de la formater pour appliquer la procédure décrite (vérification) :
https://nedoboi.wordpress.com/2011/11/12/tiny-tips-ssd-and-linux-enable-trim-and-check-if-it-works/
Puis de la supprimer pour vérifier les valeurs du secteur écrit.

Mais je crains l’hypothèse où cela ne marche pas, où je retrouve mes valeurs du secteur écrit et de ce fait d’avoir alloué tout le disque SSD.

Et

Ne me donne pas envie du tout, je ne serai pas capable de l’utiliser sans aide. Cette option me fait peur.

Je décide de créer une petite partition (10MiB) et de la formater pour faire le test ;

Après effacement du fichier testfile.txt, effacement de la petite partition, les données du secteur écrit sont restées intactes.

Je n’ai pas vraiment envie d’utiliser la méthode sous-optimale et je crois qu’il va m’en falloir passer par “–trim-sector-ranges” et effectivement :

Alternative : BLKDISCARD(8) ?

J’ai essayé pour la partition sdc2 non formatée de type Linux de 46,6G (notation fdisk)

root@n73sm:~# blkdiscard -s -v /dev/sdc2 
blkdiscard: /dev/sdc2 : échec d'ioctl BLKSECDISCARD: Opération non supportée
root@n73sm:~# 
root@n73sm:~# blkdiscard -v /dev/sdc2 
/dev/sdc2: 49999601664 octets abandonnés à partir de la position 0
root@n73sm:~# 

L’option “–secure” n’est pas supportée par ma chaîne contrôleur AHCI 1.0 - SSD MX100

Je crois que “blkdiscard” est un bon outil pour TRIMer (libérer des cellules). Le secteur écrit évoqué est bien lu comme des valeurs zéro après. (avec “le bon goût de mon SSD” pour le faire)

attention : la commande “blkdiscard” abandonne définitivement les données sur le périphérique invoqué. Les données sont définitivement perdues.

Bien vu pour la commande blkdiscard que je ne connaissais pas.
Il faut penser à l’exécuter sur une partition avant de la supprimer. Après, c’est trop tard.

Par contre je trouve que la traduction de “discard” par “abandonner” n’est pas très heureuse. On pourrait presque croire que la commande a abandonné…

Merci PascalHambourg, je suis moi-même fier de cette recherche.

Je ne pense pas du tout ; lors de mes essais, j’ai créé plusieurs fois des petites partitions de tests que j’ai libéré avec “blkdiscard” puis effacé avec fdisk. Ce qui ne m’a nullement empêché de recréer une partition non formatée pour tout l’espace dédié à la rotation et de la libérer ensuite comme le montre ma commande précédente.

Il n’y a pas de trop tard pour libérer des cellules avec l’outil “blkdiscard” ; Cet outil peut aussi libérer les cellules d’une partition formatée.

Également, le terme “libérer” pour les cellules me convient mieux que l’abandon.

C’est bien ce que je voulais dire : d’abord on applique blkdiscard sur la partition à supprimer et seulement ensuite on la supprime avec fdisk ou équivalent. Si on supprime la partition d’abord, on n’a plus les références de sa position pour savoir quels secteurs TRIMer. C’est dans ce sens que j’écrivais “c’est trop tard”. Certes on peut recréer une partition temporaire dans tout l’espace non alloué du disque juste pour lui appliquer blkdiscard, mais c’est du travail en plus.