Ubuntu ha il supporto per il comando TRIM da utilizzare con SSD?


34

Le unità SSD devono essere "cancellate / ripristinate" dopo il riempimento dell'unità per mantenere le prestazioni. Questo viene fatto tramite il comando TRIM per le nuove unità SSD. Ubuntu supporta il comando TRIM (tramite hdparm ecc.) Per cancellare / ripristinare queste unità?


Buona domanda, sebbene si noti che il grado in cui TRIM migliora le prestazioni varia tra gli SSD, per alcuni non fa la stessa differenza di quanto si pensi (anche se sembrano comunque quelli più lenti).
Nicholas Knight,

1
Penso che le prestazioni verrebbero ripristinate allo stesso (se non vicino) ai valori predefiniti di fabbrica.
Dai

Risposte:


24

Sembra che ci sia supporto per la funzionalità TRIM nella versione 10.10 e successive:

Inoltre, le cose TRIM avvengono automaticamente - i blocchi vuoti vengono automaticamente rilasciati quando non sono più necessari (ad esempio, si elimina un file), se il disco segnala che supporta TRIM. Non è necessario emettere manualmente un comando hdparm per farlo funzionare.


Pensavo che dovessi ancora usare strumenti che "mandavano" il comando TRIM all'SDD. Va bene se funziona come specificato. :) Questo articolo Anandtech -> ( anandtech.com/show/2738/10 ) specifica che per far funzionare TRIM, sia il sistema operativo che l'SSD necessitano del supporto TRIM. Suppongo che la mia domanda riguardi il supporto OS / Linux per TRIM quando viene utilizzato con unità SSD compatibili con TRIM.
ssanj,

3
Il comando TRIM deve sapere quali blocchi liberare, quindi sarebbe pericoloso emetterlo senza sapere esattamente quali blocchi sul disco non vengono utilizzati. Sì, sia il sistema operativo che il disco devono disporre del supporto dell'assetto. In Linux, questo è stato aggiunto nella versione 2.6.33 del kernel, quindi sarà incluso in Maverick. Sia il driver del disco che il filesystem che stai utilizzando devono supportare il trim affinché funzioni correttamente. Se stai usando ext4 come filesystem su Maverick, dovresti andare bene.
Jeremy Kerr,

Mi chiedo quindi se sarà possibile che gli SSD esistenti subiscano un "TRIM retrofittato" al fine di ripulire l'innesto esistente accumulato prima che il sistema operativo supporti TRIM. O sarebbe necessaria una reinstallazione?
Kent Boogaart,

20

La risposta di Jeremy non è del tutto accurata AFAIK. Ho eseguito gli ultimi kernel stabili su Lucid da un po 'di tempo e ho seguito lo stato di TRIM abbastanza acutamente poiché ho un'agilità OCZ come mio disco principale.

Ecco cosa (penso) lo so:

  • Il kernel ha il supporto TRIM a partire dalla 2.6.33 (Maverick è 2.6.35).

  • EXT4 ha il supporto TRIM ma solo quando il journaling è disattivato.

  • Il modo in cui TRIM funziona nel kernel è molto semplice e piuttosto lento. I dischi che seguono le specifiche possono accettare più intervalli ma il kernel attualmente può fare solo un intervallo alla volta. Questo deriva da qualcosa che ho letto forse un mese fa. Vorrei avere la fonte in quanto ciò potrebbe non essere vero o potrebbe non essere più applicabile.

Il journaling è ciò che lo uccide per me. La corruzione dei dati è una PITA.

Tuttavia, le versioni più recenti di hdparm (v9.25 - Maverick è alla v9.27) sono dotate di uno script chiamato wiper.shche esegue una rapida analisi di un'unità e quindi taglia tutto lo spazio vuoto. Invece di perdere funzionalità, trovo molto più facile eseguire cron wiper.shuna volta alla settimana (o una volta al giorno / mese / qualunque cosa). Il degrado dell'SSD per un'unità del sistema operativo non si verifica così velocemente a meno che non si strappi costantemente. Non hai bisogno di TRIMming in tempo reale.

