Installazione e configurazione di smartctl per il monitoraggio proattivo dello stato di salute dei dischi | INTROSERV
EUR
european

EUR

usa

USD

Italy It
Ex. VAT Ex. VAT 0%

Installazione e configurazione di smartctl per il monitoraggio proattivo dello stato di salute dei dischi

Introduzione

smartctl è un'utilità da console del pacchetto smartmontools, progettata per funzionare con la tecnologia S.M.A.R.T. (Self-Monitoring, Analysis and Reporting Technology) implementata nelle moderne unità di archiviazione.

Casi d'uso:

  • server di società di hosting;
  • nodi VPS/VDS;
  • server dedicati;
  • server di file;
  • sistemi di backup;
  • infrastrutture aziendali.

Quali problemi risolve:

  • rilevamento precoce del deterioramento dei dischi;
  • previsione dei guasti delle unità;
  • riduzione del rischio di perdita di dati;
  • automazione del monitoraggio dello stato di salute di HDD, SSD e NVMe;
  • analisi dei problemi fisici nel sottosistema del disco.

Il monitoraggio proattivo tramite SMART consente di identificare un problema prima che si verifichi un vero e proprio guasto del disco, il che è di fondamentale importanza per gli ambienti di produzione.

Requisiti e prerequisiti

Sistemi operativi e versioni supportati

Linux:

  • Debian 10+
  • Ubuntu 18.04+
  • RHEL / AlmaLinux / Rocky Linux 8+
  • CentOS 7 (supportato, ma obsoleto)
  • FreeBSD 12+

Windows (tramite smartmontools, uso limitato)

Gli esempi riportati di seguito sono relativi a Linux.

Software e pacchetti necessari:

  • pacchetto smartmontools
  • accesso a /dev/sdX, /dev/nvmeX
  • systemd installato (per smartd)

Diritti di accesso:

  • sono richiesti i privilegi di root
  • oppure accesso tramite sudo

Controlli preliminari

Visualizzazione dell'elenco dei dischi nel sistema:

lsblk -d -o NAME,MODEL

Panoramica e concetti di base

Termini chiave

  • SMART - sistema integrato di autodiagnosi del disco
  • Attributi - attributi di stato (Reallocated_Sector_Ct, Pending_Sectors, ecc.)
  • Autotest - test integrati dell'unità
  • smartctl - utility CLI per la gestione SMART
  • smartd - demone di monitoraggio automatico

Come funziona

  1. Il disco raccoglie autonomamente le statistiche
  2. smartctl legge questi dati
  3. smartd analizza i valori di soglia e gli eventi
  4. Le notifiche vengono inviate quando si verificano dei problemi

Logica del flusso di lavoro

Disco > Attributi SMART > smartctl > smartd > registro / e-mail / monitoraggio

Configurazione di base e utilizzo di smartctl

Installazione dell’utilità smartmontools

Non è possibile utilizzare SMART senza il pacchetto smartmontools installato, che include le utilità smartctl (gestione manuale dei dischi) e smartd (demone di monitoraggio in background).

L'installazione viene eseguita utilizzando gli strumenti standard del gestore di pacchetti della distribuzione.

Debian / Ubuntu

sudo apt update sudo apt install smartmontools

RHEL / AlmaLinux / Rocky Linux

sudo dnf install smartmontools

Dopo l’installazione, le utilità sono disponibili nel sistema e pronte all’uso senza necessità di ulteriore inizializzazione.

Verifica della versione e della disponibilità di smartctl

Come primo passo, si consiglia di verificare che l'utilità sia correttamente installata e disponibile nel sistema:

smartctl --version

Il comando restituisce la versione del pacchetto e un elenco delle tecnologie supportate.

Ciò consente di:

  • assicurarsi che sia in uso una versione aggiornata;
  • verificare il supporto di NVMe, RAID e altri tipi di dispositivi.

Verifica del supporto SMART su un disco specifico

Successivamente, è necessario verificare se l'unità stessa supporta la tecnologia SMART e se questa è abilitata a livello di dispositivo.

sudo smartctl -i /dev/sda

Esempio di output corretto:

