NVMe sta per Non-Volatile Memory Express e si riferisce al modo in cui software e storage comunicano tra PCIe e altri protocolli, incluso TCP. È una specifica aperta guidata da un'organizzazione senza scopo di lucro e definisce diverse forme di storage a stato solido.
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
Il mio laptop ha un'unità NVMe, così come il mio desktop. E sono veloci. Mi piace la velocità con cui i miei computer si avviano e la velocità con cui sono in grado di leggere e scrivere dati. Non c'è alcun ritardo percettibile.
Inoltre, non ci è voluto molto per farmi incuriosire dalla tecnologia che guida questo storage ultraveloce, quindi ho fatto una piccola indagine. Ho appreso che le unità NVMe consumano meno energia offrendo al contempo un accesso ai dati molto più rapido rispetto alle unità SSD su SATA. È stato interessante, ma volevo saperne di più sulle mie particolari unità NVMe e volevo sapere come si confrontavano con altre unità. Posso cancellare in modo sicuro l'unità? Come potrei verificarne l'integrità?
Queste domande mi hanno portato a una ricerca su Internet che ha prodotto un progetto open source con una raccolta di strumenti per gestire le unità NVMe. Si chiama nvme-cli.
Installa nvme-cli
Puoi installare nvme-cli
dal gestore di pacchetti della tua distribuzione. Ad esempio, su Fedora, CentOS o simili:
$ sudo dnf install nvme-cli
Su Debian, Mint, Elementary e simili:
$ sudo apt install nvme-cli
Esplorazione di un'unità NVMe
Dopo aver installato nvme-cli
per la mia distribuzione, volevo esplorare la mia guida. Non esiste una pagina man per nvme-cli
, ma puoi ottenere molto aiuto inserendo nvme help
:
$ nvme help
nvme-1.14
usage: nvme <command> [<device>] [<args>]
The '<device>' may be either an NVMe character device (ex: /dev/nvme0) or an
nvme block device (ex: /dev/nvme0n1).
The following are all implemented sub-commands:
list List all NVMe devices and namespaces on machine
list-subsys List nvme subsystems
id-ctrl Send NVMe Identify Controller
id-ns Send NVMe Identify Namespace, display structure
id-ns-granularity Send NVMe Identify Namespace Granularity List, display structure
list-ns Send NVMe Identify List, display structure
list-ctrl Send NVMe Identify Controller List, display structure
nvm-id-ctrl Send NVMe Identify Controller NVM Command Set, display structure
primary-ctrl-caps Send NVMe Identify Primary Controller Capabilities
[...]
Elenca tutte le unità NVMe
La sudo nvme list
comando elenca tutti i dispositivi NVMe e gli spazi dei nomi sulla tua macchina. L'ho usato e ho trovato un'unità NVMe su /dev/nvme0n1
. Ecco l'output:
$ sudo nvme list
Node SN Model Namespace Usage Format FW Rev
--------------------- -------------------- ---------------------------------------- --------- -------------------------- ---------------- --------
/dev/nvme0n1 S42GMY9M141281 SAMSUNG MZVLB256HAHQ-000L7 1
214.68 GB / 256.06 GB 512 B + 0 B 0L2QEXD7
Ho un'unità chiamata nvme0n1
. Elenca il numero di serie, la marca, le dimensioni, la revisione del firmware e così via.
Puoi ottenere ancora più informazioni sull'unità e sulle funzionalità che supporta utilizzando id-ctrl
sottocomando:
$ sudo nvme id-ctrl /dev/nvme0n1
NVME Identify Controller:
vid : 0x144d
ssvid : 0x144d
sn : S42GMY9M141281
mn : SAMSUNG MZVLB256HAHQ-000L7
fr : 0L2QEXD7
rab : 2
ieee : 002538
cmic : 0
mdts : 9
cntlid : 0x4
ver : 0x10200
rtd3r : 0x186a0
rtd3e : 0x7a1200
[...]
Guida salute
Puoi leggere lo stato generale di un'unità con lo smart-log
sottocomando:
$ sudo nvme smart-log /dev/nvme0n1
Smart Log for NVME device:nvme0n1 namespace-id:ffffffff
critical_warning : 0
temperature : 21 C
available_spare : 100%
available_spare_threshold : 10%
percentage_used : 2%
endurance group critical warning summary: 0
data_units_read : 5,749,452
data_units_written : 10,602,948
host_read_commands : 77,809,121
host_write_commands : 153,405,213
controller_busy_time : 756
power_cycles : 1,719
power_on_hours : 1,311
unsafe_shutdowns : 129
media_errors : 0
num_err_log_entries : 1,243
Warning Temperature Time : 0
Critical Composite Temperature Time : 0
Temperature Sensor 1 : 21 C
Temperature Sensor 2 : 22 C
Thermal Management T1 Trans Count : 0
Thermal Management T2 Trans Count : 0
Thermal Management T1 Total Time : 0
Thermal Management T2 Total Time : 0
Questo ti fornisce la temperatura attuale dell'unità, le ore di utilizzo che ha avuto finora, quante volte è stata spenta in modo non sicuro e così via.
Formattazione di un'unità NVMe
Puoi formattare un'unità NVMe con nvme-cli
, ma attenzione:questo cancella tutti i dati sull'unità! Se sono presenti dati importanti sul tuo disco, devi esegui il backup prima di farlo, altrimenti lo farai perdere dati. Il sottocomando è format
:
$ sudo nvme format /dev/nvme0nX
(Per sicurezza, ho sostituito la posizione effettiva dell'unità con X per evitare incidenti di copia-incolla. Cambia la X a 1 o la posizione appropriata come elencata nei risultati di nvme list
.)
Cancellazione sicura di un'unità NVMe
Quando ti prepari a vendere o smaltire il tuo computer NVMe, probabilmente vorrai cancellare l'unità in modo sicuro. Gli stessi avvisi si applicano qui come con il processo di formattazione:eseguire prima il backup dei dati importanti perché questo comando li cancella!
$ sudo nvme sanitize /dev/nvme0nX
Prova nvme-cli
Il nvme-cli
comando è rilasciato con una licenza GPLv2. È un comando robusto con molte opzioni utili ed è un ottimo modo per assumere il controllo della modalità di gestione dei dati.