Apakah Ubuntu memiliki dukungan untuk perintah TRIM untuk digunakan dengan SSD?

34

Drive SSD perlu "dihapus / direset" setelah drive terisi untuk mempertahankan kinerja. Ini dilakukan melalui perintah TRIM untuk drive SSD baru. Apakah Ubuntu mendukung perintah TRIM (melalui hdparm dll) untuk membersihkan / mengatur ulang drive ini?

ssanj
sumber
Pertanyaan yang bagus, meskipun perhatikan bahwa sejauh mana TRIM meningkatkan kinerja memang bervariasi di antara SSD, untuk beberapa hal itu tidak membuat banyak perbedaan seperti yang Anda pikirkan (meskipun mereka sebagian besar tampaknya lebih lambat).
Nicholas Knight
1
Saya pikir kinerjanya akan dikembalikan ke standar pabrik yang sama (jika tidak dekat). Lihat penjelasan di sini -> anandtech.com/show/2738/10
ssanj

Jawaban:

24

Sepertinya ada dukungan untuk fungsi TRIM di rilis 10.10 dan yang lebih baru:

Juga, hal-hal TRIM terjadi secara otomatis - blok kosong secara otomatis dilepaskan ketika mereka tidak lagi diperlukan (misalnya, Anda menghapus file), jika disk melaporkan bahwa ia mendukung TRIM. Anda tidak harus mengeluarkan perintah hdparm secara manual agar ini berfungsi.

Jeremy Kerr
sumber
Saya pikir Anda masih harus menggunakan alat yang "mengirim" perintah TRIM ke SDD. Ada baiknya jika itu berfungsi seperti yang Anda tentukan. :) Artikel Anandtech ini -> ( anandtech.com/show/2738/10 ) menetapkan bahwa agar TRIM berfungsi, baik OS maupun SSD memerlukan dukungan TRIM. Saya kira pertanyaan saya adalah tentang dukungan OS / Linux untuk TRIM ketika digunakan dengan drive SSD yang sadar TRIM.
ssanj
3
Perintah TRIM perlu mengetahui blok mana yang akan dibebaskan, jadi akan berbahaya mengeluarkan ini tanpa mengetahui dengan pasti blok mana pada disk yang tidak digunakan. Ya, baik OS dan disk harus memiliki dukungan langsing. Di Linux, ini ditambahkan dalam kernel versi 2.6.33, jadi akan dimasukkan dalam Maverick. Kedua pengandar disk sistem file yang Anda gunakan harus mendukung trim agar ini berfungsi dengan baik. Jika Anda menggunakan ext4 sebagai sistem file di Maverick, Anda seharusnya baik-baik saja.
Jeremy Kerr
Lalu saya bertanya-tanya apakah mungkin SSD yang ada menjalani "retimitted TRIM" untuk membersihkan akumulasi cruft yang ada sebelum OS mendukung TRIM. Atau perlu menginstal ulang?
Kent Boogaart
20

Jawaban Jeremy tidak sepenuhnya akurat, AFAIK. Saya telah menjalankan kernel stabil terbaru di Lucid untuk beberapa waktu sekarang dan telah mengikuti status TRIM cukup tajam karena saya memiliki Kelincahan OCZ sebagai disk utama saya.

Inilah yang (saya pikir) saya tahu:

  • Kernel memiliki dukungan TRIM pada 2.6.33 (Maverick 2.6.35).

  • EXT4 memiliki dukungan TRIM tetapi hanya ketika penjurnalan dimatikan.

  • Cara TRIM bekerja di kernel sangat mendasar dan cukup lambat. Disk yang mengikuti spesifikasi dapat menerima beberapa rentang tetapi kernel saat ini hanya dapat melakukan satu rentang pada satu waktu. Ini berasal dari sesuatu yang saya baca mungkin sebulan yang lalu. Saya berharap memiliki sumber karena ini mungkin tidak benar atau mungkin tidak berlaku lagi.

Journalling adalah apa yang membunuhnya bagi saya. Korupsi data adalah PITA.

Namun versi hdparm yang lebih baru (v9.25 - Maverick ada di v9.27) datang dengan skrip yang disebut wiper.shyang melakukan analisis cepat drive dan kemudian memangkas semua ruang kosong. Daripada kehilangan fitur, saya merasa jauh lebih mudah wiper.shuntuk menjalankan cron seminggu sekali (atau sekali sehari / bulan / apa pun). Degradasi SSD untuk drive OS tidak terjadi secepat itu kecuali Anda terus-menerus merusaknya. Anda tidak perlu PEMANGKUAN waktu nyata.

