Se ricevi una notifica di errore del disco rigido o noti delle anomalie nel sistema, devi agire in fretta per ripristinare la ridondanza del tuo array RAID. In questo articolo scoprirai come identificare un disco rigido difettoso su un Server Dedicati Linux o un Server Bare Metal Linux con RAID software e come preparare il Server alla sostituzione del disco difettoso.

Nota bene:

Questo articolo presuppone una conoscenza di base dell'amministrazione dei server con Linux. Se hai domande o hai bisogno di assistenza riguardo alla sostituzione di un disco rigido difettoso, contatta l'Assistenza Clienti. Trovi le informazioni di contatto nella pagina seguente:Assistenza Clienti IONOS.

Gli esempi riportati in questo articolo si riferiscono principalmente ai classici dischi SATA/SAS in configurazioni RAID software con nomi di dispositivi come /dev/sda e /dev/sdb. Nel caso degli NVMe, i nomi dei dispositivi, gli strumenti di diagnostica e, a seconda della configurazione, anche alcune singole operazioni possono variare.

Per garantire la massima affidabilità possibile, devi monitorare il RAID software del tuo server. Se ricevi un’e-mail di notifica relativa a un disco rigido difettoso o se riscontri un guasto a un disco rigido, devi identificare il disco difettoso e preparare il server per la sostituzione del disco rigido difettoso. Contatta quindi l'Assistenza Clienti per avviare la procedura di sostituzione del disco rigido.

Importante:

I sistemi RAID consentono una maggiore affidabilità e/o una maggiore velocità. Tuttavia, non sostituiscono i backup regolari. Per evitare la perdita di dati, ti consigliamo di eseguire regolarmente il backup dei tuoi dati. Assicurati inoltre di eseguire il backup dei tuoi dati prima di eseguire le operazioni descritte di seguito per garantire la sicurezza dei tuoi dati. 

Per ulteriori informazioni sulla creazione dei backup, consulta la seguente categoria del Centro Assistenza IONOS: Soluzioni di Backup

Verificare lo stato del RAID software

Interpretare i risultati

RAID integro: Un RAID funzionante viene indicato dallo stato [UU] (per RAID 1) o [UUUU] (per RAID 5/6 con 4 dischi rigidi). Ogni "U" sta per "Up" (attivo).

Dispositivo difettoso/mancante: Un [_U] o [U_] indica che un disco rigido è mancante o non è sincronizzato.

Contrassegno Faulty: Un (F) dopo un dispositivo (ad es. sdb1[2](F)) significa che il sistema ha già contrassegnato il disco come difettoso a livello software ("faulty").

Nelle configurazioni con 2 SSD (sistema operativo) e HDD aggiuntivi (dati) vedrai diversi dispositivi md:

  • md1, md2, md127 o simili (spesso RAID 1 per Boot/Root)
  • md11 o simili (spesso RAID 5 o 6 per i dati)

Controlla tutte le sezioni dell'output per verificare l'eventuale assenza di "U" o la presenza di contrassegni (F). Ecco un esempio di RAID integro:

[root@localhost ~]# cat /proc/mdstat

Personalities : [raid1]
read_ahead 1024 sectors
md2 : active raid1 sda3[1] sdb3[0]
262016 blocks [2/2] [UU]

md1 : active raid1 sda2[1] sdb2[0]
119684160 blocks [2/2] [UU]

md0 : active raid1 sda1[1] sdb1[0]
102208 blocks [2/2] [UU]

unused devices: <none>
 

L'esempio sopra riportato mostra tre Multiple Devices o array RAID (md0, md1, md2). Per ciascuna di queste unità logiche viene indicato da quali partizioni è composta e su quali unità si trovano tali partizioni. L'unità logica md0 è composta dalle partizioni sda1 e sdb1. Nella riga riportata sotto la rispettiva unità logica, alla fine della riga tra parentesi quadre viene mostrato lo stato delle singole partizioni.

Se un disco rigido è mancante o difettoso, questo viene spesso indicato da un [_U] o [U_]. Un (F) dopo una partizione (ad es. sdb3[2] (F)) significa che è stata contrassegnata come faulty (difettosa).

Nel seguente esempio, in tutte le unità logiche è integrata solo una partizione, che si trova sul disco rigido sda. La rispettiva partizione presente sul secondo disco rigido sdb non è integrata. Puoi notarlo anche dalla voce [_U]. Le partizioni non integrate del disco rigido sdb indicano che su questo disco rigido si è verificato un errore o un guasto.

[root@localhost ~]# cat /proc/mdstat

