# Self-Monitoring, Analysis and Reporting Technology

Self-Monitoring, Analysis, and Reporting Technology, o S.M.A.R.T., è un sistema di monitoraggio per dischi rigidi meccanici e per SSD, per rilevare e fornire diversi indicatori di affidabilità, nella speranza di anticipare i malfunzionamenti.

## Funzionamento

Essenzialmente, i malfunzionamenti dei dischi rigidi sono di due tipi:
* Quelli prevedibili, in cui i malfunzionamenti, specialmente dovuti all'usura o all'invecchiamento, si manifestano gradualmente. Un sistema di monitoraggio può individuarli, come la spia della temperatura nella strumentazione di un'automobile può mettere in guardia il guidatore — prima che accadano seri danni — che il motore sta cominciando a surriscaldarsi.
* Quelli imprevedibili, dove i malfunzionamenti accadono improvvisamente e senza preavviso, come nel caso di un componente elettronico che si brucia.
Il monitoraggio di un disco rigido può predire circa il 60% dei possibili malfunzionamenti. S.M.A.R.T. ha lo scopo di avvisare l'utente o l'amministratore di sistema che il disco rigido sta per guastarsi, in modo che questi abbia il tempo di copiare i dati su un altro dispositivo di archiviazione.
Compaq è stata la prima azienda a supportare S.M.A.R.T., ma oggi la maggior parte dei principali produttori di dischi rigidi e schede madri lo supportano almeno in parte. Molte schede madri avvisano l'utente quando il disco rigido sta per guastarsi. Tuttavia, S.M.A.R.T. attualmente non è implementato correttamente su molte piattaforme a causa dell'assenza di standard per l'interscambio di dati S.M.A.R.T.
Da un punto di vista legale, il termine "S.M.A.R.T." si riferisce soltanto all'interscambio di dati tra i sensori elettro-meccanici del disco rigido e il computer, cosicché alcuni produttori includono sensori per una sola grandezza fisica e dichiarano il prodotto compatibile S.M.A.R.T. Per esempio, alcuni produttori dichiarano di supportare S.M.A.R.T., ma non includono un sensore di temperatura. Nel caso di dispositivi elettronici, l'affidabilità di norma è inversamente proporzionale alla temperatura, pertanto questo fattore è cruciale per predire eventuali malfunzionamenti.
Durante periodi di uso intenso (come nel caso di operazioni di deframmentazione oppure di funzionamento come server web), la temperatura può superare le specifiche fornite dal produttore. I danni provocati da temperatura eccessiva sono cumulativi nel tempo. Un sensore di temperatura S.M.A.R.T. può informare l'utente prima che il disco sia danneggiato dal calore eccessivo, ma molti produttori non includono un sensore di temperatura nel corredo S.M.A.R.T. Perciò, il termine S.M.A.R.T. è uno standard praticamente privo di significato, perché molti produttori dichiarano di supportarlo, ma si rifiutano di rivelare quali caratteristiche fisiche sono monitorate. Ciò crea confusione ed impedisce all'utente di confrontare correttamente i diversi prodotti.
Alcuni controller sono in grado di duplicare le operazioni di scrittura su di un backup secondario. Questa tecnologia è nota come RAID. Però molti software S.M.A.R.T. non funzionano se RAID è in funzione.

### Threshold Exceeds Condition

T.E.C. (acronimo di Threshold Exceeds Condition) è una delle funzioni previste in alcuni software di monitoraggio dell'hardware ed indica la data di rottura prevista del disco rigido, su cui tale software è installato.
La stima viene effettuata attraverso i valori forniti dallo SMART e la sua attendibilità dipende da quanto tempo il software è installato sul computer. Essa varia comunque, secondo stime non ufficiali, dal 25% all'85%.

## Attributi

