GNU/Linux >> Linux Esercitazione >  >> Linux

Monitoraggio e test dello stato di salute di SSD in Linux

Cos'è S.M.A.R.T.?

INTELIGENTE. –per la tecnologia di automonitoraggio, analisi e reportistica— è una tecnologia incorporata in dispositivi di archiviazione come unità disco rigido o SSD e il cui obiettivo è monitorarne lo stato di salute.

In pratica, S.M.A.R.T. monitorerà diversi parametri del disco durante le normali operazioni dell'unità, come il numero di errori di lettura, i tempi di avvio dell'unità o anche le condizioni ambientali. Inoltre, S.M.A.R.T. e può anche eseguire test su richiesta sull'unità.

Idealmente, S.M.A.R.T. consentirebbe di anticipare prevedibile guasti come quelli causati dall'usura meccanica o dal degrado della superficie del disco, nonché imprevedibili guasti causati da un difetto imprevisto. Poiché le unità di solito non si guastano all'improvviso, S.M.A.R.T. offre un'opzione per il sistema operativo o l'amministratore di sistema per identificare le unità che si guastano presto in modo che possano essere sostituite prima che si verifichi qualsiasi perdita di dati.

Cosa non è S.M.A.R.T.?

Tutto ciò sembra meraviglioso. Tuttavia, S.M.A.R.T. non è una sfera di cristallo. Non può prevedere con una precisione del 100% un guasto né, d'altra parte, garantire che un'unità non si guasti senza alcun preavviso. Nel migliore dei casi, S.M.A.R.T. dovrebbe essere utilizzato per stimare la probabilità di un fallimento.

Data la natura statistica della previsione dei guasti, S.M.A.R.T. la tecnologia interessa in particolare l'azienda che utilizza un gran numero di unità di archiviazione e sono stati condotti studi sul campo per stimare l'accuratezza di S.M.A.R.T. problemi segnalati per anticipare le esigenze di sostituzione del disco nei data center o nelle server farm.

Nel 2016, Microsoft e la Pennsylvania State University hanno condotto uno studio incentrato sugli SSD.

Secondo tale studio, sembra che alcuni S.M.A.R.T. gli attributi sono buoni indicatori di un fallimento imminente. Il documento menziona specificamente:

Conteggio settore riallocato (Realloc):

Sebbene la tecnologia di base sia radicalmente diversa, tale indicatore sembra significativo nel mondo degli SSD rispetto a quello dei dischi rigidi. Vale la pena ricordare che a causa degli algoritmi di livellamento dell'usura utilizzati negli SSD, quando diversi blocchi iniziano a non funzionare, è probabile che molti altri falliscano presto. Conteggio errori programma/cancellazione (P/E):

Questo è un sintomo di un problema con l'hardware flash sottostante in cui l'unità non è stata in grado di cancellare o archiviare i dati in un blocco. A causa delle imperfezioni nel processo di fabbricazione, è possibile prevedere pochi errori di questo tipo. Tuttavia, le memorie flash hanno un numero limitato di cicli di cancellazione/scrittura. Quindi, ancora una volta, un improvviso aumento del numero di eventi potrebbe indicare che l'unità ha raggiunto il limite di fine vita e possiamo anticipare che molte altre celle di memoria si guasteranno presto. Errori CRC ed Uncorrectable ("Errore dati"):

Questi eventi possono essere causati da un errore di archiviazione o da problemi con il collegamento di comunicazione interno dell'unità. Questo indicatore tiene conto di entrambi corretti errori (quindi senza alcun problema segnalato al sistema host) nonché non corretti errori (quindi blocca l'unità ha segnalato di non essere in grado di leggere sul sistema host). In altre parole, correggibile gli errori sono invisibili al sistema operativo host, ma hanno comunque un impatto sulle prestazioni dell'unità poiché i dati devono essere corretti dal firmware dell'unità e potrebbe verificarsi un possibile trasferimento del settore. Conteggio downshift SATA:

A causa di disturbi temporanei, problemi con il collegamento di comunicazione tra l'unità e l'host oa causa di problemi interni dell'unità, l'interfaccia SATA può passare a una velocità di segnalazione inferiore. Il declassamento del collegamento al di sotto del tasso di collegamento nominale ha l'evidente impatto sulle prestazioni dell'azionamento osservate. La selezione di una velocità di segnalazione più bassa non è rara, specialmente su unità meno recenti. Quindi questo indicatore è più significativo se correlato alla presenza di uno o più dei precedenti.