Personalities : [raid1]
read_ahead 1024 sectors
md0 : active raid1 sda1[1]
102208 blocks [2/1] [_U]

md1 : active raid1 sda2[1]
119684160 blocks [2/1] [_U]

md2 : active raid1 sda3[1]
262016 blocks [2/1] [_U]

unused devices: <none>

Nel seguente esempio, un disco rigido difettoso è ancora integrato nel RAID. Lo si riconosce dall'informazione (F) mostrata in md1.

[root@localhost ~]# cat /proc/mdstat

Personalities : [raid1]
md3 : active raid1 sda3[0] sdb3[2](F)
    439553856 blocks super 1.0 [2/1] [U_]
    bitmap: 1/4 pages [4KB], 65536KB chunk

md1 : active raid1 sdb1[2](F) sda1[0]
    19529600 blocks super 1.0 [2/1] [U_]

unused devices: <none>

Diagnosi dei guasti e determinazione dei dati necessari per la sostituzione del disco rigido

Al fine di rilevare gli errori del disco rigido, ti consigliamo di procedere come segue:

Installa il programma Smartctl. Smartctl è un programma a riga di comando per monitorare i volumi utilizzando la tecnologia SMART (Self-Monitoring, Analysis and Reporting Technology). Con questo programma è possibile verificare se un disco rigido è difettoso. Il programma è un componente degli Smartmontools. Gli Smartmontools sono disponibili come pacchetti per molte distribuzioni Linux.

Nota bene:

In alcuni casi può accadere che un difetto del disco rigido non possa essere rilevato dai valori smart. Per questo motivo, ti consigliamo di analizzare anche il file di log /var/log/messages.

Installare Smartctl

Per installare smartctl, accedi al server come amministratore.

Installa i pacchetti necessari a seconda della distribuzione:
 

AlmaLinux 9 e 10, nonché Rocky Linux 9 e 10:

yum install smartmontools

Debian 12 und 13 sowie Ubuntu 24.04 und 26.04: 

sudo apt-get install smartmontools

Visualizzare le informazioni sul disco rigido

Per visualizzare l'elenco dei dischi rigidi, digita il seguente comando:

smartctl --scan

Esempio:

root@8E8885C ~]# smartctl --scan

/dev/sda -d scsi # /dev/sda, SCSI device
/dev/sdb -d scsi # /dev/sdb, SCSI device

Per visualizzare informazioni dettagliate per la diagnosi dell'errore, digita il seguente comando:

smartctl -iHAl error [NOMEDELDISCORIGIDO]

Nota bene:
  • Le interfacce dei dispositivi devono essere specificate nel seguente formato:

    Dispositivi SCSI / SATA:

    smartctl - iHAl error /dev/sd[a-z]

    Esempio:

    [root@localhost ~] # smartctl -iHAl error /dev/sda

  • Le unità NVMe usano denominazioni diverse, ad esempio /dev/nvme0 o /dev/nvme0n1, e, a seconda della richiesta, necessitano di strumenti diversi o aggiuntivi.
     

Dopo aver inserito il comando, visualizzerai ad es. le seguenti informazioni:


			[root@localhost ~]# smartctl -iHAl error /dev/sda
smartctl 6.5 2016-05-07 r4318 [x86_64-linux-3.10.0-862.14.4.el7.x86_64] (local build)
Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Device Model:     HGST HUS722T1TALA604
Serial Number:    WMC6N0K2RW66
LU WWN Device Id: 5 0014ee 004722db0
Firmware Version: RAGNWA07
User Capacity:    1,000,204,886,016 bytes [1.00 TB]
Sector Size:      512 bytes logical/physical
Rotation Rate:    7200 rpm
Form Factor:      3.5 inches
Device is:        Not in smartctl database [for details use: -P showall]
ATA Version is:   ACS-3 T13/2161-D revision 5
SATA Version is:  SATA 3.1, 6.0 Gb/s (current: 6.0 Gb/s)
Local Time is:    Fri May  3 07:45:14 2019 UTC
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

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     0x002f   200   200   051    Pre-fail  Always      0
  3 Spin_Up_Time            0x0027   183   183   021    Pre-fail  Always      3833
  4 Start_Stop_Count        0x0032   100   100   000    Old_age   Always      9
  5 Reallocated_Sector_Ct   0x0033   200   200   140    Pre-fail  Always      0
  7 Seek_Error_Rate         0x002e   200   200   000    Old_age   Always      0
  9 Power_On_Hours          0x0032   097   097   000    Old_age   Always      2560
 10 Spin_Retry_Count        0x0032   100   253   000    Old_age   Always      0
 11 Calibration_Retry_Count 0x0032   100   253   000    Old_age   Always      0
 12 Power_Cycle_Count       0x0032   100   100   000    Old_age   Always      9
 16 Unknown_Attribute       0x0022   000   200   000    Old_age   Always      26802171994
