Trim (komputer)

Perintah trim (dikenal sebagai TRIM di set perintah ATA, dan UNMAP di set perintah SCSI) memungkinkan sistem operasi untuk menginformasikan solid-state drive (SSD) blok data mana yang tidak lagi dianggap 'sedang digunakan' dan oleh karena itu dapat dihapus secara internal.

Trim diperkenalkan segera setelah SSD diperkenalkan. Karena operasi SSD tingkat rendah berbeda secara signifikan dari hard drive, cara umum sistem operasi menangani operasi seperti penghapusan dan format mengakibatkan penurunan kinerja progresif yang tidak terduga dari operasi tulis pada SSD. Pemangkasan memungkinkan SSD menangani pengumpulan sampah secara lebih cepat, yang sebaliknya akan memperlambat operasi penulisan di masa mendatang ke blok yang terlibat.Shimpi, Anand Lal. (18 March 2009). p. 10. TRIM is an ATA command (Advanced Technology Attachment Command) that allows an OS to inform SSD about the blocks of data no longer in use. The SSD then deletes such blocks of data to make a way for newer blocks of data. TRIM is basically used for enhancing the performance and life span of the SSD. Unfortunately, the boon of TRIM becomes a bane for data recovery from SSD. Therefore, it is strongly recommended to regularly make a backup copy of your data using a reliable tool (for example Disk Drill for Windows), especially if your OS is warning about SSD failing.

Meskipun alat untuk "mengatur ulang" beberapa kandar ke keadaan baru sudah tersedia sebelum pemangkasan diperkenalkan, alat tersebut juga menghapus semua data pada drive, yang membuatnya tidak praktis digunakan untuk pengoptimalan berkelanjutan. Pada tahun 2022, banyak SSD dan kandar kilas USB memiliki mekanisme pengumpulan sampah internal untuk sistem file tertentu (seperti FAT32, NTFS, APFS) yang bekerja secara terpercaya dari pemangkasan. Meskipun ini berhasil mempertahankan masa pakai dan kinerjanya bahkan di bawah sistem operasi yang tidak mendukung trim, dia memiliki kelemahan terkait peningkatan amplifikasi tulis dan keausan sel kilat.

TRIM juga banyak digunakan pada kandar keras shingled magnetic recording (SMR).

 Latar belakang 
Karena cara banyak sistem berkas menangani operasi penghapusan, dengan menandai blok data sebagai "tidak digunakan", media penyimpanan (SSD, tetapi juga cakram keras) umumnya tidak mengetahui sektor/halaman mana yang benar-benar digunakan dan mana yang dapat digunakan. dianggap ruang kosong. Berlawanan dengan (misalnya) operasi penimpaan, penghapusan tidak akan melibatkan penulisan fisik ke sektor yang berisi data. Karena SSD umum tidak memiliki pengetahuan tentang struktur sistem berkas, termasuk daftar blok/sektor yang tidak digunakan, media penyimpanan tetap tidak menyadari bahwa blok telah tersedia. Meskipun ini sering memungkinkan alat yang tidak terhapus untuk memulihkan file dari hard disk elektromekanis, meskipun file dilaporkan sebagai "dihapus" oleh sistem operasi, itu juga berarti bahwa ketika sistem operasi kemudian melakukan operasi tulis ke salah satu sektor, yang dianggapnya ruang kosong, secara efektif menjadi operasi penimpaan dari sudut pandang media penyimpanan. Untuk disk magnetik, penimpaan data yang ada tidak berbeda dengan penulisan ke sektor kosong, tetapi karena beberapa SSD berfungsi pada tingkat terendah, penimpaan menghasilkan overhead yang signifikan dibandingkan dengan penulisan data ke halaman kosong, yang berpotensi melumpuhkan kinerja penulisan.

SSD menyimpan data dalam sel memori flash yang dikelompokkan ke dalam halaman yang biasanya berukuran 4 hingga 16 kiB, dikelompokkan bersama ke dalam blok yang biasanya terdiri dari 128 hingga 512 halaman. Contoh: 512 kiB blok yang mengelompokkan 128 halaman masing-masing 4 kiB. Sel memori kilat NAND dapat langsung ditulisi hanya jika kosong. Jika kebetulan berisi data, konten harus dihapus sebelum operasi tulis. Operasi penulisan SSD dapat dilakukan pada satu halaman tetapi, karena keterbatasan perangkat keras, perintah hapus selalu memengaruhi seluruh blok; akibatnya, menulis data ke halaman kosong pada SSD sangat cepat, tetapi sangat melambat setelah halaman yang ditulis sebelumnya perlu ditimpa. Karena penghapusan sel di halaman diperlukan sebelum dapat ditulis lagi, tetapi hanya seluruh blok yang dapat dihapus, penimpaan akan memulai siklus baca-hapus-ubah-tulis: isi seluruh blok disimpan di cache, kemudian seluruh blok dihapus dari SSD, kemudian halaman yang ditimpa ditulis ke dalam blok yang di-cache, dan hanya dengan demikian seluruh blok yang diperbarui dapat ditulis ke media flash. Fenomena ini dikenal sebagai amplifikasi tulis.

 Operasi 