SMART support is: Available - device has SMART capability. SMART support is: Enabled

  • Disponibile - il disco supporta fisicamente SMART;
  • Abilitato: la raccolta dei dati SMART è attiva e disponibile per la lettura.

Se la tecnologia SMART è supportata ma disabilitata, ciò si verifica spesso su dischi nuovi o mai utilizzati in precedenza. In tal caso, è necessario abilitarla manualmente:

sudo smartctl -s on /dev/sda

Successivamente, si consiglia di rieseguire il comando smartctl -i per assicurarsi che la tecnologia SMART sia attivata.

Visualizzazione degli attributi SMART e valutazione iniziale dello stato di salute

Il principale valore pratico di SMART risiede nei suoi attributi: valori numerici che riflettono le condizioni della superficie, dei componenti meccanici e dell’elettronica del disco.

Per visualizzare gli attributi, utilizzare il comando:

sudo smartctl -A /dev/sda

L'output contiene una tabella degli attributi con i relativi valori attuali e la cronologia. Innanzitutto, occorre prestare attenzione ai seguenti indicatori:

Campi chiave nell'output:

  • VALUE (Valore attuale): il valore normalizzato dell’attributo (di solito compreso tra 1 e 100, dove 100 rappresenta il valore ideale). Il disco è considerato difettoso se VALUE ≤ THRESH.
  • WORST (Valore peggiore): il valore peggiore raggiunto durante il funzionamento del disco.
  • THRESH (Soglia): il valore minimo consentito per VALUE. Il superamento della soglia (VALUE ≤ THRESH) indica una condizione critica.
  • RAW_VALUE: il valore “grezzo”, non normalizzato, dell’attributo. È questo il dato da analizzare per valutare l’usura e conteggiare gli eventi.

Attributi chiave per gli HDD (dischi rigidi tradizionali):

  • Reallocated_Sector_Ct: un aumento indica un degrado fisico della superficie.
  • Current_Pending_Sector (Settori in attesa di riallocazione): settori instabili. Anche un solo valore diverso da zero è un segnale di allarme.
  • Offline_Uncorrectable (Errori non correggibili): settori che non è stato possibile leggere.
  • Power_On_Hours: il tempo totale di funzionamento del disco.

Attributi chiave per gli SSD:

  • Retired_Block_Count: l’equivalente di Reallocated_Sector_Ct per gli HDD. Indica il numero di blocchi messi fuori servizio. Anche un valore basso, ad esempio VALUE=100, può essere normale.
  • Reallocated_Event_Count: il numero di eventi di riallocazione.
  • SSD_Life_Left o Percentage Used/Media Wearout Indicator: la percentuale di vita residua (o usura). Un valore basso (ad es. <10%) è segno di un guasto imminente.
  • Wear_Range_Delta: un indicatore dell’uniformità dell’usura tra le celle di memoria.
  • Power_On_Hours_and_Msec: il tempo totale di funzionamento.
  • Lifetime_Writes_GiB / Lifetime_Reads_GiB (Attributi 241, 242): il volume totale di dati scritti/letti.

Attributi chiave per NVMe (tramite smartctl -a /dev/nvme0):

  • Percentage Used: La percentuale di resistenza alla scrittura consumata. L’indicatore principale dell’usura.
  • Errori di integrità dei supporti e dei dati: errori di integrità dei dati.
  • Avviso critico: Indicatori di avviso critico.
  • Temperatura: temperatura attuale.

A questo punto, l’amministratore acquisisce una comprensione generale delle condizioni del disco ed è in grado di identificare segni evidenti di problemi.

Configurazione avanzata e scenari pratici

SMART supporta gli autotest integrati, che vengono eseguiti dall’unità stessa senza il coinvolgimento del sistema operativo.

Il test breve è progettato per un controllo rapido dei componenti chiave:

sudo smartctl -t short /dev/sda

Il test lungo esegue una scansione completa della superficie e richiede molto più tempo:

sudo smartctl -t long /dev/sda

Una volta completato il test, è necessario verificare i risultati:

sudo smartctl -l selftest /dev/sda

