## page was renamed from LucaGambardella/Prove6
#format wiki
#language it
<<BR>>
<<Include(NuoviStrumentiWiki/PaginaDiProva)>>
<<Indice(depth=3)>>
<<Informazioni(forum="http://forum.ubuntu-it.org/viewtopic.php?f=46&t=557066; rilasci="14.04 12.10 12.04";)>>
## aleandrodasilva: quando aggiorni la pagina, fai un salto sul forum per informarci ;)

= Introduzione =

Il '''[[http://it.wikipedia.org/wiki/TRIM | TRIM]]''' consente al sistema operativo di comunicare al [[https://it.wikipedia.org/wiki/Unit%C3%A0_a_stato_solido|drive a stato solido (SSD)]] che blocchi di dati non sono più considerati in uso e possono essere liberati definitivamente. Lo scopo è di evitare inutili cicli di scrittura che con il tempo tendono a logorare le celle del drive (impropriamente detto disco).

Se non si utilizza il '''TRIM''', dopo un po' di tempo, la velocità del disco diminuisce e le celle del drive vengono sovrascritte in modo disomogeneo. Quindi se si possiede un drive che lo supporta è consigliato abilitarlo seguendo le istruzioni presenti in questa guida. 

{{{#!wiki tip
Il '''TRIM''' è abilitato a livello hardware automaticamente negli SSD di marca Intel e Samsung. Inoltre è eseguito settimanalmente se si usa Ubuntu '''14.04''' o una versione successiva con un filesystem ext4 o btrfs.}}}

= Requisiti hardware e software =

Prima di abilitare il '''TRIM''' assicurarsi che:

 * Si utilizzi un kernel '''Linux 2.6.33''' o successivo. Per conoscere il kernel in uso sul sistema, digitare in un [[AmministrazioneSistema/RigaDiComando|terminale]] il comando : {{{
uname -a}}}

 * Si possegga un disco che supporti il '''TRIM'''. In un terminale digitare il comando: {{{
sudo fdisk -l}}} per ottenere la lista delle partizioni e dei dischi presenti sul pc, questi ultimi avranno un nome del tipo sdx (ad esempio: sda, sdb, sdc..)

 Per assicurarsi che il proprio SSD supporti il '''TRIM''', digitare il comando: 
 {{{
sudo hdparm -I /dev/sdx | grep "TRIM supported"}}} 
 sostituendo «sdx» con il nome del disco. 
 L'output restituito sarà simile al seguente: {{{
Data Set Management TRIM supported (limit 8 blocks) }}} 
 se il '''TRIM''' non è supportato, non verrà restituito alcun output. 

 * Le partizioni di '''Ubuntu''' siano nel filesystem EXT4 o BTRFS, digitare in un terminale: {{{
df -T /}}}

 l'output sarà simile al seguente:{{{
File system    Tipo  1K-blocchi     Usati Disponib. Uso% Montato su
/dev/sda2      btrfs  214355968 110098600 102694008  52% / }}}



{{{#!wiki note
}}}
                                        
= Abilitazione del TRIM =