Perintah TRIM memungkinkan sistem operasi untuk memberi tahu SSD tentang halaman yang tidak lagi berisi data yang valid. Untuk operasi penghapusan berkas, sistem operasi akan menandai sektor file sebagai bebas untuk data baru, kemudian mengirim perintah TRIM ke SSD. Setelah pemangkasan, SSD tidak akan menyimpan konten apa pun dari blok saat menulis data baru ke halaman memori flash, menghasilkan amplifikasi penulisan yang lebih sedikit (penulisan lebih sedikit), throughput penulisan yang lebih tinggi (tidak perlu urutan baca-hapus-modifikasi), sehingga meningkatkan umur kandar.

SSD yang berbeda menerapkan perintah dengan agak berbeda, sehingga kinerjanya dapat bervariasi.

TRIM memberi tahu SSD untuk menandai wilayah LBA sebagai tidak valid dan pembacaan selanjutnya pada wilayah tersebut tidak akan mengembalikan data yang berarti. Untuk waktu yang sangat singkat, data masih dapat berada di flash secara internal. Namun, setelah perintah TRIM dikeluarkan dan pengumpulan sampah telah dilakukan, sangat tidak mungkin bahwa bahkan seorang ilmuwan forensik dapat memulihkan data.

 Penerapan 

 Operating system support 
Perintah TRIM hanya bermanfaat jika kandar menerapkannya dan sistem operasi memintanya. Tabel di bawah ini mengidentifikasi setiap sistem operasi terkenal dan versi pertama yang mendukung perintah tersebut. Selain itu, solid-state drive lama yang dirancang sebelum penambahan perintah TRIM ke standar ATA akan memerlukan pembaruan firmware, jika tidak, perintah baru akan diabaikan. Namun, tidak setiap drive dapat ditingkatkan untuk mendukung pemangkasan.

Dukungan untuk TRIM juga bervariasi berdasarkan kemampuan kandar sistem berkas tertentu pada sistem operasi, karena hanya program dengan pemahaman tentang bagian disk mana yang merupakan ruang kosong yang dapat dengan aman mengeluarkan perintah, dan pada tingkat sistem kemampuan ini cenderung terletak pada driver sistem file itu sendiri.
Sistem operasi Didukung sejak Catatan DragonFly BSD 2011-05 Mei 2011 GratisBSD 2010-07 8.1 – Juli 2010  Dukungan ditambahkan pada lapisan perangkat blok di 8.1. Dukungan sistem file telah ditambahkan di FreeBSD 8.3 dan FreeBSD 9, dimulai dengan UFS . Dukungan pemangkasan ZFS telah ditambahkan di FreeBSD 9.2. FreeBSD 10 mendukung pemangkasan pada konfigurasi RAID perangkat lunak. NetBSD 2012-10 Oktober 2012 Linux 2008-12-25 2.6.28–25 Desember 2008  Dukungan awal untuk operasi pembuangan telah ditambahkan untuk perangkat flash FTL NAND di 2.6.28. Dukungan untuk perintah ATA TRIM ditambahkan di 2.6.33. Tidak semua sistem file menggunakan trim. Di antara sistem file yang dapat mengeluarkan permintaan trim secara otomatis adalah ext4, Btrfs, FAT, GFS2, JFS, XFS, dan NTFS-3G . Namun, di beberapa distribusi, ini dinonaktifkan secara default karena masalah kinerja, mendukung pemangkasan terjadwal pada SSD yang didukung. Ext3, NILFS2 dan OCFS2 menawarkan ioctls untuk melakukan pemangkasan offline. Spesifikasi TRIM meminta untuk mendukung daftar rentang trim, tetapi pada kernel 3.0 trim hanya dipanggil dengan satu rentang yang lebih lambat.

