mywiki/linux/filesystem/smartctl.md

8.7 KiB

Smartctl

Gli smartmontools permettono di usare la funzionalità SMART di tutti i moderni HD grazie alla quale è possibile diagnosticare malfunzionamenti.

Installazione

sudo apt install smartmontools

Informazioni

Per visualizzare alcune informazioni generiche sul HD:

sudo smartctl -i /dev/nvme0

smartctl 7.3 2022-02-28 r5338 [x86_64-linux-6.1.0-6-amd64] (local build)
Copyright (C) 2002-22, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Model Number:                       Samsung SSD 980 500GB
Serial Number:                      S64DNL0TA11496W
Firmware Version:                   2B4QFXO7
PCI Vendor/Subsystem ID:            0x144d
IEEE OUI Identifier:                0x002538
Total NVM Capacity:                 500.107.862.016 [500 GB]
Unallocated NVM Capacity:           0
Controller ID:                      5
NVMe Version:                       1.4
Number of Namespaces:               1
Namespace 1 Size/Capacity:          500.107.862.016 [500 GB]
Namespace 1 Utilization:            275.385.454.592 [275 GB]
Namespace 1 Formatted LBA Size:     512
Namespace 1 IEEE EUI-64:            002538 da21a0c231
Local Time is:                      Sat Mar 25 18:41:22 2023 CET

sudo smartctl -i /dev/sda1

smartctl 7.3 2022-02-28 r5338 [x86_64-linux-6.1.0-6-amd64] (local build)
Copyright (C) 2002-22, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Vendor:               Intenso
Product:              Speed Line
Revision:             8.01
Compliance:           SPC-4
User Capacity:        251.658.240.000 bytes [251 GB]
Logical block size:   512 bytes
Logical Unit id:      0x4945450005080f000x200049454505080f
Serial number:        
Device type:          disk
Local Time is:        Sat Mar 25 18:44:18 2023 CET
SMART support is:     Available - device has SMART capability.
SMART support is:     Enabled
Temperature Warning:  Disabled or Not Supported

Oltre alle informazioni generiche, dalle ultime due righe si capisce che l'HD supporta la tecnologia SMART e che il supporto è attivato. Se non fosse attivato basterebbe digitare questo comando:

sudo smartctl -s on /dev/hda

per attivare il supporto SMART.

Per controllare lo stato di salute attuale:

sudo smartctl -H /dev/hda

smartctl version 5.34 [i686-pc-linux-gnu] Copyright (C) 2002-5 Bruce Allen
Home page is https://www.smartmontools.org/

=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

L'ultima riga dice che la salute sembra buona e nessuno dei parametri interni controllati da SMART ha superato il livello di guardia.

Se il precedente comando non riporta PASSED smontaire immediatamente tutte le partizioni presenti su quell'HD ed effettuate un backup dei dati

Maggiori informazioni

smartctl -a /dev/sda1

L'output, abbastanza lungo (-a sta per "all"), è diviso in quattro sezioni. Il primo blocco rappresenta le informazioni generiche sull'HD (le stesse ottenute prima con -i), la seconda sezione riporta le informazioni sul supporto SMART. La terza sezione elenca i parametri interni monitorati da SMART e se hanno mai superato il livello di guardia:

SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate     0x000b   200   200   051    Pre-fail  Always       -       0
  3 Spin_Up_Time            0x0007   099   091   021    Pre-fail  Always       -       4108
  4 Start_Stop_Count        0x0032   098   098   040    Old_age   Always       -       2590
  5 Reallocated_Sector_Ct   0x0033   200   200   140    Pre-fail  Always       -       0
  7 Seek_Error_Rate         0x000b   200   200   051    Pre-fail  Always       -       0
  9 Power_On_Hours          0x0032   092   092   000    Old_age   Always       -       6494
 10 Spin_Retry_Count        0x0013   100   100   051    Pre-fail  Always       -       0
 11 Calibration_Retry_Count 0x0013   100   100   051    Pre-fail  Always       -       0
 12 Power_Cycle_Count       0x0032   098   098   000    Old_age   Always       -       2435