Una volta verificato che siano soddisfatti i requisiti visti nel precedente paragrafo, è possibile passare all'abilitazione del '''TRIM'''.

== Abilitazione del TRIM attraverso fstab ==

 0. Aprire con un [[Ufficio/EditorDiTesto|editor di testo]] ed i [[AmministrazioneSistema/Sudo | privilegi amministrativi]] il file `/etc/fstab` ed aggiungere le opzioni «discard» (ed eventualmente anche «noatime») come nell'esempio successivo: {{{
<file system> <mount point>   <type>  <options>       <dump>  <pass>
# / was on /dev/sdb1 during installation
UUID=1cd2fc4f-7d99-4c7a-8ea7-6f9a2d5e5960 /               ext4    discard,noatime,errors=remount-ro 0       1}}}
 0. Salvare le modifiche e riavviare il sistema.

In alternativa a questo metodo per l'abilitazione del '''TRIM''' è possibile seguire le istruzioni del successivo paragrafo.

== Pianificazione di un'operazione giornaliera di cron ==

 0. Aprire con un [[Ufficio/EditorDiTesto| editor di testo]] ed i [[AmministrazioneSistema/Sudo | privilegi amministrativi]] il file `/etc/cron.daily/trim` ed incollarvi all'interno le seguenti righe:{{{
#!/bin/sh
#!/bin/sh
LOG=/var/log/trim.log
echo "*** $(date -R) ***" >> $LOG
fstrim -v / >> $LOG
fstrim -v /home >> $LOG }}}

 Le ultime due righe abilitano il '''TRIM''' per la partizione root (`/`) e la partizione `/home`.

 Omettere l'ultima riga se non si ha una partizione `/home` separata.

 Se si hanno altre partizioni occorre aggiungere altre righe secondo la sintassi: {{{
fstrim -v /nome_partizione>> $LOG }}}

 0. Prima di salvare le modifiche al file, testare se il comando '''fstrim''' funziona digitando in un terminale: {{{
sudo fstrim -v / }}} 

 l'output dovrebbe essere simile a questo: {{{
/: 8158715904 bytes were trimmed }}}

 0. Salvare a questo punto le modifiche e rendere lo script eseguibile con il comando: {{{
sudo chmod +x /etc/cron.daily/trim }}}

== Partizioni criptate ==

Se si stanno utilizzando partizioni criptate occorrono uteriori passaggi affinché il tutto funzioni.

 0. Aprire con un [[Ufficio/EditorDiTesto| editor di testo]] ed i [[AmministrazioneSistema/Sudo | privilegi amministrativi]] il file `/etc/default/grub`.

 0. Modificare la riga: {{{
GRUB_CMDLINE_LINUX=""}}} in {{{
GRUB_CMDLINE_LINUX="allow-discards root_trim=yes"}}}

 0. Salvare il file ed aggiornare '''Grub''' con il comando: {{{
sudo update-grub }}}

 0. Aprire con un [[Ufficio/EditorDiTesto| editor di testo]] ed i [[AmministrazioneSistema/Sudo | privilegi amministrativi]] il file ` /etc/crypttab` ed aggiungere l'opzione «discard» come nell'esempio succesivo: {{{
#<target name>    <source device>            <key file>  <options>
var  UUID=01234567-89ab-cdef-0123-456789abcdef  none  luks,discard}}}

 0. Salvare le modifiche e dare infine il comando: {{{
sudo update-initramfs -u -k all}}}

= Ottimizzazione del TRIM =

Quando il TRIM è abilitato nativamente (in Ubuntu 14.04 e successivi installati su filesystem ext4), lo script che lo esegue con cadenza settimanale, tramite '''crontab''', è presente nel file `/etc/cron.weekly/fstrim`.

{{{#!wiki important
Anche se tecnicamente possibile, in generale si sconsiglia di eseguire lo script giornalmente spostando il file in questione nella cartella `/etc/cron.daily`.}}}

{{{#!wiki tip
Sono disponibili strumenti di terze parti come [[http://chmatse.github.io/SSDcronTRIM/|SSDcronTRIM]]. Quest'ultimo è uno script che controlla lo stato del drive ed esegue il TRIM solo quando necessario. Per maggiori informazioni consultare il sito del progetto.}}}

Per ottimizzare il funzionamento del '''TRIM''' e per preservare il drive SSD può risultare utile:
 * Disattivare la partizione di [[Hardware/DispositiviPartizioni/SwapDomandeFrequenti|swap]] se si hanno a disposizione più di 4GB di RAM oppure di utilizzarla su un altro disco rigido interno, se presente.
 * Attivare la funzione di '''Over Provisioning'''. A tal fine è sufficiente riservare dello spazio non allocato in fondo al drive. La maggior parte dei produttori generalmente consiglia di riservare circa il 7-10% dello spazio totale del disco a tale scopo. In ogni caso si raccomanda di consultare il manuale relativo all'SSD in uso, se disponibile, oppure di contattare i canali di assistenza del produttore. Per maggiori informazioni sulle procedure di partizionamento consultare invece [[Hardware/DispositiviPartizioni/PartizionamentoManuale| questa guida]].
 * Attivare le funzionalità di '''Preload''' e '''Prelink''' per velocizzare l'apertura dei programmi. Ciò è possibile seguendo la seguente procedura: 
  0. [[AmministrazioneSistema/InstallareProgrammi|Installare]], se non presenti,  i pacchetti [[apt://preload | preload]] e [[apt://prelink | prelink]].
  0. Aprire con i [[AmministrazioneSistema/Sudo|privilegi di amministrazione]] e con un [[Ufficio/EditorDiTesto|editor di testo]] il file `/etc/default/prelink`.
  0. Sostituire la stringa :{{{
PRELINKING=unknown }}} 
  con  :{{{
PRELINKING=yes }}}
  0. Salvare le modifiche e chiudere il file.
 {{{#!wiki important
Questa procedura potrebbe comportare un maggiore tempo di avvio del sistema operativo.}}}

= Ulteriori risorse =

 * [[http://www.webupd8.org/2013/01/enable-trim-on-ssd-solid-state-drives.html | Documento originale]]

 * [[https://wiki.archlinux.org/index.php/Solid_State_Drives | Guida su wiki di Archlinux]]

----
CategoryAmministrazione