Comment fonctionne TRIM Enabler?

8

J'ai récemment acheté un troisième SSD (OCZ) et utilisé Trim Enabler pour, enfin, activer TRIM. J'ai remarqué que certaines mises à jour logicielles peuvent entraîner la désactivation de TRIM, et j'ai donc été curieux de savoir comment fonctionne TRIM Enabler.

  • Remplace-t-il un KEXT par défaut par un personnalisé pour prendre en charge TRIM ou bascule-t-il simplement un paramètre PLIST?
  • Quoi qu'il en soit, existe-t-il un fichier qui, lorsqu'il est verrouillé, peut garantir que TRIM reste activé (sans conséquences négatives)?
Alexander - Rétablir Monica
la source

Réponses:

9

Le Trim Enabler corrige le fichier Kext suivant

/System/Library/Extensions/IOAHCIFamily.kext/Contents/PlugIns/IOAHCIBlockStorage.kext/Contents/MacOS/IOAHCIBlockStorage

qui vérifie si le SSD est un SSD tiers ou de marque Apple:

Vue IOAHCI hex / ascii

vous pouvez également activer le découpage manuellement en recherchant toutes les occurrences d'Apple dans le fichier et en les corrigeant dans un éditeur hexadécimal ou via un terminal:

##1. Backup old file
    $sudo cp /System/Library/Extensions/IOAHCIFamily.kext/Contents/PlugIns/IOAHCIBlockStorage.kext/Contents/MacOS/IOAHCIBlockStorage
/System/Library/Extensions/IOAHCIFamily.kext/Contents/PlugIns/IOAHCIBlockStorage.kext/Contents/MacOS/IOAHCIBlockStorage.original

##2. Patch the file to enable TRIM support
    $sudo perl -pi -e 's|(\x52\x6F\x74\x61\x74\x69\x6F\x6E\x61\x6C\x00{1,20})[^\x00]{9}(\x00{1,20}\x51)|$1\x00\x00\x00\x00\x00\x00\x00\x00\x00$2|sg' /System/Library/Extensions/IOAHCIFamily.kext/Contents/PlugIns/IOAHCIBlockStorage.kext/Contents/MacOS/IOAHCIBlockStorage

##3. Clear the system kernel extension cache

   $sudo kextcache -system-prelinked-kernel

   $sudo kextcache -system-caches