L'output indica:

  • il tipo di test;
  • lo stato di completamento;
  • la presenza o l'assenza di errori.

Un test non superato è un motivo diretto per prepararsi alla sostituzione del disco.

Utilizzo dei controller RAID

I controller RAID hardware spesso nascondono i dati SMART al sistema. In tali casi, è necessario specificare esplicitamente il tipo di dispositivo.

Esempio per un controller LSI:

smartctl -a -d megaraid,0 /dev/sda

Dove:

  • -a - opzione per visualizzare tutte le informazioni SMART disponibili (attributi, registri, errori, valutazione complessiva dello stato di salute).
  • -d - opzione per specificare il tipo di dispositivo.
  • megaraid - indica al driver SMART che il disco è collegato a un controller LSI/Broadcom (comunemente utilizzato nei server).
  • 0 - il numero del disco fisico (PD, Physical Drive) nell'array RAID. Non si tratta di sda, ma di un ID univoco assegnato dal controller. È possibile individuarlo utilizzando l'utilità di gestione del controller (ad es., storcli o MegaCLI).
  • /dev/sda - in questo contesto, non si tratta del disco reale, ma di uno pseudo-dispositivo che rappresenta il controller RAID stesso nel sistema. In genere, si tratta di /dev/sgX (SCSI Generic) o semplicemente /dev/sda se il controller ha creato un disco virtuale.

Errore tipico quando il tipo di dispositivo non è specificato:

SMART support is: Unavailable

Ciò non significa che SMART non sia disponibile, ma solo che smartctl non è riuscito a determinare automaticamente il percorso del disco fisico. La soluzione consiste nello specificare correttamente il parametro -d.

Diagnostica e risoluzione dei problemi

Segnali di possibili malfunzionamenti:

  • aumento del valore di Reallocated_Sector_Ct;
  • valore di Current_Pending_Sector diverso da zero;
  • errori di programmazione/cancellazione (Program_Fail_Count, Erase_Fail_Count);
  • errori di autotest;
  • aumento della latenza I/O;
  • messaggi di errore nei log di sistema.

Analisi dei log

journalctl -u smartd

dmesg | grep -i error

Spiegazione:

  • Settori in sospeso > 0 - alto rischio di guasto;
  • I settori riallocati sono in aumento: degrado progressivo;
  • Autotest FALLITO - il disco deve essere sostituito.

Identificazione delle cause dei problemi

Per escludere falsi positivi, è importante mettere in correlazione i dati SMART con il carico effettivo.

iostat -x 1 iotop

Verifica della posizione in cui è montato il disco:

lsblk -o NAME,SERIAL,MOUNTPOINT

Identificazione dei controller:

lspci | grep -i raid

Metriche aggiuntive:

  • temperatura superiore a 50 °C;
  • aumento degli errori CRC;
  • valori SMART instabili.

Configurazione delle notifiche all'amministratore quando i parametri SMART si avvicinano ai valori di soglia

La semplice presenza dei dati SMART non garantisce ancora la sicurezza dell’infrastruttura. Un elemento chiave del monitoraggio è la notifica tempestiva all’amministratore nel momento in cui le condizioni del disco iniziano a deteriorarsi, ma il guasto non si è ancora verificato.

Il meccanismo di notifica consente di:

  • rilevare il degrado dell’unità in una fase precoce;
  • pianificare in anticipo la sostituzione del disco;
  • evitare tempi di inattività dovuti a emergenze e la perdita di dati;
  • operare entro le finestre di manutenzione programmate.

In smartmontools, il demone smartd è responsabile dell’invio delle notifiche. Monitora automaticamente le variazioni degli attributi SMART e reagisce agli scostamenti dalla norma.

Principio di funzionamento delle notifiche di smartd

Il demone smartd funziona come servizio in background e svolge le seguenti attività:

  1. Interroga periodicamente gli attributi SMART del disco.
  2. Confronta i valori attuali con: le soglie di fabbrica, i valori precedenti (dinamica delle variazioni).
  3. Rileva: l'aumento degli attributi critici, la comparsa di nuovi errori, i fallimenti dell'autotest.
  4. Genera una notifica e la invia all'amministratore.