Ada juga antarmuka GUI yang disebut DiskTRIM yang tampaknya tidak ada dalam repo. Pengguna yang kurang berpengalaman mungkin menemukan ini lebih mudah digunakan daripada mengatur pekerjaan cron.

Ada PPA untuk hdparm dan disktrim dan semua dapat dijalankan di Lucid (dan lebih jauh ke belakang) tanpa perlu kernel 2.6.33+.

Oli
sumber
Bisakah Anda menautkan ke PPA tersebut?
Jorge Castro
Jadi, apakah mengaktifkan discardopsi mount untuk menonaktifkan penjurnalan ext4? Saya baru saja mencari referensi tetapi saya tidak dapat menemukannya selain dari jawaban ini - dapatkah Anda memberikan sumber?
Hamish Downer
2
di Ubuntu 12.04 wiper.sh telah diganti dengan fstrim
tomodachi
1
@Oli: Saya sudah melakukan beberapa bacaan lagi dan saya sekarang cukup yakin bahwa opsi buangan tidak menonaktifkan jurnal. Afaict awalnya opsi buang hanya bekerja dengan jurnal (saya menemukan patch ini yang memungkinkan membuang tanpa jurnal). Halaman kernel ext4 mendokumentasikan opsi buangan tetapi tidak menyebutkan jurnal tidak kompatibel.
Hamish Downer
8

Linux memiliki dukungan untuk TRIM otomatis dengan sistem file ETX4 sejak kernel 2.6.33.

Rilis Ubuntu pertama dengan dukungan TRIM otomatis adalah 10.10 (Maveric), tetapi harus diaktifkan di fstab (seperti dijelaskan di sini ).

Uli
sumber
4

Secara umum, ya, karena ada banyak cara untuk mendapatkan kernel yang lebih baru. Jika kami mengklarifikasi pertanyaan Anda untuk dibaca, "Apakah 10,04 LTS memiliki dukungan di luar kotak untuk perintah?" maka jawabannya adalah tidak. Namun, kernel Maverick dan Natty (-generic, -generic-pae, -server, dan -virtual flavours) telah di-backport ke 10,04 LTS dan tersedia dari $ release-update di repositori Ubuntu, misalnya, linux-image-generic-lts-backport-maverickadalah backport Maverick ke Lucid .

Daniel T Chen
sumber
2

Saya menjalankan 11,04 dan sepertinya TRIM tidak bekerja sesuai dengan aturan.

Saya diuji menggunakan instruksi di sini untuk membuat file, menghapusnya, dan melihat apakah sektor mendapatkan nol / dihapus .

Saya mencoba mengaktifkan TRIM menggunakan instruksi di sini, tetapi tidak ada dadu

Saya menjalankan wiper.sh, saya mengerti

/sbin/wiper.sh --verbose --commit / dev / sda1
wiper.sh: Utilitas Linux SATA SSD TRIM, versi 3.3, oleh Mark Lord.
rootdev = / dev / sda1
fsmode2: fsmode = baca-tulis
/: fstype = ext4
freesize = 13785252 KB, dicadangkan = 137852 KB
Mempersiapkan TRIM online ruang kosong di / dev / sda1 (ext4 mount read-write at /).

Operasi ini dapat secara diam-diam menghancurkan data Anda. Apakah Anda yakin (y / T)? y
Membuat file sementara (13647400 KB) ..
Menyinkronkan disk ..
Memulai operasi TRIM ..
get_trimlist = / sbin / hdparm --fibmap WIPER_TMPFILE.9689

/ dev / sda:
memangkas 27294800 sektor dari 462 rentang
berhasil
Menghapus file sementara ..
Menyinkronkan disk ..
Selesai

Namun jika saya menjalankannya lagi, ini menunjukkan jumlah sektor / rentang yang sama perlu dipangkas, dan melaporkan keberhasilan lagi. Saya mendapatkan hal yang persis sama setiap saat. Sepertinya sektor tidak pernah dihapus / dibebaskan. Membacanya masih menunjukkan data yang sama.

Penasaran apakah ada orang lain yang menggunakannya.


sumber
Jika Anda menambahkan opsi buang ke fstab dan itu masih tidak berfungsi mungkin bug di alpha. Anda harus mengajukan laporan bug.
Uli
Saya baru saja menguji ini di natty (mengikuti instruksi ini: askubuntu.com/questions/18903/how-to-enable-trim ) dan kerjanya lebih baik lagi di natty, TRIM hampir seketika.
Uli
Mungkin saja Anda memiliki SSD yang tidak mendukung TRIM - beberapa SSD sebelumnya tidak mendukung TRIM.
Hamish Downer