Chrisii
la source
1
Comment trouvez-vous même ces trucs?! Si j'exécute TRIM Enabler pour «patcher» mon fichier IOAHCIBlockStorage puis le verrouiller (avec les privilèges d'administrateur), est-ce que je subirais des effets indésirables? Bien sûr, je ne serais pas en mesure de prendre en charge les nouveaux SSD PCIe (que mon MacBook n'a même pas), mais cela empêcherait-il que de futures mises à jour inversent le correctif?
Alexander - Rétablir Monica
ma meilleure supposition: même si vous verrouillez le fichier de l'édition .. le programme de mise à jour remplacerait simplement le fichier complètement par un nouveau fichier. Vous auriez dû supprimer l'autorisation d'écriture pour root du dossier complet. Dans ce cas spécifique, je suppose que le programme d'installation échouera car il ne peut pas écrire dans le dossier. À mon avis, cela ne vaut pas la peine. Il suffit de démarrer Trim Enabler après une mise à jour et de réappliquer le patch.
Chrisii
@Chrisii savez-vous si cela fonctionnera à Yosemite? Cela change-t-il la signature kext?
thepen
@thepen Je ne l'ai pas encore testé mais je peux dire avec certitude que la modification du fichier changera la signature kext et donc pour le faire fonctionner, vous devrez d'abord désactiver la vérification de la signature kext (Plus d'informations peuvent être trouvées ici cindori .org / trim-enabler-and-yosemite )
Chrisii
2

La seule information que je peux trouver à ce sujet provient d'une entrée FAQ / blogpost

R: Trim Enabler corrige un pilote natif OSX Trim, qui fonctionne en arrière-plan même lorsque l'application est fermée ou supprimée. Ce correctif est réinitialisé lors des mises à jour du système, il peut donc être judicieux de conserver l'application cependant.

Megan Walker
la source
Le chemin est généralement réinitialisé lors des mises à jour lorsque Apple décide de mettre à jour les extensions de noyau mentionnées, par exemple pour prendre en charge les nouveaux disques ssd (en pensant aux nouveaux ssds ppcie annoncés à la WWDC).
Chrisii
2

Les SSD OCZ utilisent un contrôleur Sandforce qui a intégré un ramasse-miettes au premier plan qui retarde la nécessité d'effacer les blocs, réduisant mais ne supprimant pas le besoin de prise en charge TRIM. La garniture peut être considérée comme une aide à la collecte des ordures.

Trim VS Garbage Collection

Pour l'explication courte, la mémoire flash est organisée en groupes de pages où les données peuvent être écrites. Une fois qu'une page est écrite, elle ne peut pas être réécrite tant qu'elle n'est pas effacée. Mais une page ne peut être effacée que dans un groupe de 128 pages généralement appelé bloc. La complexité de l'écriture de données commence vraiment à s'intensifier dans le cas d'écritures aléatoires remplaçant des données précédemment écrites. Les écritures aléatoires placent les nouvelles données dans des pages précédemment effacées ailleurs, parsemant un bloc de données valides de «correctifs de données non valides». Afin d'écrire de nouvelles données dans ces correctifs, le bloc entier - les 128 pages - doit être effacé. Mais d'abord, toutes les pages environnantes contenant des données valides doivent être lues puis réécrites sur des pages vierges. Le bloc de pages vierges nouvellement effacé est alors prêt à enregistrer de nouvelles données.

[…] Tous les SSD NAND Flash utilisent GC. Certains utilisent le GC au premier plan et certains utilisent le GC en arrière-plan ou au repos. La différence entre eux est couverte dans mon blog http://blog.lsi.com/dont-let-ssds-throw-away-your-gold/ . En termes simples, la collecte des ordures en arrière-plan augmentera l'amplification d'écriture (WA) et usera le SSD plus tôt. Le premier plan GC est plus difficile à réaliser et je crois que seul le contrôleur SandForce est capable de le faire aujourd'hui

[…] TRIM est bénéfique pour tous les SSD, quel que soit le type de collecte de déchets utilisé. Je parle de la façon dont TRIM a vu le jour et pourquoi c'est nécessaire dans mon blog http://blog.lsi.com/did-you-know-hdds-do-not-have-a-del… . La commande TRIM est envoyée par le système d'exploitation au SSD pour identifier les pages de données qui peuvent être ignorées lors de la récupération de place. Le SSD ne peut pas savoir quels fichiers ont été supprimés jusqu'à ce que le système d'exploitation utilise les mêmes secteurs pour stocker de nouveaux fichiers, mais à ce moment-là, le SSD a déjà gaspillé des cycles en récupérant des données non valides, mais connues du SS.

Saviez-vous que les disques durs n'ont pas de commande Supprimer? C'est pourquoi les SSD ont besoin de TRIM

Garder votre SSD TRIM Il y a quelques années, l'industrie du stockage s'est réunie et a développé une solution entre l'OS et le SSD en créant une nouvelle commande SATA appelée TRIM. Ce n'est pas une commande qui force le SSD à effacer immédiatement les données comme le croient certains. En fait, la commande TRIM peut être considérée comme un message du système d'exploitation indiquant quelles adresses précédemment utilisées sur le SSD ne contiennent plus de données valides. Le SSD prend ces adresses et met à jour sa propre carte interne de sa mémoire flash pour marquer ces emplacements comme non valides. Avec ces informations, le SSD ne déplace plus ces données invalides pendant le processus GC, éliminant ainsi le temps perdu à réécrire des données invalides sur de nouvelles pages flash. Il réduit également le nombre de cycles d'écriture sur le flash, augmentant ainsi l'endurance des SSD.

le stylo
la source