Ogni produttore definisce un insieme di attributi S.M.A.R.T. e imposta i valori di soglia che non dovrebbero essere superati durante un normale funzionamento. La scala di valori che un attributo può assumere varia da 1 a 253 (1 indica il funzionamento peggiore e 253 quello migliore). A seconda del produttore, gli attributi con valore di circa 100 o 200 saranno scelti come valori "normali". I produttori potrebbero non concordare sulle definizioni degli attributi e sulle unità di misura.
Legenda :
| | È meglio avere un alto valore RAW |
| | È meglio avere un basso valore RAW |
| Critico | Potenziale indicatore di un imminente guasto elettromeccanico |
| ID | Hex | Nome attributo | Meglio se | Descrizione |
| 01 | 01 | Read Error Rate | | Indica il numero delle volte in cui è capitato un errore di lettura hardware avvenuto leggendo un dato dalla superficie del disco. Un valore diverso da zero indica un problema della superficie del disco o delle testine di lettura/scrittura. Da notare che gli hard-disk Seagate spesso riportano un valore raw, che non indica problemi e può riportare alti valori anche su dischi appena comprati. |
| 02 | 02 | Throughput Performance | | Ampiezza di banda del disco. Se il valore di questo attributo cala c'è un'alta probabilità che il disco abbia un problema. |
| 03 | 03 | Spin-Up Time | | Tempo medio che impiega il rotore ad accendersi (da zero RPM alla piena funzionalità [millisecondi]). |
| 04 | 04 | Start/Stop Count | | Numero dei cicli di start/stop compiuti dal disco. |
| 05 | 05 | Reallocated Sectors Count | | Numero di settori riallocati. Quando il disco trova un errore di lettura/scrittura/verifica, marca il settore come "riallocato" e trasferisce i dati in una speciale area riservata (spare area). Questo processo è anche conosciuto come "rimappatura" e i settori "riallocati" sono chiamati "remaps". Questo è il motivo del fatto che, nei moderni hard-disk, i settori danneggiati non possono essere trovati testando la superficie infatti tutti i settori danneggiati sono nascosti in settori riallocati. Tuttavia più settori vengono riallocati, più la velocità di lettura/scrittura diminuirà. |
| 06 | 06 | Read Channel Margin | | Margine di un canale mentre è in atto una lettura. La funzione di questo attributo non è specificata. |
| 07 | 07 | Seek Error Rate | | Numero degli errori di posizionamento delle testine magnetiche. Se sono presenti problemi nel sistema di posizionamento meccanico, danneggiamenti del rotore o un aumento della temperatura, il numero di errori di posizionamento aumenterà. Un elevato numero di errori di posizionamento indica un peggioramento delle condizioni della superficie del disco e del suo sistema meccanico. |
| 08 | 08 | Seek Time Performance | | Tempo medio per il posizionamento delle testine magnetiche. Se questo attributo cala, indica un problema nel sistema meccanico. |
| 09 | 09 | Power-On Hours (POH) | | Conteggio delle ore in cui il disco è rimasto acceso. Il valore RAW di questo attributo mostra il totale di ore (o minuti, o secondi, dipende dal costruttore) di attività del disco. |
| 10 | 0A | Spin Retry Count | | Indica i tentativi di avviamento del disco. Questo attributo registra il numero totale di tentativi di avviamento affinché il disco diventi completamente operativo (a condizione che il primo tentativo non vada a buon fine). Un aumento di questo attributo indica problemi nel sistema meccanico del disco. |
| 11 | 0B | Recalibration Retries | | Questo attributo indica il numero di volte in cui è stata richiesta la ricalibrazione (a condizione che il primo tentativo non abbia avuto successo). Un aumento di questo attributo indica problema nel sistema meccanico. |
| 12 | 0C | Device Power Cycle Count | | Questo attributo indica il numero totale dei cicli di accensione/spegnimento del disco. |
| 13 | 0D | Soft Read Error Rate | | Errori di lettura, non correggibili, segnalati dal sistema operativo. Se questo valore è diverso da zero si consigli di fare un backup. |
| 190 | BE | Airflow Temperature (WDC) | | Valore di temperatura dell'aria presente sui dischi Western Digital (Uguale alla temperatura (C2), ma il valore indica 50 gradi in meno su alcuni modelli. Segnato come obsoleto.) |
| 190 | BE | Temperature Difference from 100 | | Il valore è uguale a (100 - temp °C), permette ai produttori di impostare una soglia minima corrispondente alla massima temperatura. |
| 191 | BF | G-sense error rate | | Frequenza di errori risultanti da fattori esterni. |
| 192 | C0 | Power-off Retract Count | | Numero delle volte in cui le testine vengono spostate dalla superficie del disco. Le testine possono essere spostate senza la necessità di spegnere il disco (Emergency Retract Cycle count nei dischi Fujitsu). |
| 193 | C1 | Load/Unload Cycle | | Conteggio dei cicli di posizionamento/uscita della "parking area" (zona di posizionamento a riposo delle testine). |
| 194 | C2 | Temperature | | Indica la temperatura corrente interna. |
| 195 | C3 | Hardware ECC Recovered | | Indica il tempo intercorso tra la correzione di errori ECC. |
| 196 | C4 | Reallocation Event Count | | Numero delle operazioni di rimappatura. Il valore RAW di questo attributo mostra il numero totale di tentativi di trasferire i dati dai settori danneggiati all'area di spare". Vengono contati sia i tentavi riusciti che quelli non andati a buon fine. |
| 197 | C5 | Current Pending Sector Count | | Numero di settori "instabili" (in attesa di essere rimappati). Se il settore instabile è successivamente letto o scritto con successo, il valore di questo attributo diminuirà e il settore sarà rimappato. Un errore di lettura sul settore non porterà alla sua rimappatura, questo avverrà solo nel caso di un tentativo fallito di scrittura. Questo può portare a dei problemi perché il settore non viene rimappato se le scritture derivano dalla cache, ma solo se derivano da scritture di I/O dirette. |
| 198 | C6 | Offline Uncorrectable Sector Count | | Numero totale di errori, non correggibili, durante la lettura/scrittura di un settore. Un aumento del valore di questo attributo indica difetti della superficie del disco e/o problemi del sistema meccanico. |
| 199 | C7 | UltraDMA CRC Error Count | | Il numero di errori, durante il trasferimento dati via cavo, determinati dall'ICRC (Interface Cyclic Redundancy Check). |
| 200 | C8 | Write Error Rate / Multi-Zone Error Rate | | Il numero totali di errori avvenuti durante la scrittura di un settore. |
| 201 | C9 | Soft Read Error Rate | | Numero di errori off-track. Se il valore è diverso da zero si consiglia di fare un backup. |
| 202 | CA | Data Address Mark errors | | Numero di errori "Data Address Mark". |
| 203 | CB | Run Out Cancel | | Numero di errori ECC. |
| 204 | CC | Soft ECC Correction | | Numero di errori corretti dal software ECC. |
| 205 | CD | Thermal Asperity Rate (TAR) | | Numero di errori dovuto a problemi termici. |
| 206 | CE | Flying Height | ? | Altezza delle testine rispetto alla superficie del disco. |
| 207 | CF | Spin High Current | ? | Indica la quantità di "alta" corrente usata per l'accensione del disco. |
| 208 | D0 | Spin Buzz | ? | Numero di routine "buzz" necessarie per l'accensione del disco |
| 209 | D1 | Offline Seek Performance | ? | Prestazioni di posizionamento del disco, durante operazioni "offline" |
| 220 | DC | Disk Shift | | Spostamento del disco dal "perno" centrale, solitamente dovuto a un colpo esterno. L'unità di misura è sconosciuta. |
| 221 | DD | G-Sense Error Rate | | Numero di errori risultanti da fattori esterni come colpi o vibrazioni. |
| 222 | DE | Loaded Hours | ? | Tempo impiegato per il caricamento dei dati (movimento del braccio) |
| 223 | DF | Load/Unload Retry Count | ? | Numero delle volte in cui le testine cambiano posizione. |
| 224 | E0 | Load Friction | | Resistenza causata dall'attrito sulle parti meccaniche, mentre queste ultime sono in movimento. |
| 225 | E1 | Load/Unload Cycle Count | | Numero totale di cicli di caricamento. |
| 226 | E2 | Load 'In'-time | ? | Tempo totale di caricamento degli attuatori magnetici delle testine (non viene conteggiato il tempo speso nella "parking area"). |
| 227 | E3 | Torque Amplification Count | | Numero di tentativi di compensazione dovuti alla variazione di velocità dei dischi. |
| 228 | E4 | Power-Off Retract Cycle | | Numero di volte in cui il braccio è stato riposizionato in automatico a causa di una caduta di tensione. |
| 230 | E6 | GMR Head Amplitude | ? | Ampiezza del "trashing" (distanza del movimento ripetitivo della testina in avanti/indietro). |
| 231 | E7 | Temperature | | Temperatura del disco. |
| 240 | F0 | Head Flying Hours | ? | Tempo complessivo trascorso durante il posizionamento delle testine. |
| 250 | FA | Read Error Retry Rate | | Numero di errori durante la lettura del disco. |