Di banyak distribusi Linux yang lebih baru, systemd menyediakan unit fstrim.timer . macOS 23-06-2011 10.6.8–23 Juni 2011  Meskipun driver perangkat blok AHCI memperoleh kemampuan untuk menampilkan apakah perangkat mendukung operasi TRIM di 10.6.6 (10J3210), fungsionalitas itu sendiri tetap tidak dapat diakses hingga 10.6.8, ketika operasi TRIM diekspos melalui IOStorageFamily dan sistem file (HFS+) dukungan telah ditambahkan. Hingga 10.10.4, Mac OS X secara native mengaktifkan TRIM hanya untuk SSD bermerek Apple; utilitas pihak ketiga tersedia untuk mengaktifkannya untuk merek lain. Driver TRIM pihak ketiga yang lama berhenti berfungsi sejak pembaruan Yosemite. Driver yang diperbarui sekarang ada yang berfungsi dengan OS X Yosemite. Dalam pembaruan Mac OS X 10.10.4, Apple menambahkan utilitas baris perintah, trimforce, yang dapat digunakan untuk mengaktifkan TRIM pada SSD pihak ketiga. Microsoft Windows 2009–10 Windows 7 dan Windows Server 2008 R2 – Oktober 2009  Alt URL Windows 7 awalnya mendukung TRIM hanya untuk drive dalam keluarga AT Attachment termasuk Parallel ATA dan Serial ATA, dan tidak mendukung perintah ini untuk perangkat lain termasuk Storport PCI-Express SSD meskipun perangkat itu sendiri akan menerima perintah tersebut.Geoff Gasior (2012) OCZ's RevoDrive 3 X2 240GB solid-state drive Dipastikan bahwa dengan driver Microsoft asli, perintah TRIM berfungsi pada Windows 7 dalam AHCI dan Mode IDE / ATA lama. Windows 8 dan yang lebih baru Sistem operasi Windows mendukung trim untuk PCI Express SSD berdasarkan NVMe, dan perintah unmap yang merupakan analog lengkap dari perintah TRIM dari Serial ATA untuk perangkat yang menggunakan tumpukan driver SCSI, termasuk USB Attached SCSI Protocol (UASP) . Microsoft telah merilis pembaruan untuk Windows 7 yang menambahkan dukungan NVM Express termasuk TRIM untuk PCIe SSD. TRIM diketahui didukung untuk ReFS dan NTFS, keduanya mengimplementasikan sakelar DisableDeleteNotify untuk menonaktifkannya. Sumber tidak setuju apakah ada dukungan TRIM untuk sistem file lain. OpenSolaris 2010-07 Juli 2010  Android 2013-7 4,3  – 24 Juli 2013 "Android 4.3 announced, rolling out to Nexus devices today".The Verge. 24 July 2013. Retrieved 24 July 2013. Menjalankan fstrim secara otomatis hingga satu kali setiap 24 jam jika perangkat telah menganggur setidaknya selama satu jam dan setidaknya terisi 80% (30% jika terhubung ke pengisi daya).

 masalah RAID 
Hingga Januari 2017, dukungan untuk perintah TRIM tidak diterapkan di sebagian besar teknologi RAID berbasis perangkat keras. Namun, implementasi RAID perangkat lunak sering kali menyertakan dukungan untuk TRIM.

 Windows 
Windows 10 menawarkan dukungan untuk TRIM dalam volume ID SSD menggunakan opsi "optimalkan drive" saat mengonfigurasi volume RAID.

 macOS 
Driver RAID macOS tidak mendukung TRIM. Ini berlaku untuk semua versi Mac OS X dari 10.7 hingga macOS 10.12.x.

TRIM didukung untuk volume RAID (0,1,4,5 & 10) saat menggunakan aplikasi SoftRAID® pihak ketiga, termasuk dukungan TRIM dengan perangkat SSD non-Apple. (Catatan: TRIM untuk perangkat SSD non-Apple harus diaktifkan secara khusus menggunakan perintah terminal "sudo trimforce enable")

 Linux 
TRIM tersedia dengan volume RAID dalam rilis dmraid kernel Linux pasca-Januari-2011, yang mengimplementasikan dukungan "RAID perangkat keras palsu" berbantuan BIOS, dan yang sekarang melewati semua permintaan TRIM dari sistem file yang berada di larik RAID.

Jangan bingung dengan dmraid, sistem RAID perangkat lunak serba guna Linux, mdraid, memiliki dukungan eksperimental untuk TRIM berbasis batch (bukan langsung, setelah penghapusan file) pada array RAID 1 ketika sistem dikonfigurasikan untuk menjalankan utilitas mdtrim secara berkala pada sistem file (bahkan yang menyukai ext3 tanpa dukungan TRIM asli). Di versi Linux yang lebih baru, mis. Red Hat Enterprise Linux 6.5 dan seterusnya, mdraid mendukung benar-benar melewati perintah TRIM secara real-time, bukan hanya sebagai pekerjaan batch.