183 Runtime_Bad_Block       0x0032   100   100   000    Old_age   Always      0
192 Power-Off_Retract_Count 0x0032   200   200   000    Old_age   Always      4
193 Load_Cycle_Count        0x0032   200   200   000    Old_age   Always      67
194 Temperature_Celsius     0x0022   116   111   000    Old_age   Always      31
196 Reallocated_Event_Count 0x0032   200   200   000    Old_age   Always      0
197 Current_Pending_Sector  0x0032   200   200   000    Old_age   Always      0
198 Offline_Uncorrectable   0x0030   100   253   000    Old_age   Offline     0
199 UDMA_CRC_Error_Count    0x0032   200   200   000    Old_age   Always      0
200 Multi_Zone_Error_Rate   0x0008   100   253   000    Old_age   Offline     0

SMART Error Log Version: 1
No Errors Logged
		

Interpretazione dei parametri e diagnosi dei guasti

Analizza le informazioni dettagliate che hai ottenuto con il comando smartctl -iHAl error [NOMEDELDISCORIGIDO]. Nella prima sezione sono ocntenute informazioni che puoi utilizzare per identificare il disco rigido:


			=== START OF INFORMATION SECTION ===
Device Model:     HGST HUS722T1TALA604
Serial Number:    WMC6N0K2RW66
LU WWN Device Id: 5 0014ee 004722db0
Firmware Version: RAGNWA07
User Capacity:    1,000,204,886,016 bytes [1.00 TB]
Sector Size:      512 bytes logical/physical
Rotation Rate:    7200 rpm
Form Factor:      3.5 inches
Device is:        Not in smartctl database [for details use: -P showall]
ATA Version is:   ACS-3 T13/2161-D revision 5
SATA Version is:  SATA 3.1, 6.0 Gb/s (current: 6.0 Gb/s)
Local Time is:    Fri May  3 07:45:14 2019 UTC
SMART support is: Available - device has SMART capability.
SMART support is: Enabled
		

In questa sezione puoi visualizzare, tra le altre cose, il modello del dispositivo e il numero di serie del disco rigido che stai analizzando.

Nella seconda sezione, viene valutato da Smartctl lo stato attuale del disco rigido. Se, ad esempio, visualizzi il valore "Failed" o "UNKNOWN" al posto di "PASSED", è necessario sostituire il disco rigido il prima possibile.


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

Nella terza sezione, puoi visualizzare in dettaglio i valori smart che sono stati determinati. Accanto ad ogni valore percentuale attuale (VALUE), vengono elencati il valore peggiore misurato (WORST)e il rispettivo valore limite (THRESH). Se il valore percentuale attuale (VALORE) o il valore peggiore misurato (WORST) supera il valore limite (THRESH), visualizzerai nella colonna WHEN_FAILED un avviso SMART (ad es. FAILING_NOW).


			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     0x002f   200   200   051    Pre-fail  Always      0
  3 Spin_Up_Time            0x0027   183   183   021    Pre-fail  Always      3833
  4 Start_Stop_Count        0x0032   100   100   000    Old_age   Always      9
  5 Reallocated_Sector_Ct   0x0033   200   200   140    Pre-fail  Always      0
  7 Seek_Error_Rate         0x002e   200   200   000    Old_age   Always      0
  9 Power_On_Hours          0x0032   097   097   000    Old_age   Always      2560
 10 Spin_Retry_Count        0x0032   100   253   000    Old_age   Always      0
 11 Calibration_Retry_Count 0x0032   100   253   000    Old_age   Always      0
 12 Power_Cycle_Count       0x0032   100   100   000    Old_age   Always      9
 16 Unknown_Attribute       0x0022   000   200   000    Old_age   Always      26802171994
183 Runtime_Bad_Block       0x0032   100   100   000    Old_age   Always      0
192 Power-Off_Retract_Count 0x0032   200   200   000    Old_age   Always      4
193 Load_Cycle_Count        0x0032   200   200   000    Old_age   Always      67
194 Temperature_Celsius     0x0022   116   111   000    Old_age   Always      31
196 Reallocated_Event_Count 0x0032   200   200   000    Old_age   Always      0
197 Current_Pending_Sector  0x0032   200   200   000    Old_age   Always      0
198 Offline_Uncorrectable   0x0030   100   253   000    Old_age   Offline     0
199 UDMA_CRC_Error_Count    0x0032   200   200   000    Old_age   Always      0
200 Multi_Zone_Error_Rate   0x0008   100   253   000    Old_age   Offline     0
		