C'è anche un frontend GUI chiamato DiskTRIM che non sembra essere nei repository. Gli utenti meno esperti potrebbero trovarlo più facile da usare rispetto all'impostazione dei lavori cron.

Esistono PPA per hdparm e disktrim e tutti possono essere eseguiti su Lucid (e versioni successive) senza bisogno di kernel 2.6.33+.


Puoi collegarti a questi PPA per favore?
Jorge Castro,

Quindi abilitare l' discardopzione mount per ext4 disabilita il journaling? Ho appena cercato riferimenti ma non riesco a trovarne uno a parte questa risposta: puoi fornire una fonte?
Hamish Downer

2
in Ubuntu 12.04 il wiper.sh è stato sostituito con fstrim
tomodachi

1
@Oli: ho fatto qualche altra lettura e ora sono abbastanza sicuro che l'opzione di eliminazione non disabilita il journal. Afaict originariamente l'opzione di scarto funzionava solo con il journal (ho trovato questa patch che consente di scartare senza il journal). La pagina ext4 del kernel documenta l'opzione di eliminazione ma non menziona che il journal è incompatibile.
Hamish Downer,

8

Linux ha il supporto per TRIM automatico con file system ETX4 dal kernel 2.6.33.

La prima versione di Ubuntu con supporto TRIM automatico è 10.10 (Maveric), ma deve essere attivata in fstab (come descritto qui ).


4

In generale, sì, perché ci sono molti modi per ottenere kernel nuovi. Se chiariamo la tua domanda da leggere, "10.04 LTS ha il supporto pronto per il comando?" allora la risposta è no. Tuttavia, entrambi i kernel di Maverick e Natty (-generic, -generic-pae, -server e -virtual flavours) sono stati portati in backport a 10.04 LTS e sono disponibili da $ release-updates nei repository Ubuntu, ad esempio linux-image-generic-lts-backport-maverickè il backport di Maverick su Lucid .


2

Sto eseguendo l'11.04 e non sembra che TRIM stia funzionando come previsto.

Ho provato usando le istruzioni qui per creare un file, eliminarlo e vedere se i settori vengono azzerati / eliminati .

Ho provato ad abilitare TRIM usando le istruzioni qui, ma nessun dado

Corro wiper.sh, capisco

/sbin/wiper.sh --verbose --commit / dev / sda1
wiper.sh: Utilità TRIM SSD SATA per Linux, versione 3.3, di Mark Lord.
rootdev = / dev / sda1
fsmode2: fsmode = read-write
/: fstype = ext4
freesize = 13785252 KB, riservato = 137852 KB
Preparazione per il TRIM online di spazio libero su / dev / sda1 (lettura / scrittura montata ext4 su /).

Questa operazione potrebbe distruggere silenziosamente i tuoi dati. Sei sicuro (sì / no)? y
Creazione di file temporaneo (13647400 KB) ..
Sincronizzazione dei dischi ..
Inizio delle operazioni TRIM ..
get_trimlist = / sbin / hdparm --fibmap WIPER_TMPFILE.9689

/ Dev / sda:
rifilatura di 27294800 settori da 462 gamme
successo
Rimozione del file temporaneo ..
Sincronizzazione dei dischi ..
Fatto.

Tuttavia, se lo eseguo di nuovo, mostra che è necessario tagliare lo stesso numero di settori / intervalli e riporta nuovamente il successo. Ricevo esattamente la stessa cosa ogni volta. Non sembra che i settori vengano mai cancellati / liberati. La loro lettura mostra ancora gli stessi dati.

Curioso se qualcun altro è riuscito a farlo funzionare.


Se hai aggiunto l'opzione di eliminazione a fstab e non funziona ancora, probabilmente è un bug in alpha. Dovresti presentare una segnalazione di bug.
Uli,

Ho appena provato questo in Natty (seguendo queste istruzioni: askubuntu.com/questions/18903/how-to-enable-trim ) e funziona ancora meglio in Natty, TRIM è quasi istantaneo.
Uli,

È possibile che tu abbia un SSD che non supporta TRIM - alcuni SSD precedenti non supportavano il TRIM.
Hamish Downer,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.