Namun, Red Hat menyarankan untuk tidak menggunakan perangkat lunak RAID level 1, 4, 5, dan 6 pada SSD dengan sebagian besar teknologi RAID, karena selama inisialisasi, sebagian besar daya guna pengelolaan RAID (misalnya mdadm Linux) menulis ke semua blok pada perangkat untuk memastikan bahwa checksum ( atau verifikasi drive-to-drive, dalam kasus RAID 1 dan 10) beroperasi dengan benar, menyebabkan SSD percaya bahwa semua blok selain di area cadangan sedang digunakan, menurunkan kinerja secara signifikan.

Di sisi lain, Red Hat merekomendasikan penggunaan RAID 1 atau RAID 10 untuk LVM RAID pada SSD, karena level ini mendukung TRIM ("buang" dalam terminologi Linux), dan utilitas LVM tidak menulis ke semua blok saat membuat RAID 1 atau RAID 10 volume.

 RAID berdasar perangkat tegar 
Untuk waktu yang singkat pada bulan Maret 2010, pengguna dituntun untuk percaya bahwa driver Intel Rapid Storage Technology (RST) 9.6 mendukung TRIM pada volume RAID, tetapi Intel kemudian mengklarifikasi bahwa TRIM didukung untuk pengaturan BIOS mode AHCI dan mode RAID, tetapi tidak jika drive tersebut merupakan bagian dari volume RAID.

Mulai Agustus 2012, Intel mengonfirmasi bahwa chipset seri 7 dengan driver Rapid Storage Technology (RST) 11.2 mendukung TRIM untuk RAID 0 di Microsoft Windows 7. Meskipun Intel tidak mengonfirmasi dukungan untuk chipset seri 6, TRIM pada volume RAID 0 telah terbukti bekerja pada chipset Z68, P67, dan X79 oleh penggemar perangkat keras dengan ROM opsi RAID yang dimodifikasi. Diperkirakan bahwa kurangnya dukungan resmi untuk chipset 6-series adalah karena biaya validasi atau upaya untuk mendorong konsumen untuk meningkatkan, bukan karena alasan teknis.

Pengecualian untuk kebutuhan ROM opsi yang dimodifikasi pada motherboard dengan chipset X79 adalah jika pabrikan telah menambahkan sakelar ROM; ini memerlukan ROM RST dan RST-E berada di dalam BIOS/UEFI. Ini memungkinkan ROM RST untuk digunakan sebagai pengganti ROM RST-E, memungkinkan TRIM berfungsi. Intel mencatat bahwa kinerja terbaik dapat dicapai dengan menggunakan driver dengan versi yang sama dengan ROM; misalnya, jika BIOS/UEFI memiliki ROM opsi 11.0.0.0m, driver versi 11.x harus digunakan.

 Menggunakan sistem berkas yang tidak didukung 
Jika sistem file tidak secara otomatis mendukung TRIM, beberapa utilitas dapat mengirim perintah pemangkasan secara manual. Biasanya mereka menentukan blok mana yang gratis dan kemudian meneruskan daftar ini sebagai serangkaian perintah pemangkasan ke drive. Utilitas ini tersedia dari berbagai produsen (misalnya Intel, G.Skill), atau sebagai utilitas umum (misalnya "wiper" hdparm Linux sejak v9.17, atau mdtrim, seperti yang disebutkan di atas). Baik hdparm dan mdtrim menemukan blok gratis dengan mengalokasikan file besar pada sistem file dan menyelesaikan lokasi fisik yang ditetapkan.

 Dukungan perangkat keras 

 ATA 
Spesifikasi perintah TRIM  (draft specification T13/e07154r6) telah distandardisasi sebagai bagian dari standar antarmuka AT Attachment (ATA), yang dipimpin oleh Komite Teknis T13 dari Komite Internasional untuk Standar Teknologi Informasi (INCITS). TRIM diimplementasikan di bawah perintah DATA SET MANAGEMENT (opcode 06h) dari rancangan spesifikasi ACS-2. Standar ATA didukung oleh perangkat keras ATA paralel (IDE, PATA) dan serial (SATA).

Kelemahan dari perintah ATA TRIM asli adalah bahwa perintah tersebut didefinisikan sebagai perintah yang tidak dapat diantri dan oleh karena itu tidak dapat dengan mudah dicampur dengan beban kerja normal dari operasi baca dan tulis yang diantri. SATA 3.1 memperkenalkan perintah TRIM yang antri untuk mengatasi masalah ini.

