Bagaimana cara kerja TRIM Enabler?

8

Saya baru-baru ini membeli SSD bagian ketiga (OCZ) dan menggunakan Trim Enabler untuk mengaktifkan TRIM. Saya perhatikan bahwa beberapa pembaruan perangkat lunak dapat menyebabkan TRIM dinonaktifkan, dan karenanya ingin tahu tentang cara kerja TRIM Enabler.

  • Apakah itu mengganti beberapa KEXT default dengan yang kustom untuk mendukung TRIM atau apakah itu hanya beralih beberapa pengaturan PLIST?
  • Either way, apakah ada file yang, ketika dikunci, dapat memastikan bahwa TRIM tetap diaktifkan (tanpa konsekuensi negatif)?
Alexander - Pasang kembali Monica
sumber

Jawaban:

9

Trim Enabler menambal Kext-File berikut

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

yang memeriksa apakah SSD adalah SSD pihak ke-3 atau Apple:

Tampilan hex / ascii IOAHCI

Anda juga dapat mengaktifkan trim secara manual dengan mencari semua kejadian 'Apple' dalam file dan menambalnya di hex-editor atau melalui 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
sumber
1
Bagaimana Anda menemukan barang ini ?! Jika saya menjalankan TRIM Enabler untuk "menambal" file IOAHCIBlockStorage saya dan kemudian menguncinya (dengan hak admin), apakah saya akan mengalami efek yang merugikan? Tentu saya tidak akan dapat mendukung SSD PCIe baru (yang bahkan tidak dimiliki oleh MacBook saya), tetapi apakah itu akan mencegah pembaruan di masa mendatang dari membalikkan tambalan?
Alexander - Kembalikan Monica
tebakan terbaik saya: bahkan jika Anda mengunci file dari pengeditan .. pembaru hanya akan mengganti file sepenuhnya dengan file baru. Anda harus menghapus izin menulis untuk root dari folder lengkap. Dalam kasus tertentu saya menganggap installer akan gagal karena tidak dapat menulis ke folder. Menurut saya itu tidak sepadan dengan masalahnya. Mulai saja Trim Enabler setelah pembaruan dan terapkan kembali tambalan.
Chrisii
@ Chisiisi apakah Anda tahu ini akan berhasil di Yosemite? Apakah itu mengubah penandatanganan kext?
lalu
@thepen saya belum mengujinya tetapi saya dapat mengatakan dengan pasti bahwa memodifikasi file akan mengubah tanda tangan kext dan oleh karena itu untuk membuatnya bahkan berfungsi sama sekali Anda harus terlebih dahulu menonaktifkan verifikasi penandatanganan kext (Informasi lebih lanjut dapat ditemukan di sini cindori .org / trim-enabler-and-yosemite )
Chrisii
2

Satu-satunya informasi yang dapat saya temukan tentang ini adalah dari entri FAQ / blogpost

A: Trim Enabler menambal pengandar OSX Trim asli, yang bekerja di latar belakang bahkan ketika aplikasi ditutup atau dihapus. Patch ini direset pada pembaruan sistem, jadi mungkin ide yang baik untuk tetap menggunakan aplikasi ini.

Megan Walker
sumber
Path biasanya direset pada pembaruan ketika Apple memutuskan untuk memperbarui ekstensi kernel yang disebutkan misalnya untuk mendukung drive SSD baru (Memikirkan SSD ppcie baru diumumkan di WWDC).
Chrisii
2

SSD OCZ menggunakan pengontrol Sandforce yang telah membangun pengumpulan sampah latar depan yang menunda kebutuhan untuk menghapus blok, mengurangi tetapi tidak menghilangkan kebutuhan akan dukungan TRIM. Potong dapat dianggap sebagai bantuan untuk pengumpulan sampah.

Potong VS Sampah Koleksi

Untuk penjelasan singkat, memori flash disusun dalam kelompok halaman tempat data dapat ditulis. Setelah halaman ditulis, itu tidak dapat ditulis ulang sampai terhapus. Tetapi sebuah halaman hanya dapat dihapus dalam grup yang biasanya terdiri dari 128 halaman yang disebut blok. Kompleksitas penulisan data benar-benar mulai meningkat dalam kasus penulisan acak menggantikan data yang ditulis sebelumnya. Tulisan acak menempatkan data baru di halaman yang sebelumnya dihapus di tempat lain, menambahkan blok data yang valid dengan "tambalan data yang tidak valid." Untuk menulis data baru ke tambalan ini, seluruh blok - semua 128 halaman - harus dihapus. Tetapi pertama-tama semua halaman di sekitarnya dengan data yang valid harus dibaca dan kemudian ditulis ulang ke halaman kosong. Blok halaman kosong yang baru dihapus kemudian siap untuk menyimpan data baru.

[…] Semua SSD berbasis NAND Flash menggunakan GC. Beberapa menggunakan foreground GC dan beberapa menggunakan background atau idle-time GC. Perbedaan di antara mereka tercakup dalam blog saya http://blog.lsi.com/dont-let-ssds-throw-away-your-gold/ . Secara sederhana pengumpulan sampah latar belakang akan meningkatkan amplifikasi tulis (WA) dan aus SSD lebih cepat. Foreground GC lebih sulit untuk dicapai dan saya percaya hanya pengontrol SandForce yang dapat melakukannya hari ini

[…] TRIM bermanfaat bagi semua SSD terlepas dari jenis pengumpulan sampah apa yang digunakan. Saya berbicara tentang bagaimana TRIM muncul dan mengapa perlu di blog saya http://blog.lsi.com/did-you-know-hdds-do-not-have-a-del… . Perintah TRIM dikirim oleh OS ke SSD untuk mengidentifikasi halaman data apa yang dapat diabaikan selama pengumpulan sampah. SSD tidak dapat memberi tahu file apa yang telah dihapus sampai OS menggunakan sektor yang sama untuk menyimpan file baru, tetapi pada saat itu SSD telah membuang siklus dengan mengumpulkan sampah data yang tidak valid, tetapi diketahui oleh SS.

Tahukah Anda HDD tidak memiliki perintah Hapus? Itu sebabnya SSD membutuhkan TRIM

Menjaga SSD TRIM Anda Beberapa tahun yang lalu, industri penyimpanan berkumpul dan mengembangkan solusi antara OS dan SSD dengan menciptakan perintah SATA baru yang disebut TRIM. Ini bukan perintah yang memaksa SSD untuk segera menghapus data seperti yang diyakini sebagian orang. Sebenarnya perintah TRIM dapat dianggap sebagai pesan dari OS tentang apa alamat yang sebelumnya digunakan pada SSD tidak lagi memegang data yang valid. SSD mengambil alamat-alamat itu dan memperbarui peta internalnya sendiri dari memori flashnya untuk menandai lokasi-lokasi itu tidak valid. Dengan informasi ini, SSD tidak lagi memindahkan data yang tidak valid selama proses GC, menghilangkan waktu yang terbuang untuk menulis ulang data yang tidak valid ke halaman flash baru. Ini juga mengurangi jumlah siklus tulis pada flash, meningkatkan daya tahan SSD.

pulpen
sumber