Secondo lo studio, il 62% dell'SSD guasto ha mostrato almeno uno dei sintomi di cui sopra. Tuttavia, se inverti questa affermazione, significa anche che il 38% degli SSD studiati ha fallito senza mostrando uno qualsiasi dei sintomi di cui sopra. Lo studio non ha menzionato se le unità guaste hanno mostrato altri S.M.A.R.T. segnalato guasto o meno. Quindi questo non può essere confrontato direttamente con il 36% di guasti senza preavviso menzionato per i dischi rigidi nel documento di Google.

Il documento della Microsoft/Pennsylvania State University non rivela gli esatti modelli di unità studiati, ma secondo gli autori, la maggior parte delle unità proviene dallo stesso fornitore che copre diverse generazioni.

Lo studio ha rilevato differenze significative nell'affidabilità tra i diversi modelli. Ad esempio, il modello "peggiore" studiato mostra un tasso di guasto del 20% nove mesi dopo il primo errore di riposizionamento e un tasso di guasto fino al 36% nove mesi dopo la prima occorrenza di errori di dati. Il modello "peggiore" è anche la vecchia generazione di unità studiata nel documento.

D'altra parte, per gli stessi sintomi, i drive appartenenti alla generazione più giovane di dispositivi mostrano rispettivamente solo il 3% e il 20% di tasso di guasto per gli stessi errori. È difficile dire se queste cifre possono essere spiegate da miglioramenti nella progettazione e nel processo di produzione dell'unità o se questo è semplicemente un effetto dell'invecchiamento dell'unità.

In modo più interessante, e ho fornito alcune possibili ragioni in precedenza, il documento afferma che, anziché il valore grezzo, si tratta di un improvviso aumento del numero di errori segnalati che dovrebbe essere considerato un indicatore allarmante:

“”” C'è una maggiore probabilità che i sintomi precedano i guasti degli SSD, con un'intensa manifestazione e una rapida progressione che ne impediscono la sopravvivenza oltre alcuni mesi “””

In altre parole, un occasionale S.M.A.R.T. l'errore riportato non è probabilmente da considerarsi come un segnale di imminente guasto. Tuttavia, quando un SSD integro inizia a segnalare sempre più errori, è necessario prevedere un guasto a breve e medio termine.

Ma come sapere se il tuo disco rigido o SSD è sano? O per soddisfare la tua curiosità o perché vuoi iniziare a monitorare da vicino le tue unità, è ora di introdurre lo smartctl strumento di monitoraggio:

Utilizzo di smartctl per monitorare lo stato del tuo SSD in Linux

Ci sono modi per elencare i dischi in Linux ma per monitorare l'S.M.A.R.T. stato del tuo disco, ti suggerisco il smartctl strumento, parte di smartmontool pacchetto (almeno su Debian/Ubuntu).

sudo apt install smartmontools

smartctl è uno strumento da riga di comando, ma è perfetto, soprattutto se desideri automatizzare la raccolta dei dati, in particolare sui tuoi server.

Il primo passaggio quando si utilizza smartctl è controllare se il tuo disco ha S.M.A.R.T. abilitato ed è supportato dallo strumento:

sh$ sudo smartctl -i /dev/sdb
smartctl 6.6 2016-05-31 r4324 [x86_64-linux-4.9.0-6-amd64] (local build)
Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Model Family:     Seagate Momentus 7200.4
Device Model:     ST9500420AS
Serial Number:    5VJAS7FL
LU WWN Device Id: 5 000c50 02fa0b800
Firmware Version: D005SDM1
User Capacity:    500,107,862,016 bytes [500 GB]
Sector Size:      512 bytes logical/physical
Rotation Rate:    7200 rpm
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   ATA8-ACS T13/1699-D revision 4
SATA Version is:  SATA 2.6, 3.0 Gb/s
Local Time is:    Mon Mar 12 15:54:43 2018 CET
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

Come puoi vedere, il disco rigido interno del mio laptop ha effettivamente S.M.A.R.T. capacità e S.M.A.R.T. il supporto è abilitato. Quindi, che dire ora dello S.MA.R.T. stato? Sono stati registrati degli errori?

Segnalare "tutte le informazioni SMART sul disco" è compito del -a opzione:

sh$ sudo smartctl -i -a /dev/sdb
smartctl 6.6 2016-05-31 r4324 [x86_64-linux-4.9.0-6-amd64] (local build)
Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Model Family:     Seagate Momentus 7200.4
Device Model:     ST9500420AS
Serial Number:    5VJAS7FL
LU WWN Device Id: 5 000c50 02fa0b800
Firmware Version: D005SDM1
User Capacity:    500,107,862,016 bytes [500 GB]
Sector Size:      512 bytes logical/physical
Rotation Rate:    7200 rpm
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   ATA8-ACS T13/1699-D revision 4
SATA Version is:  SATA 2.6, 3.0 Gb/s
Local Time is:    Mon Mar 12 15:56:58 2018 CET
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED
See vendor-specific Attribute list for marginal Attributes.

General SMART Values:
Offline data collection status:  (0x82)    Offline data collection activity
                    was completed without error.
                    Auto Offline Data Collection: Enabled.
Self-test execution status:      (   0)    The previous self-test routine completed
                    without error or no self-test has ever
                    been run.
Total time to complete Offline
data collection:         (    0) seconds.
Offline data collection
capabilities:              (0x7b) SMART execute Offline immediate.
                    Auto Offline data collection on/off support.
                    Suspend Offline collection upon new
                    command.
                    Offline surface scan supported.
                    Self-test supported.
                    Conveyance Self-test supported.
                    Selective Self-test supported.
SMART capabilities:            (0x0003)    Saves SMART data before entering
                    power-saving mode.
                    Supports SMART auto save timer.
Error logging capability:        (0x01)    Error logging supported.
                    General Purpose Logging supported.
Short self-test routine
recommended polling time:      (   2) minutes.
Extended self-test routine
recommended polling time:      ( 110) minutes.
Conveyance self-test routine
recommended polling time:      (   3) minutes.
SCT capabilities:            (0x103f)    SCT Status supported.
                    SCT Error Recovery Control supported.
                    SCT Feature Control supported.
                    SCT Data Table supported.

SMART Attributes Data Structure revision number: 10
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate     0x000f   111   099   006    Pre-fail  Always       -       29694249
  3 Spin_Up_Time            0x0003   100   098   085    Pre-fail  Always       -       0
  4 Start_Stop_Count        0x0032   095   095   020    Old_age   Always       -       5413
  5 Reallocated_Sector_Ct   0x0033   100   100   036    Pre-fail  Always       -       3
  7 Seek_Error_Rate         0x000f   071   060   030    Pre-fail  Always       -       51710773327
  9 Power_On_Hours          0x0032   070   070   000    Old_age   Always       -       26423
 10 Spin_Retry_Count        0x0013   100   100   097    Pre-fail  Always       -       0
 12 Power_Cycle_Count       0x0032   096   037   020    Old_age   Always       -       4836