I seguenti parametri possono indicare la minaccia di un guasto imminente del disco rigido prima che questo venga visualizzato in un avviso SMART:

Reallocated_Sector_Ct: specifica il numero di settori che sono stati riassegnati a causa di errori di lettura. Se un settore non può più essere letto, scritto o controllato correttamente, il controller gli assegna automaticamente un settore sostitutivo dall'area di riserva del disco rigido. Il settore originale, difettoso, viene contrassegnato in modo permanente come difettoso e non viene più utilizzato.

Nota bene

Un valore superiore a zero non è necessariamente motivo di preoccupazione, purché rimanga stabile per un lungo periodo. Tuttavia, un indicatore critico di un imminente guasto del disco rigido è un numero in costante aumento di settori riassegnati. Per individuare un guasto in tempo, dovresti quindi registrare regolarmente questo valore e, in caso di aumento continuo, provvedere immediatamente alla sostituzione.

Current_Pending_Sector: specifica il numero di settori instabili in attesa di rimappatura. Se un settore non può essere letto e scritto correttamente, riceve prima lo stato "Current Pending Sector". Il settore non viene riassegnato in questo stato, poiché i dati del settore sono sconosciuti. Solo dopo diversi tentativi di lettura o scrittura non riusciti viene assegnato un settore di sostituzione e il settore difettoso viene contrassegnato in modo permanente come illeggibile. Il valore Current_Pending_Sector è un indicatore importante per la sostituzione di un disco rigido. Se questo valore non è uguale a zero, è probabile che si verificherà un guasto del disco rigido.

Offline_Uncorrectable: specifica il numero di errori agli accessi di lettura e scrittura per un settore.

L'ultima sezione riguarda il log interno del disco rigido. Gli errori vengono registrati qui se gli ordini di lavoro del server non sono stati elaborati correttamente dal disco rigido. Se il numero di errori in questa sezione è di almeno due cifre, è necessario sostituire il disco rigido il prima possibile.


			SMART Error Log Version: 1
No Errors Logged
		

Visualizzare informazioni dettagliate per la sostituzione del disco

Le seguenti informazioni sono necessarie per sostituire il disco rigido difettoso:

  • Denominazione del disco rigido nel RAID (ad es. sda)

  • Numero di serie

  • Modello

  • File di log (opzionale)

Creare un log SMART

Per creare un log SMART completo, digita il seguente comando:

smartctl -x [NOMEDELDISCORIGIDO]

Esempio:

[root@localhost ~]# smartctl -x /dev/sda

Se il disco rigido non è più accessibile con Smartctl, puoi visualizzare le informazioni necessarie utilizzando il programma hdparm. Per installare questo programma, procedi come segue:

AlmaLinux 9 und AlmaLinux 10, Rocky Linux 9 und Rocky Linux 10

yum -y install hdparm

Debian 12 und 13 sowie Ubuntu 24.04 und 26.04:

sudo apt-get update
sudo apt-get install hdparm

Successivamente, digita il seguente comando per accedere alle informazioni necessarie per la sostituzione del disco:

hdparm -i /dev/sda

Nota bene:
  • Se il log SMART è stato creato come descritto sopra, questo contiene le informazioni sufficienti per sostituire il disco rigido e puoi quindi procedere contattando l'Assistenza Clienti.

  • Se non è possibile visualizzare il numero di serie del disco rigido difettoso utilizzando Smartctl, puoi, in alternativa, fornire all'Assistenza Clienti il numero di serie del disco rigido o dei dischi rigidi che sono funzionanti.

  • hdparm è adatto principalmente ai classici dischi rigidi SATA/ATA e non è compatibile con le unità NVMe. Se nel tuo sistema vengono utilizzati dischi NVMe, le informazioni necessarie sul dispositivo non possono essere lette con hdparm, ma di solito con strumenti NVMe specifici della distribuzione, ad esempio nvme-cli. Questo articolo descrive tuttavia la sostituzione di dischi rigidi classici in configurazioni RAID software con nomi di dispositivi come /dev/sda e /dev/sdb.

Preparare il server per la sostituzione del disco rigido