Ada berbagai jenis TRIM yang ditentukan oleh SATA Words 69 dan 169 yang dikembalikan dari perintah ATA IDENTIFY DEVICE:

 TRIM non-deterministik: Setiap perintah baca ke alamat blok logis (LBA) setelah TRIM dapat mengembalikan data yang berbeda.
 TRIM deterministik (DRAT): Semua perintah yang dibaca ke LBA setelah TRIM akan mengembalikan data yang sama, atau menjadi determinasi.
 Read Zero deterministik setelah TRIM (RZAT): Semua perintah baca ke LBA setelah TRIM akan menghasilkan nol.

Ada informasi tambahan di SATA Word 105 yang menjelaskan jumlah maksimum blok 512-bita per perintah DATA SET MANAGEMENT yang dapat didukung oleh drive. Biasanya defaultnya adalah 8 (atau 4 kB) tetapi banyak drive menguranginya menjadi 1 untuk memenuhi Persyaratan Perangkat Keras Microsoft Windows untuk TRIM, waktu penyelesaian perintah tersebut tidak boleh melebihi 20 ms atau 8 ms × (jumlah entri rentang LBA), mana saja yang lebih besar, dan akan selalu kurang dari 600 ms.

Rentang LBA individual disebut Entri Rentang LBA dan diwakili oleh delapan byte. LBA dinyatakan dengan enam byte pertama Entri Rentang LBA dan Panjang Rentang adalah penghitung berbasis nol (misalnya, 0=0 dan 1=1) yang diwakili oleh dua byte sisanya. Jika panjang rentang dua byte adalah nol, maka Entri Rentang LBA akan dibuang sebagai padding. Artinya, untuk setiap blok TRIM 512 byte yang didukung perangkat, jumlah maksimumnya adalah 64 rentang 32 MB, atau 2 GB. Jika perangkat mendukung SATA Word 105 di 8 maka perangkat tersebut seharusnya dapat memangkas 16 GB dalam satu perintah TRIM (DATA SET MANAGEMENT).

 NVM Ekspres 

 Disadvantages 

 Some deniable encryption schemes involve making the whole disk look like random garbage. Using TRIM defeats this layer of plausible deniability as the all-zero (or all-one) blocks created easily indicate what blocks are used. It has been argued disabling TRIM might be suspicious too.
 The original version of the TRIM command has been defined as a non-queued command by the T13 subcommittee, and consequently can incur massive execution penalty if used carelessly, e.g., if sent after each filesystem delete command. The non-queued nature of the command requires the driver to first wait for all outstanding commands to be finished, issue the TRIM command, then resume normal commands. TRIM can take a lot of time to complete, depending on the firmware in the SSD, and may even trigger a garbage collection cycle. This penalty can be minimized in solutions that periodically do a batched TRIM, rather than trimming upon every file deletion, by scheduling such batch jobs for times when system utilization is minimal. This TRIM disadvantage has been overcome in Serial ATA revision 3.1 with the introduction of the Queued TRIM Command.
 Faulty drive firmware that misreports support for queued TRIM or has critical bugs in its implementation has been linked to serious data corruption in several devices, most notably Micron and Crucial's M500 and Samsung's 840 and 850 series. The data corruption has been confirmed on the Linux operating system (the only OS with queued trim support as of 1 July 2015).

Perangkat ini masuk daftar hitam di kernel Linux untuk memaksa pengiriman perintah TRIM yang tidak antri ( ) ke drive ini alih-alih perintah TRIM yang diantri:

 Micron/Crucial M500 menggunakan semua versi firmware termasuk SSD yang disertifikasi ulang oleh pabrik
 Micron M510 menggunakan firmware versi MU01
 Micron/Crucial M550 menggunakan firmware versi MU01
 Krusial MX100 menggunakan firmware versi MU01
 SSD Samsung seri 840 dan 850 menggunakan semua versi firmware

File ini juga memasukkan SuperSSpeed S238 ke dalam daftar hitam terhadap TRIM secara umum karena menyebabkan blok yang salah kehilangan data saat TRIM dikeluarkan.

 also memiliki daftar putih ke SSD:

 SSD penting
 Intel SSD tidak termasuk Intel SSD 510
 SSD mikron
 SSD Samsung
 SSD Seagate 

 Lihat juga 

 Remanensi data

 Referensi 

 Pranala luar 

 Dari write() hingga chip flash – Penjelasan tentang bagaimana perintah TRIM memungkinkan SSD menghapus data yang tidak digunakan oleh sistem file
 Buku Putih Perintah TRIM – Buku putih yang menjelaskan tujuan dan tindakan perintah
 Paten Fusion-io "Peralatan, sistem, dan metode untuk cache tulis redundan"