Requisiti per il corretto funzionamento delle notifiche

Prima della configurazione, è necessario assicurarsi che:

  • un MTA (Postfix, Exim, Sendmail, ssmtp) sia installato e configurato correttamente nel sistema;
  • il server sia in grado di inviare posta in uscita;
  • sia definito l'indirizzo e-mail dell'amministratore per la ricezione delle notifiche.

Esempio di configurazione di ssmtp: un MTA leggero e semplice per l’invio di posta dal sistema

Installazione:

# For Debian/Ubuntu sudo apt update && sudo apt install ssmtp mailutils -y # For RHEL sudo dnf install ssmtp mailx

Creare il file di configurazione

sudo nano /etc/ssmtp/ssmtp.conf

e modificarne il contenuto:

# Default sender address [email protected] # SMTP server and port of your email provider mailhub=smtp.your-domain.com:587 # Alternative example: # mailhub=smtp.gmail.com:587 # For Gmail # Authentication credentials [email protected] AuthPass=your-password # Encryption settings UseSTARTTLS=YES # Use STARTTLS UseTLS=YES # Use TLS FromLineOverride=YES # Allow overriding the sender address # Hostname (specify your server's name) hostname=server1.your-domain.com # you can use hostname=localhost or specify the system's actual hostname

Salvare il file e configurare i permessi di accesso:

sudo chmod 640 /etc/ssmtp/ssmtp.conf sudo chown root:mail /etc/ssmtp/ssmtp.conf

Configurare i mittenti (alias):

sudo nano /etc/ssmtp/revaliases

root:[email protected]:smtp.your-domain.com:587 www-data:[email protected]:smtp.your-domain.com:587

Per garantire l'invio corretto dei messaggi, sul server devono essere aperte le seguenti porte: 587 (principale per l'invio con crittografia STARTTLS), oppure 25 (SMTP standard), 465 (SMTP sicuro con SSL), se previste dalla configurazione.

Test di base sull'invio della posta:

echo "SMART test message" | mail -s "SMART notification test" [email protected] # You can explicitly specify the sender echo "SMART test message" | mail -s "SMART notification test" -a "From: [email protected]" [email protected] # Via ssmtp directly echo "SMART test message" | ssmtp [email protected]

[email protected] – l'indirizzo del destinatario a cui verrà inviato il messaggio.

Se l’e-mail non viene recapitata, non ha senso procedere con l’ulteriore configurazione di smartd finché i problemi di recapito della posta non saranno risolti.

La configurazione delle notifiche SMART viene effettuata nel file:

/etc/smartd.conf

Esempio di una semplice configurazione funzionante:

/dev/sda -a -o on -S on -m [email protected]

Parametri:

  • /dev/sda - il disco monitorato;
  • -a - serie completa di controlli;
  • -S on - il salvataggio degli attributi tra un riavvio e l'altro è abilitato;
  • -o on - la raccolta automatica dei dati offline è attivata;
  • -m - le notifiche vengono inviate all'indirizzo e-mail specificato.

A questo punto, smartd inizierà a monitorare lo stato del disco in background.

Notifiche in caso di avvicinamento ai valori di soglia

Una caratteristica fondamentale di smartd è che monitora le variazioni nei valori degli attributi, non solo il loro superamento critico.

  • In pratica, ciò significa che è possibile inviare una notifica:
  • alla prima comparsa di Current_Pending_Sector;
  • in caso di aumento di Reallocated_Sector_Ct, anche se la soglia non è stata ancora raggiunta;
  • al rilevamento di errori durante l’autotest;
  • in caso di degrado dei parametri NVMe.

Gli attributi più significativi di un guasto precoce:

  • Reallocated_Sector_Ct
  • Current_Pending_Sector
  • Offline_Uncorrectable
  • Errori di integrità dei supporti e dei dati (NVMe)
  • Percentuale utilizzata (SSD/NVMe)

Anche variazioni minime di questi parametri devono essere considerate un motivo di attenzione.

Utilizzo degli autotest come fonte di notifica

Per aumentare il livello di informazione, si raccomanda di combinare il monitoraggio degli attributi con autotest regolari.