Nell'esempio precedente abbiamo preso come disco difettoso il secondo disco rigido (sdb). Durante la verifica dello stato, il software RAID mostra ad es. il seguente stato:

[root@localhost ~]# cat /proc/mdstat

Personalities : [raid1]
md3 : active raid1 sda3[0] sdb3[2]
      439553856 blocks super 1.0 [2/1] [UU]

md1 : active raid1 sdb1[2] sda1[0]
      19529600 blocks super 1.0 [2/1] [UU]

unused devices:

In questo esempio, il secondo disco rigido (sdb) è ancora integrato nel RAID ed è quindi ancora in funzione.

Contrassegnare manualmente Raid Device come "faulty" per poterlo rimuovere dal RAID.

Per rimuovere il disco rigido difettoso dal RAID, contrassegna il disco rigido difettoso come “faulty”. Per farlo, digita il seguente comando:

[root@localhost ~]# mdadm PERCORSO_DEL_RAID_ARRAY -f PERCORSO_DEL_DISCO_RIGIDO

Negli esempi che seguono, i dischi rigidi sdb3 e sdb1 vengono contrassegnati come faulty:

[root@localhost ~]# mdadm /dev/md3 -f /dev/sdb3
mdadm: set /dev/sdb3 faulty in /dev/md3

[root@localhost ~]# mdadm /dev/md1 -f /dev/sdb1
mdadm: set /dev/sdb1 faulty in /dev/md1

Dopo aver inserito il comando, il RAID presenta il seguente stato:

[root@localhost ~]# cat /proc/mdstat

Personalities : [raid1]
md3 : active raid1 sda3[0] sdb3[2](F)
      439553856 blocks super 1.0 [2/1] [U_]

md1 : active raid1 sdb1[2](F) sda1[0]
      19529600 blocks super 1.0 [2/1] [U_]

unused devices: <none>

Rimuovere una partizione dal RAID

Per rimuovere una partizione dal RAID, digita il seguente comando:

[root@localhost ~]# mdadm -r /PERCORSO_DEL_RAID_ARRAY /PERCORSO_DEL_DISCO_RIGIDO

Negli esempi che seguono, i dischi rigidi sdb3 e sdb1 vengono rimossi rispettivamente dal RAID md3 e md1:

[root@localhost ~]# mdadm -r /dev/md3 /dev/sdb3
mdadm: hot removed /dev/sdb3 from /dev/md3

[root@localhost ~]# mdadm -r /dev/md1 /dev/sdb1
mdadm: hot removed /dev/sdb1 from /dev/md1

Successivamente, verifica lo stato del RAID. In questo esempio, il RAID preparato per la sostituzione del disco presenta il seguente stato finale:

[root@localhost ~]# cat /proc/mdstat

Personalities : [raid1]
md3 : active raid1 sda3[0]
      439553856 blocks super 1.0 [2/1] [U_]

md1 : active raid1 sda1[0]
      9529600 blocks super 1.0 [2/1] [U_]

unused devices: <none>

Verificare le partizioni di swap utilizzate

Controlla quali partizioni di swap vengono utilizzate dal sistema operativo. Per farlo, digita il seguente comando:

[root@localhost ~]# cat /proc/swaps

Filename                Type     Size  Used  Priority
/dev/sda2          partition  9765884     0        -1
/dev/sdb2          partition  9765884     0        -2

In alternativa, puoi utilizzare il seguente comando per verificare quali partizioni di swap vengono definite su fstab:

[root@localhost ~]# grep swap /etc/fstab
/dev/sda2   none        swap    sw
/dev/sdb2   none        swap    sw

Disattivare la partizione di swap sul dispositivo difettoso

Disattiva la partizione di swap sul disco rigido difettoso in modo che questo possa essere sostituito. Per farlo, immetti il seguente comando:

[root@localhost ~]# swapoff PERCORSO_DELLA_PARTIZIONE

Esempio:

[root@localhost ~]# swapoff /dev/sdb2

Nota bene:

Se la partizione di swap sul disco rigido difettoso non viene disattivata e il disco rigido viene sostituito, la partizione di swap su /proc/swaps presenta lo stato "deleted".

Organizzare la sostituzione del disco rigido

A questo punto, il disco rigido difettoso può essere sostituito. Per farlo, contatta l'Assistenza Clienti IONOS.

Passaggi necessari dopo la sostituzione del disco rigido

Dopo aver sostituito il disco rigido difettoso, è necessario ricostruire il software RAID. Per ulteriori informazioni su come ricostruire un software RAID, consulta il seguente articolo: Ricostruire un software RAID (Linux)