196 Reallocated_Event_Count 0x0032   200   200   000    Old_age   Always       -       0
197 Current_Pending_Sector  0x0012   200   200   000    Old_age   Always       -       0
198 Offline_Uncorrectable   0x0012   200   200   000    Old_age   Always       -       0
199 UDMA_CRC_Error_Count    0x000a   200   200   000    Old_age   Always       -       19
200 Multi_Zone_Error_Rate   0x0009   200   200   051    Pre-fail  Offline      -       0

I parametri indicati come Pre-fail sono quelli che superano la soglia di guardia nelle 24 ore che precedono la rottura dell'HD, mentre quelli Old_age sono i parametri che superano la soglia di guardia quando ormai l'HD è vecchio e non è considerato più affidabile dal costruttore. Nell'esempio si vede che nessun parametro ha mai superato la soglia di guardia.

Effettuare test

È possibile effettuare dei test più o meno approfonditi sul disco. Alcuni test si possono effettuare con l'HD montato e funzionante, ed il test stesso avrà un impatto minimo o nullo sulle prestazioni del sistema.

Per effettuare un test:

sudo smartctl -t tipo_test /dev/hda

dove tipo_test può essere:

  • short: effettua un test sul disco di durata inferiore a 10 minuti, può essere eseguito durante il normale funzionamento e non ha alcun impatto sulle prestazioni. Questo test controlla le performance meccaniche ed elettriche del disco, oltre che le performance in lettura;

  • long: effettua un test di durata da 40 minuti ad un ora (a seconda del disco). Può essere effettuato durante il normale funzionamento del disco e non ha impatto sulle prestazioni. Questo test è una versione più estesa dello short test;

  • conveyance: effettua un test di alcuni minuti atto a scoprire difetti dovuti ad incurie nel trasporto dell'HD. Può essere eseguito durante il normale funzionamento dell'HD.

I risultati di questi test vengono riportati nella parte finale dell'output di smartctl -a /dev/sda1.

SMART Error Log Version: 1
No Errors Logged

SMART Self-test log structure revision number 1
Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error
# 1  Short offline       Completed without error       00%       952         -
# 2  Conveyance offline  Completed without error       00%       951         -
# 3  Short offline       Completed without error       00%       951         -
# 4  Short offline       Completed without error       00%       875         -

Nell'esempio si può vedere che sono stati effettuati 4 test, di cui tre di tipo short e uno di tipo conveyance. Nessuno di loro ha dato esito positivo (cioè non sono stati rilevati malfunzionamenti).

Testare la reale dimensione di un dispositivo

sudo apt install f3

sudo f3probe --desrtuctive --time-ops /dev/sdX

Ad esempio:

sudo f3probe --destructive --time-ops /dev/sda

F3 probe 8.0
Copyright (C) 2010 Digirati Internet LTDA.
This is free software; see the source for copying conditions.

WARNING: Probing normally takes from a few seconds to 15 minutes, but
         it can take longer. Please be patient.

Good news: The device `/dev/sda' is the real thing

Device geometry:
                 *Usable* size: 234.38 GB (491520000 blocks)
                Announced size: 234.38 GB (491520000 blocks)
                        Module: 256.00 GB (2^38 Bytes)
        Approximate cache size: 0.00 Byte (0 blocks), need-reset=no
           Physical block size: 512.00 Byte (2^9 Bytes)

Probe time: 3'23"
 Operation: total time / count = avg time
      Read: 1.27s / 4818 = 265us
     Write: 3'21" / 4192321 = 48us
     Reset: 0us / 1 = 0us

Testare la velocità del disco

Il comando hdparm può essere utilizzato per misurare le prestazioni del disco rigido, inclusa la velocità di lettura e scrittura reale e la velocità della cache.

Ad esempio, per misurare le prestazioni del disco rigido, è possibile utilizzare il seguente comando:

hdparm -t /dev/sda


sudo hdparm -t /dev/nvme0n1

/dev/nvme0n1:
 Timing buffered disk reads: 3390 MB in  3.00 seconds = 1129.60 MB/sec

Con l'opzione -T viene testata anche la cache:

sudo hdparm -Tt /dev/nvme0n1

/dev/nvme0n1:
 Timing cached reads:   19464 MB in  2.00 seconds = 9748.45 MB/sec
 Timing buffered disk reads: 3446 MB in  3.00 seconds = 1148.21 MB/sec

Collegamenti