GNU/Linux >> Linux Esercitazione >  >> Linux

Estendi la vita della tua unità SSD con fstrim

Negli ultimi dieci anni, le unità a stato solido (SSD) hanno introdotto un nuovo modo di gestire lo storage. Gli SSD hanno vantaggi come un funzionamento silenzioso e più fresco e specifiche di interfaccia più veloci, rispetto ai loro predecessori rotanti. Naturalmente, la nuova tecnologia porta con sé nuovi metodi di manutenzione e gestione. Gli SSD hanno una funzione chiamata TRIM. Questo è essenzialmente un metodo per recuperare i blocchi inutilizzati sul dispositivo, che potrebbero essere stati scritti in precedenza, ma non contengono più dati validi e, pertanto, possono essere restituiti allo storage pool generale per il riutilizzo. Don Watkins di Opensource.com ha scritto per la prima volta di TRIM nel suo articolo del 2017 "Unità a stato solido in Linux:abilitazione di TRIM per SSD".

Più risorse Linux

  • Comandi Linux cheat sheet
  • Cheat sheet sui comandi avanzati di Linux
  • Corso online gratuito:Panoramica tecnica RHEL
  • Cheat sheet della rete Linux
  • Cheat sheet di SELinux
  • Cheat sheet dei comandi comuni di Linux
  • Cosa sono i container Linux?
  • I nostri ultimi articoli su Linux

Se hai utilizzato questa funzione sul tuo sistema Linux, probabilmente hai familiarità con i due metodi descritti di seguito.

I vecchi metodi

Scarta

Inizialmente l'ho abilitato con l'opzione di eliminazione del comando mount. La configurazione viene inserita in /etc/fstab file per ogni file system.

# cat /etc/fstab
UUID=3453g54-6628-2346-8123435f  /home  xfs  defaults,discard   0 0

L'opzione di scarto abilita il TRIM online automatico. Di recente si è discusso se questo sia il metodo migliore a causa di possibili impatti negativi sulle prestazioni. L'utilizzo di questa opzione provoca l'avvio di un TRIM ogni volta che vengono scritti nuovi dati sull'azionamento. Ciò potrebbe introdurre attività aggiuntiva che interferisce con le prestazioni di archiviazione.

Cron

Ho rimosso l'opzione di eliminazione da fstab file. Quindi ho creato un lavoro cron per chiamare il comando su base pianificata.

# crontab -l
@midnight /usr/bin/trim

Questo è il metodo che ho usato più di recente sui miei sistemi Ubuntu Linux fino a quando non ho scoperto un altro modo.

Un nuovo servizio TRIM

Di recente ho scoperto che esiste un servizio systemd per TRIM. Fedora lo ha introdotto nella sua distribuzione nella versione 30 e, sebbene non sia abilitato per impostazione predefinita nelle versioni 30 e 31, dovrebbe essere nella versione 32. Se stai lavorando su Fedora Workstation 31 e vuoi iniziare a usarlo funzione, puoi abilitarla molto facilmente. Ti mostrerò anche come testarlo di seguito. Questo servizio non è esclusivo di Fedora. L'esistenza e lo stato dipenderanno da una base di distribuzione individuale.

Test

Mi piace prima testare, per capire meglio cosa sta succedendo dietro le quinte. Lo faccio aprendo un terminale ed emettendo il comando che il servizio è configurato per chiamare.

/usr/sbin/fstrim --fstab --verbose --quiet

Il –aiuto argomento a fstrim descriverà questi e altri argomenti.

$ sudo /usr/sbin/fstrim --help

Usage:
 fstrim [options] <mount point>

Discard unused blocks on a mounted filesystem.

Options:
 -a, --all           trim all supported mounted filesystems
 -A, --fstab         trim all supported mounted filesystems from /etc/fstab
 -o, --offset <num>  the offset in bytes to start discarding from
 -l, --length <num>  the number of bytes to discard
 -m, --minimum <num> the minimum extent length to discard
 -v, --verbose       print number of discarded bytes
     --quiet         suppress error messages
 -n, --dry-run       does everything, but trim

 -h, --help          display this help
 -V, --version       display version

Quindi, ora posso vedere che il servizio systemd è configurato per eseguire il trim su tutti i filesystem montati supportati nel mio /etc/fstab file –fstab e stampa il numero di byte scartati –verbose ma elimina tutti i messaggi di errore che potrebbero verificarsi –silenzioso . Conoscere queste opzioni è utile per il test. Ad esempio, posso iniziare con quella più sicura, che è la corsa a secco. Lascerò anche l'argomento tranquillo in modo da poter determinare se si verificheranno errori con la configurazione dell'unità.

$ sudo /usr/sbin/fstrim --fstab --verbose --dry-run

Questo mostrerà semplicemente cosa è il fstrim il comando funzionerà in base ai file system che trova configurati nel tuo /etc/fstab file.

$ sudo /usr/sbin/fstrim --fstab --verbose

Questo ora invierà l'operazione TRIM all'unità e riporterà il numero di byte scartati da ciascun file system. Di seguito è riportato un esempio dopo la mia recente installazione di Fedora su un nuovo SSD NVME.

/home: 291.5 GiB (313011310592 bytes) trimmed on /dev/mapper/wkst-home
/boot/efi: 579.2 MiB (607301632 bytes) trimmed on /dev/nvme0n1p1
/boot: 787.5 MiB (825778176 bytes) trimmed on /dev/nvme0n1p2
/: 60.7 GiB (65154805760 bytes) trimmed on /dev/mapper/wkst-root

Abilita

Fedora Linux implementa il servizio timer di sistema, programmato per l'esecuzione su base settimanale. Per verificare l'esistenza e lo stato attuale, esegui systemctl status .

$ sudo systemctl status fstrim.timer

Ora abilita il servizio.

$ sudo systemctl enable fstrim.timer

Verifica

Quindi puoi verificare che il timer sia abilitato elencando tutti i timer.

$ sudo systemctl list-timers --all

La riga seguente si riferisce a fstrim.timer apparirà. Nota che il timer attiva effettivamente fstrim.service . Questo è da dove viene l'effettivo fstrim è chiamato. I campi relativi al tempo mostrano n/d perché il servizio è stato appena abilitato e non è ancora stato eseguito.

NEXT   LEFT    LAST   PASSED   UNIT           ACTIVATES
n/a    n/a     n/a    n/a      fstrim.timer   fstrim.service

Conclusione

Questo servizio sembra il modo migliore per eseguire TRIM sulle tue unità. È molto più semplice che dover creare la propria voce crontab per chiamare il fstrim comando. È anche più sicuro non dover modificare fstab file. È stato interessante osservare l'evoluzione della tecnologia di archiviazione a stato solido ed è bello sapere che sembra che Linux si stia muovendo verso un modo standard e sicuro per implementarlo.


Linux
  1. Gestisci il tuo calendario dal terminale Linux con il comando konsolekalendar

  2. Proteggi i tuoi container con SELinux

  3. Come estendere le funzionalità del tuo desktop Linux con PlexyDesk

  4. Risolvi i problemi della tua rete con tcpdump

  5. Come sfruttare l'oggetto VDSO con il proprio linguaggio di programmazione?

Sposta il tuo Linux dal BIOS legacy a UEFI con tempi di inattività minimi

Come testare la velocità di connessione utilizzando il terminale con Speedtest

Passare a Linux? Porta con te il tuo Google Drive

I 15 migliori Linux per bambini | Lascia che i tuoi bambini imparino Linux divertendoti

Monitoraggio e test dello stato di salute di SSD in Linux

Come trovare la posizione dei tuoi server con Traceroute e WHOIS