184 End-to-End_Error        0x0032   100   100   099    Old_age   Always       -       0
187 Reported_Uncorrect      0x0032   072   072   000    Old_age   Always       -       28
188 Command_Timeout         0x0032   100   096   000    Old_age   Always       -       4295033738
189 High_Fly_Writes         0x003a   100   100   000    Old_age   Always       -       0
190 Airflow_Temperature_Cel 0x0022   056   042   045    Old_age   Always   In_the_past 44 (Min/Max 21/44 #22)
191 G-Sense_Error_Rate      0x0032   100   100   000    Old_age   Always       -       184
192 Power-Off_Retract_Count 0x0032   100   100   000    Old_age   Always       -       104
193 Load_Cycle_Count        0x0032   001   001   000    Old_age   Always       -       395415
194 Temperature_Celsius     0x0022   044   058   000    Old_age   Always       -       44 (0 13 0 0 0)
195 Hardware_ECC_Recovered  0x001a   050   045   000    Old_age   Always       -       29694249
197 Current_Pending_Sector  0x0012   100   100   000    Old_age   Always       -       1
198 Offline_Uncorrectable   0x0010   100   100   000    Old_age   Offline      -       1
199 UDMA_CRC_Error_Count    0x003e   200   200   000    Old_age   Always       -       0
240 Head_Flying_Hours       0x0000   100   253   000    Old_age   Offline      -       25131 (246 202 0)
241 Total_LBAs_Written      0x0000   100   253   000    Old_age   Offline      -       3028413736
242 Total_LBAs_Read         0x0000   100   253   000    Old_age   Offline      -       1613088055
254 Free_Fall_Sensor        0x0032   100   100   000    Old_age   Always       -       0

SMART Error Log Version: 1
ATA Error Count: 3
    CR = Command Register [HEX]
    FR = Features Register [HEX]
    SC = Sector Count Register [HEX]
    SN = Sector Number Register [HEX]
    CL = Cylinder Low Register [HEX]
    CH = Cylinder High Register [HEX]
    DH = Device/Head Register [HEX]
    DC = Device Command Register [HEX]
    ER = Error register [HEX]
    ST = Status register [HEX]
Powered_Up_Time is measured from power on, and printed as
DDd+hh:mm:SS.sss where DD=days, hh=hours, mm=minutes,
SS=sec, and sss=millisec. It "wraps" after 49.710 days.

Error 3 occurred at disk power-on lifetime: 21171 hours (882 days + 3 hours)
  When the command that caused the error occurred, the device was active or idle.

  After command completion occurred, registers were:
  ER ST SC SN CL CH DH
  -- -- -- -- -- -- --
  40 51 00 ff ff ff 0f  Error: UNC at LBA = 0x0fffffff = 268435455

  Commands leading to the command that caused the error were:
  CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name
  -- -- -- -- -- -- -- --  ----------------  --------------------
  60 00 08 ff ff ff 4f 00      00:45:12.580  READ FPDMA QUEUED
  60 00 08 ff ff ff 4f 00      00:45:12.580  READ FPDMA QUEUED
  60 00 08 ff ff ff 4f 00      00:45:12.579  READ FPDMA QUEUED
  60 00 08 ff ff ff 4f 00      00:45:12.571  READ FPDMA QUEUED
  60 00 20 ff ff ff 4f 00      00:45:12.543  READ FPDMA QUEUED

Error 2 occurred at disk power-on lifetime: 21171 hours (882 days + 3 hours)
  When the command that caused the error occurred, the device was active or idle.

  After command completion occurred, registers were:
  ER ST SC SN CL CH DH
  -- -- -- -- -- -- --
  40 51 00 ff ff ff 0f  Error: UNC at LBA = 0x0fffffff = 268435455

  Commands leading to the command that caused the error were:
  CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name
  -- -- -- -- -- -- -- --  ----------------  --------------------
  60 00 00 ff ff ff 4f 00      00:45:09.456  READ FPDMA QUEUED
  60 00 00 ff ff ff 4f 00      00:45:09.451  READ FPDMA QUEUED
  61 00 08 ff ff ff 4f 00      00:45:09.450  WRITE FPDMA QUEUED
  60 00 00 ff ff ff 4f 00      00:45:08.878  READ FPDMA QUEUED
  60 00 00 ff ff ff 4f 00      00:45:08.856  READ FPDMA QUEUED

Error 1 occurred at disk power-on lifetime: 21131 hours (880 days + 11 hours)
  When the command that caused the error occurred, the device was active or idle.

  After command completion occurred, registers were:
  ER ST SC SN CL CH DH
  -- -- -- -- -- -- --
  40 51 00 ff ff ff 0f  Error: UNC at LBA = 0x0fffffff = 268435455

  Commands leading to the command that caused the error were:
  CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name
  -- -- -- -- -- -- -- --  ----------------  --------------------
  60 00 00 ff ff ff 4f 00      05:52:18.809  READ FPDMA QUEUED
  61 00 00 7e fb 31 45 00      05:52:18.806  WRITE FPDMA QUEUED
  60 00 00 ff ff ff 4f 00      05:52:18.571  READ FPDMA QUEUED
  ea 00 00 00 00 00 a0 00      05:52:18.529  FLUSH CACHE EXT
  61 00 08 ff ff ff 4f 00      05:52:18.527  WRITE FPDMA QUEUED

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%     10904         -
# 2  Short offline       Completed without error       00%        12         -
# 3  Short offline       Completed without error       00%         0         -

SMART Selective self-test log data structure revision number 1
 SPAN  MIN_LBA  MAX_LBA  CURRENT_TEST_STATUS
    1        0        0  Not_testing
    2        0        0  Not_testing
    3        0        0  Not_testing
    4        0        0  Not_testing
    5        0        0  Not_testing
Selective self-test flags (0x0):
  After scanning selected spans, do NOT read-scan remainder of disk.
If Selective self-test is pending on power-up, resume after 0 minute delay.

Comprendere l'output del comando smartctl

Si tratta di molte informazioni e non è sempre facile interpretare quei dati. La parte più interessante è probabilmente quella etichettata come "Attributi SMART specifici del fornitore con soglie" . Riporta varie statistiche raccolte dalla S.M.A.R.T. dispositivo e ti consente di confrontare quei valori (attuale o peggiore di tutti i tempi) con una soglia definita dal fornitore.

Ad esempio, ecco come il mio disco segnala i settori spostati:

ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  5 Reallocated_Sector_Ct   0x0033   100   100   036    Pre-fail  Always       -       3

Puoi vederlo come un attributo "pre-fallito". Ciò significa solo che l'attributo corrisponde ad anomalie. Quindi, se quell'attributo supera la soglia, che potrebbe essere un indicatore di un guasto imminente. L'altra categoria è "Old_age" per gli attributi corrispondenti agli attributi di "usura normale".

L'ultimo campo (qui “3”) corrisponde al valore grezzo per quell'attributo come riportato dal drive. Di solito, questo numero ha un significato fisico. Qui, questo è il numero effettivo di settori trasferiti. Tuttavia, per altri attributi, potrebbe essere una temperatura in gradi Celsius, un tempo in ore o minuti o il numero di volte in cui l'unità ha riscontrato una condizione specifica.

Oltre al valore grezzo, un S.M.A.R.T. l'azionamento abilitato deve riportare i valori “normalizzati” (campi valore, peggiore e soglia). Questi valori sono normalizzati nell'intervallo 1-254 (0-255 per la soglia). Il firmware del disco esegue tale normalizzazione utilizzando un algoritmo interno. Inoltre, diversi produttori possono normalizzare lo stesso attributo in modo diverso. La maggior parte dei valori sono riportati in percentuale, maggiore è il migliore, ma questo non è obbligatorio. Quando un parametro è inferiore o uguale alla soglia fornita dal produttore, si dice che il disco non è riuscito per quell'attributo. Con tutte le riserve menzionate nella prima parte di quell'articolo, quando un attributo "pre-fail" ha fallito, presumibilmente un guasto del disco è imminente.

Come secondo esempio, esaminiamo il "tasso di errore di ricerca":

ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  7 Seek_Error_Rate         0x000f   071   060   030    Pre-fail  Always       -       51710773327

In realtà, e questo è un problema con S.M.A.R.T. reporting, il significato esatto di ciascun valore è specifico del fornitore. Nel mio caso, Seagate utilizza una scala logaritmica per normalizzare il valore. Quindi "71" significa circa un errore per 10 milioni di ricerche (da 10 alla 7,1a potenza). Abbastanza divertente, il peggiore di tutti i tempi è stato un errore per 1 milione di ricerche (10 alla 6,0a potenza). Se lo interpreto correttamente, significa che le mie testine del disco sono posizionate in modo più accurato ora rispetto al passato. Non ho seguito da vicino quel disco, quindi questa analisi è soggetta a cautela. Forse l'unità necessitava solo di un periodo di rodaggio quando è stata inizialmente messa in servizio? A meno che questa non sia una conseguenza dell'usura delle parti meccaniche, e quindi dell'opposizione a un minore attrito oggi? In ogni caso, e qualunque sia la ragione, questo valore è più un indicatore di performance che un avviso di guasto. Quindi non mi infastidisce molto.

Oltre a ciò, e tre errori sospetti registrati circa sei mesi fa, quell'unità appare in condizioni sorprendentemente buone (secondo S.M.A.R.T.) per un'unità laptop di serie che è stata accesa per più di 1100 giorni (26423 ore):

ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  9 Power_On_Hours          0x0032   070   070   000    Old_age   Always       -       26423

Per curiosità, ho eseguito lo stesso test su un laptop molto più recente dotato di SSD:

sh$ sudo smartctl -i /dev/sdb
smartctl 6.5 2016-01-24 r4214 [x86_64-linux-4.10.0-32-generic] (local build)
Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Device Model:     TOSHIBA THNSNK256GVN8
Serial Number:    17FS131LTNLV
LU WWN Device Id: 5 00080d 9109b2ceb
Firmware Version: K8XA4103
User Capacity:    256 060 514 304 bytes [256 GB]
Sector Sizes:     512 bytes logical, 4096 bytes physical
Rotation Rate:    Solid State Device
Form Factor:      M.2
Device is:        Not in smartctl database [for details use: -P showall]
ATA Version is:   ACS-3 (minor revision not indicated)
SATA Version is:  SATA 3.2, 6.0 Gb/s (current: 6.0 Gb/s)
Local Time is:    Tue Mar 13 01:03:23 2018 CET
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

La prima cosa da notare, anche se quel dispositivo è S.M.AR.T. abilitato, non è nel smartctl Banca dati. Ciò non impedirà allo strumento di raccogliere dati dall'SSD, ma non sarà in grado di segnalare il significato esatto dei diversi attributi specifici del fornitore:

sh$ sudo smartctl -a /dev/sdb
smartctl 6.5 2016-01-24 r4214 [x86_64-linux-4.10.0-32-generic] (local build)
Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org

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

General SMART Values:
Offline data collection status:  (0x00)    Offline data collection activity
                    was never started.
                    Auto Offline Data Collection: Disabled.
Self-test execution status:      (   0)    The previous self-test routine completed
                    without error or no self-test has ever
                    been run.
Total time to complete Offline
data collection:         (  120) seconds.
Offline data collection
capabilities:              (0x5b) SMART execute Offline immediate.
                    Auto Offline data collection on/off support.
                    Suspend Offline collection upon new
                    command.
                    Offline surface scan supported.
                    Self-test supported.
                    No Conveyance Self-test supported.
                    Selective Self-test supported.
SMART capabilities:            (0x0003)    Saves SMART data before entering
                    power-saving mode.
                    Supports SMART auto save timer.
Error logging capability:        (0x01)    Error logging supported.
                    General Purpose Logging supported.
Short self-test routine
recommended polling time:      (   2) minutes.
Extended self-test routine
recommended polling time:      (  11) minutes.
SCT capabilities:            (0x003d)    SCT Status supported.
                    SCT Error Recovery Control supported.
                    SCT Feature Control supported.
                    SCT Data Table supported.

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     0x000a   100   100   000    Old_age   Always       -       0
  2 Throughput_Performance  0x0005   100   100   050    Pre-fail  Offline      -       0
  3 Spin_Up_Time            0x0007   100   100   050    Pre-fail  Always       -       0
  5 Reallocated_Sector_Ct   0x0013   100   100   050    Pre-fail  Always       -       0
  7 Unknown_SSD_Attribute   0x000b   100   100   050    Pre-fail  Always       -       0
  8 Unknown_SSD_Attribute   0x0005   100   100   050    Pre-fail  Offline      -       0
  9 Power_On_Hours          0x0012   100   100   000    Old_age   Always       -       171
 10 Unknown_SSD_Attribute   0x0013   100   100   050    Pre-fail  Always       -       0
 12 Power_Cycle_Count       0x0012   100   100   000    Old_age   Always       -       105
166 Unknown_Attribute       0x0012   100   100   000    Old_age   Always       -       0
167 Unknown_Attribute       0x0022   100   100   000    Old_age   Always       -       0
168 Unknown_Attribute       0x0012   100   100   000    Old_age   Always       -       0
169 Unknown_Attribute       0x0013   100   100   010    Pre-fail  Always       -       100
170 Unknown_Attribute       0x0013   100   100   010    Pre-fail  Always       -       0
173 Unknown_Attribute       0x0012   200   200   000    Old_age   Always       -       0
175 Program_Fail_Count_Chip 0x0013   100   100   010    Pre-fail  Always       -       0
192 Power-Off_Retract_Count 0x0012   100   100   000    Old_age   Always       -       18
194 Temperature_Celsius     0x0023   063   032   020    Pre-fail  Always       -       37 (Min/Max 11/68)
197 Current_Pending_Sector  0x0012   100   100   000    Old_age   Always       -       0
240 Unknown_SSD_Attribute   0x0013   100   100   050    Pre-fail  Always       -       0

SMART Error Log Version: 1
No Errors Logged

SMART Self-test log structure revision number 1
No self-tests have been logged.  [To run self-tests, use: smartctl -t]

SMART Selective self-test log data structure revision number 1
 SPAN  MIN_LBA  MAX_LBA  CURRENT_TEST_STATUS
    1        0        0  Not_testing
    2        0        0  Not_testing
    3        0        0  Not_testing
    4        0        0  Not_testing
    5        0        0  Not_testing
Selective self-test flags (0x0):
  After scanning selected spans, do NOT read-scan remainder of disk.
If Selective self-test is pending on power-up, resume after 0 minute delay.

Questo è in genere l'output che puoi aspettarti per un SSD nuovo di zecca. Anche se, a causa della mancanza di normalizzazione o metainformazioni per i dati specifici del fornitore, molti attributi vengono segnalati come "Attributo_SSD_sconosciuto". Posso solo sperare nelle versioni future di smartctl incorporerà i dati relativi a quel particolare modello di unità nel database degli strumenti, in modo da poter identificare più accuratamente possibili problemi.

Testa il tuo SSD in Linux con smartctl

Finora abbiamo esaminato i dati raccolti dall'unità durante il suo normale funzionamento. Tuttavia, lo S.M.A.R.T. il protocollo supporta anche diversi comandi di "autotest" per avviare la diagnosi su richiesta.

Se non espressamente richiesto, gli autotest possono essere eseguiti durante le normali operazioni del disco. Poiché sia ​​il test che le richieste di I/O dell'host competono per l'unità, le prestazioni del disco si degraderanno durante il test. L'S.M.A.R.T. specificazione specifica diversi tipi di autotest. I più importanti sono:

Autotest breve (-t short )

Questo test verificherà le prestazioni elettriche e meccaniche, nonché le prestazioni di lettura dell'azionamento. L'autotest breve richiede in genere solo pochi minuti per essere completato (di solito da 2 a 10). Autotest esteso (-t long )

Questo test richiede uno o due ordini di grandezza in più per essere completato. Di solito, questa è una versione più approfondita del breve autotest. Inoltre, quel test analizzerà l'intera superficie del disco per errori di dati senza limiti di tempo. La durata del test sarà proporzionale alla dimensione del disco. Autotest del trasporto (-t conveyance )

questa suite di test è progettata come un modo relativamente rapido per verificare eventuali danni subiti durante il trasporto del dispositivo.

Ecco degli esempi presi dagli stessi dischi di cui sopra. Ti lascio indovinare quale è quale:

sh$ sudo smartctl -t short /dev/sdb
smartctl 6.5 2016-01-24 r4214 [x86_64-linux-4.10.0-32-generic] (local build)
Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF OFFLINE IMMEDIATE AND SELF-TEST SECTION ===
Sending command: "Execute SMART Short self-test routine immediately in off-line mode".
Drive command "Execute SMART Short self-test routine immediately in off-line mode" successful.
Testing has begun.
Please wait 2 minutes for test to complete.
Test will complete after Mon Mar 12 18:06:17 2018

Use smartctl -X to abort test.

Il test è stato ora dichiarato. Aspettiamo fino al completamento per mostrare il risultato:

sh$ sudo sh -c 'sleep 120 && smartctl -l selftest /dev/sdb'
smartctl 6.5 2016-01-24 r4214 [x86_64-linux-4.10.0-32-generic] (local build)
Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF READ SMART DATA SECTION ===
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%       171         -

Facciamo ora lo stesso test sull'altro mio disco:

sh$ sudo smartctl -t short /dev/sdb
smartctl 6.6 2016-05-31 r4324 [x86_64-linux-4.9.0-6-amd64] (local build)
Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF OFFLINE IMMEDIATE AND SELF-TEST SECTION ===
Sending command: "Execute SMART Short self-test routine immediately in off-line mode".
Drive command "Execute SMART Short self-test routine immediately in off-line mode" successful.
Testing has begun.
Please wait 2 minutes for test to complete.
Test will complete after Mon Mar 12 21:59:39 2018

Use smartctl -X to abort test.

Ancora una volta, dormi per due minuti e visualizza l'esito del test:

sh$ sudo sh -c 'sleep 120 && smartctl -l selftest /dev/sdb'
smartctl 6.6 2016-05-31 r4324 [x86_64-linux-4.9.0-6-amd64] (local build)
Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF READ SMART DATA SECTION ===
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%     26429         -
# 2  Short offline       Completed without error       00%     10904         -
# 3  Short offline       Completed without error       00%        12         -
# 4  Short offline       Completed without error       00%         0         -

È interessante notare che, in tal caso, sembra che sia l'unità che i produttori di computer abbiano eseguito alcuni test rapidi sul disco (a vita 0h e 12h). Io era decisamente molto meno preoccupato di monitorare personalmente la salute dell'unità. Quindi, dal momento che sto eseguendo alcuni test automatici per quell'articolo, iniziamo un esteso prova a come va:

sh$ sudo smartctl -t long /dev/sdb
smartctl 6.6 2016-05-31 r4324 [x86_64-linux-4.9.0-6-amd64] (local build)
Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF OFFLINE IMMEDIATE AND SELF-TEST SECTION ===
Sending command: "Execute SMART Extended self-test routine immediately in off-line mode".
Drive command "Execute SMART Extended self-test routine immediately in off-line mode" successful.
Testing has begun.
Please wait 110 minutes for test to complete.
Test will complete after Tue Mar 13 00:09:08 2018

Use smartctl -X to abort test.

Apparently, this time we will have to wait much longer than for the short test. So let’s do it:

sh$ sudo bash -c 'sleep $((110*60)) && smartctl -l selftest /dev/sdb'
[sudo] password for sylvain:
smartctl 6.6 2016-05-31 r4324 [x86_64-linux-4.9.0-6-amd64] (local build)
Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF READ SMART DATA SECTION ===
SMART Self-test log structure revision number 1
Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error
# 1  Extended offline    Completed: read failure       20%     26430         810665229
# 2  Short offline       Completed without error       00%     26429         -
# 3  Short offline       Completed without error       00%     10904         -
# 4  Short offline       Completed without error       00%        12         -
# 5  Short offline       Completed without error       00%         0         -

In that latter case, pay special attention to the different outcomes obtained with the short and extended tests, even if they were performed one right after the other. Well, maybe that disk is not that healthy after all! An important thing to notice is the test will stop after the first read error. So if you want an exhaustive diagnosis of all read errors, you will have to continue the test after each error. I encourage you to take a look at the very well written smartctl(8) manual page for the more information about the options -t select,N-max and -t select,cont for that:

sh$ sudo smartctl -t select,810665230-max /dev/sdb
smartctl 6.6 2016-05-31 r4324 [x86_64-linux-4.9.0-6-amd64] (local build)
Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF OFFLINE IMMEDIATE AND SELF-TEST SECTION ===
Sending command: "Execute SMART Selective self-test routine immediately in off-line mode".
SPAN         STARTING_LBA           ENDING_LBA
   0            810665230            976773167
Drive command "Execute SMART Selective self-test routine immediately in off-line mode" successful.
Testing has begun.
smartctl 6.6 2016-05-31 r4324 [x86_64-linux-4.9.0-6-amd64] (local build)
Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF READ SMART DATA SECTION ===
SMART Self-test log structure revision number 1
Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error
# 1  Selective offline   Completed without error       00%     26432         -
# 2  Extended offline    Completed: read failure       20%     26430         810665229
# 3  Short offline       Completed without error       00%     26429         -
# 4  Short offline       Completed without error       00%     10904         -
# 5  Short offline       Completed without error       00%        12         -
# 6  Short offline       Completed without error       00%         0         -

Conclusion

Definitely, S.M.A.R.T. reporting is a technology you can add to your tool chest to monitor your servers disk health. In that case, you should also take a look at the S.M.A.R.T. Disk Monitoring Daemon smartd(8) that could help you automate monitoring through syslog reporting.

Given the statistical nature of failure prediction, I am a little bit less convinced however than aggressive S.M.A.R.T. monitoring is of great benefit on a personal computer. Finally, don’t forget whatever is its technology, a drive will fail— and we have seen earlier, in one-third of the case, it will fail without prior notices. So nothing will replace RAIDand offline backups to ensure your data integrity!

This article was written by Sylvain Leroux


Linux
  1. Introduzione ai comandi Linux chgrp e newgrp

  2. Il ciclo di vita dei test del kernel Linux

  3. Monitora e analizza lo stato del disco rigido con Smartctl in Linux

  4. Inode e il filesystem di Linux

  5. I 5 migliori client di Google Drive per Linux

Monitoraggio degli host Linux e Windows con Sguardi

Linux sul mainframe:allora e adesso

Come partizionare e formattare un'unità su Linux

Qual è la differenza tra Linux e Unix?

Aggiornamento a Solid State Drive in Linux:il modo più semplice e quello più difficile

Mantenere e testare la velocità di un sito web è fondamentale