TRIMイネーブラはどのように機能しますか?


8

最近、サードパート(OCZ)SSDを購入し、Trim Enablerを使用してTRIMを有効にしました。一部のソフトウェアアップデートではTRIMが無効になる可能性があることに気づきました。そのため、TRIMイネーブラーの機能について知りたくなっています。

  • それはいくつかのデフォルトのKEXTをTRIMをサポートするカスタムのものに置き換えますか、それとも単にいくつかのPLIST設定を切り替えますか?
  • どちらにしても、ロックされたときにTRIMが有効なままであることを確認できるファイルがありますか(悪影響はありません)?

回答:


9

Trim Enablerは次のKext-Fileにパッチを適用します

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

ssdがサードパーティ製かAppleブランドのSSDかを確認します。

IOAHCI hex / asciiビュー

また、ファイル内のすべての「Apple」の出現箇所を探し、16進エディターまたはターミナルを介してパッチを適用することにより、手動でトリムを有効にすることもできます。

##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

1
どうやってこれを見つけるのですか?TRIMイネーブラーを実行してIOAHCIBlockStorageファイルを「パッチ」し、それを(管理者特権で)ロックすると、何か悪影響がありますか?確かに、新しいPCIe SSD(私のMacBookにはない)をサポートすることはできませんが、将来のアップデートでパッチが元に戻されるのを防ぎますか?
アレクサンダー-モニカを2013年

私の推測では、ファイルを編集できないようにロックしたとしても、アップデーターはファイルを新しいファイルで完全に置き換えるだけです。完全なフォルダからrootの書き込み権限を削除する必要がありました。その特定のケースでは、フォルダーに書き込むことができないため、インストーラーが失敗すると思います。私の意見では、問題を起こす価値はありません。アップデート後にTrim Enablerを起動し、パッチを再適用するだけです。
Chrisii 2013年

@Chrisiiこれがヨセミテで機能するかどうか知っていますか?kextの署名を変更しますか?
thepen

@thepenまだテストしていませんが、ファイルを変更するとkext署名が変更されるため、それがまったく機能するようにするには、まずkext署名の検証を無効にする必要があります(詳細については、こちらのcindoriを参照してください) .org / trim-enabler-and-yosemite
Chrisii、2015年

2

私がこれで見つけることができる唯一の情報は、FAQ /ブログ投稿エントリからです

A:Trim Enablerは、ネイティブのOSX Trimドライバーにパッチを適用します。これは、アプリが閉じられたり削除されたりしてもバックグラウンドで機能します。このパッチはシステムアップデート時にリセットされるため、アプリを保持することをお勧めします。


パスは通常、新しいssdドライブをサポートするためにAppleが前述のカーネル拡張を更新することを決定したときに更新時にリセットされます(WWDCで発表された新しいppcie ssdsを考える)。
Chrisii 2013年

2

OCZ SSDは、ブロックを消去する必要性を遅らせる組み込みのフォアグラウンドガベージコレクションを備えたSandforceコントローラーを使用して、TRIMサポートの必要性を減らしますが、取り除きません。トリムは、ガベージコレクションの補助と見なすことができます。

トリムVSガベージコレクション

簡単な説明のために、フラッシュメモリは、データを書き込むことができるページのグループで構成されています。いったんページが書き込まれると、消去されるまでページを再書き込みすることはできません。ただし、ページは、ブロックと呼ばれる通常128ページのグループ内でのみ消去できます。以前に書き込まれたデータをランダムな書き込みで置き換える場合、データの書き込みの複雑さが実際にエスカレートし始めます。ランダムな書き込みにより、以前に消去されたページに新しいデータが配置され、有効なデータのブロックに「無効なデータのパッチ」が適用されます。これらのパッチに新しいデータを書き込むには、ブロック全体(128ページすべて)を消去する必要があります。ただし、最初に有効なデータを含むすべての周囲のページを読み取ってから、空白のページに書き直す必要があります。新しく消去された空白ページのブロックは、新しいデータを保存する準備ができています。

[…]すべてのNANDフラッシュベースのSSDはGCを使用しています。一部はフォアグラウンドGCを使用し、一部はバックグラウンドGCまたはアイドル時間GCを使用します。それらの違いは私のブログhttp://blog.lsi.com/dont-let-ssds-throw-away-your-gold/でカバーされています。簡単に言えば、バックグラウンドガベージコレクションは書き込み増幅(WA)を増やし、SSDをより早く消耗します。フォアグラウンドGCは実現が難しく、今日ではSandForceコントローラーしか実行できないと思います

[…] TRIMは、使用されるガベージコレクションの種類に関係なく、すべてのSSDにメリットがあります。TRIMがどのようにして誕生したのか、なぜTRIMが必要なのかについては、ブログhttp://blog.lsi.com/did-you-know-hdds-do-not-have-a-del…で話します。TRIMコマンドはOSからSSDに送信され、ガベージコレクション中に無視できるデータのページを識別します。SSDは、OSが新しいファイルを格納するために同じセクターを使用するまで、どのファイルが削除されたかを認識できませんが、その時点までに、SSDは、無効であるがSSに認識されているデータのガベージコレクションによるサイクルをすでに浪費しています。

HDDに削除コマンドがないことをご存知ですか?SSDがTRIMを必要とするのはそのためです

SSD TRIMの維持何年も前に、ストレージ業界が集まり、TRIMと呼ばれる新しいSATAコマンドを作成することにより、OSとSSD間のソリューションを開発しました。一部の人が信じているように、SSDにデータを即座に消去させるコマンドではありません。実際、TRIMコマンドは、SSDで以前に使用されていたアドレスが有効なデータを保持していないことに関するOSからのメッセージと考えることができます。SSDはこれらのアドレスを取得し、フラッシュメモリの独自の内部マップを更新して、それらの場所を無効としてマークします。この情報を使用すると、SSDはGCプロセス中に無効なデータを移動しなくなり、無効なデータを新しいフラッシュページに再書き込みする無駄な時間がなくなります。また、フラッシュの書き込みサイクル数を減らし、SSDの耐久性を向上させます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.