Esempio di configurazione con una pianificazione:

/dev/sda -a -o on -S on \ -s (S/../.././02|L/../../6/03) \ -m [email protected]

Logica di funzionamento:

  • ogni giorno viene eseguito un test breve;
  • una volta alla settimana viene eseguito un test completo;
  • in caso di esito negativo di qualsiasi test, l'amministratore riceve una notifica.

Gestione della frequenza e del volume delle notifiche

Per evitare un numero eccessivo di avvisi, si utilizza il parametro -M once

Esempio:

/dev/sda -a -m [email protected] -M once

In questa modalità:

  • viene inviata una notifica al primo rilevamento di un problema;
  • i messaggi successivi non vengono duplicati finché la causa non viene risolta.

Per testare il sistema di notifica, è possibile utilizzare -M test

Ciò consente di verificare che smartd sia in grado di inviare messaggi senza attendere che si verifichi un errore effettivo.

Conclusione

Nell’ambito del presente manuale, è stato esaminato sistematicamente l’intero ciclo di implementazione e funzionamento di smartctl e del demone smartd come strumento per il monitoraggio proattivo dello stato di salute dei dischi. Sono stati trattati i principi di base del funzionamento di SMART, i metodi pratici per l’analisi degli attributi, l’avvio e l’interpretazione degli autotest, le specificità relative all’utilizzo delle unità NVMe e dei controller RAID, nonché i metodi e le tecniche diagnostiche per identificare le cause alla radice dei problemi. È stata prestata particolare attenzione alla configurazione delle notifiche, che consentono di rilevare il degrado delle unità nelle fasi iniziali, anche prima che si verifichi un guasto critico.

Un monitoraggio SMART correttamente configurato è parte integrante di un’infrastruttura server affidabile e dovrebbe essere considerato uno standard operativo obbligatorio. L’uso di smartctl e smartd consente all’amministratore di sistema di passare dalla risoluzione reattiva degli incidenti a una manutenzione consapevole e gestibile del sottosistema disco, riducendo i rischi di tempi di inattività, perdita di dati e incidenti non pianificati, creando al contempo una solida base per un’ulteriore automazione e integrazione con sistemi di monitoraggio centralizzati.

VAT

  • Other

    Ex. VAT

    0%
  • austria

    Austria

    20%
  • Belgium

    Belgium

    21%
  • Bulgaria

    Bulgaria

    20%
  • Croatia

    Croatia

    25%
  • Cyprus

    Cyprus

    19%
  • Czech Republic

    Czech Republic

    21%
  • Denmark

    Denmark

    25%
  • Estonia

    Estonia

    22%
  • France

    France

    20%
  • Finland

    Finland

    24%
  • Germany

    Germany

    19%
  • Greece

    Greece

    24%
  • Hungary

    Hungary

    27%
  • Ireland

    Ireland

    23%
  • Italy

    Italy

    22%
  • Latvia

    Latvia

    21%
  • Lithuania

    Lithuania

    21%
  • Luxembourg

    Luxembourg

    17%
  • Malta

    Malta

    18%
  • Netherlands

    Netherlands

    21%
  • Poland

    Poland

    23%
  • Portugal

    Portugal

    23%
  • Romania

    Romania

    19%
  • Slovakia

    Slovakia

    20%
  • Slovenia

    Slovenia

    22%
  • Spain

    Spain

    21%
  • Sweden

    Sweden

    25%
  • USA

    USA

    0%
european
states
  • germany
  • Español
  • Italiano
  • Poland
  • Русский
  • Slovenski
  • Türkçe
  • ukraine
  • kingdom
  • French
  • Hrvatska
  • Other
  • Austria
  • Belgium
  • Bulgaria
  • Croatia
  • Cyprus
  • Czech Republic
  • Denmark
  • Estonia
  • Finland
  • France
  • Germany
  • Greece
  • Hungary
  • Ireland
  • Italy
  • Latvia
  • Lithuania
  • Luxembourg
  • Malta
  • Netherlands
  • Poland
  • Portugal
  • Romania
  • Slovakia
  • Slovenia
  • Spain
  • Sweden
  • USA