In questo articolo ti spieghiamo come identificare un disco rigido difettoso su un Server Dedicato Linux con software RAID e come preparare il server per la sostituzione del disco rigido difettoso.

Nota bene:

I passaggi descritti in questo articolo presuppongono una conoscenza di base su come amministrare un server con Linux. Se hai domande o hai bisogno di assistenza per la sostituzione di un disco rigido difettoso, contatta l'Assistenza Clienti IONOS.

Per garantire la massima affidabilità possibile, devi monitorare il software RAID del tuo Server Dedicato. Se scopri che un disco rigido è difettoso, o ricevi un'e-mail di notifica che ti informa che un disco rigido è difettoso, è necessario contattare la nostra Assistenza Clienti per organizzare la sostituzione del disco rigido. Per farlo, è necessario identificare il disco rigido difettoso e preparare il server per la sostituzione del disco difettoso.

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 di un backup, consulta il seguente articolo: Eseguire un backup dei dati in un server di backup (Linux)

Verificare lo stato del software RAID

Per verificare lo stato del software RAID, inserisci il seguente comando nella shell:

[root@host ~]: cat /proc/mdstat

Se entrambi i dischi rigidi sono presenti e correttamente montati, visualizzerai il seguente messaggio:

[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: utilizzati: <none>

L'esempio precedente mostra tre dispositivi multipli o unità logiche (md0, md1, md2). Per ognuna di queste unità logiche, viene specificato di quali partizioni queste sono composte e su quali unità si trovano queste partizioni.

Esempio: il disco logico md0 è costituito dalle partizioni sda1 e sdb1.

Nella riga sotto l'unità logica, lo stato delle singole partizioni viene visualizzato tra parentesi quadre alla fine della riga. Una U significa che il rispettivo disco rigido è integrato nel RAID (up).

Nell'esempio seguente, tutte le unità logiche hanno una sola partizione montata che si trova sul disco rigido sda. La rispettiva partizione che si trova sul secondo disco rigido sdb non è inclusa. Lo si può vedere anche dalla voce [U_]. Le partizioni non montate del disco rigido sdb indicano che c'è un errore o un difetto su questo disco rigido.

[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>


Nell'esempio seguente, un disco rigido difettoso è ancora incluso nel RAID:

[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>

La voce (F) in questo esempio mostra che la partizione è contrassegnata come faulty.

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, digita il seguente comando:

CentOS

yum install smartmontools

Ubuntu

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

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

[root@8E8885C ~]# 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, gli viene automaticamente assegnato un settore di sostituzione. Il settore difettoso è contrassegnato in modo permanente come illeggibile. Se questo valore non è uguale a zero, è probabile che si verificherà un guasto del disco rigido. Questo valore è l'indicatore più importante per la sostituzione di un disco rigido.

Current_Pending_Sector_Ct: 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_Ct è 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:

CentOS

yum -y install hdparm

Ubuntu/Debian

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.

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@host ~]# 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 contrassegnare il disco difettoso come faulty in modo che questo possa essere rimosso dal RAID, immetti il seguente comando:

[root@host ~]# 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@host ~]# mdadm /dev/md3 -f /dev/sdb3
mdadm: set /dev/sdb3 faulty in /dev/md3

[root@host ~]# 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@host ~]# 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 la partizione / dal Multiple Device

Per rimuovere una partizione dal Multiple Device, digita il seguente comando:

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

Negli esempi che seguono, i dischi rigidi sdb3 e sdb1 vengono rimossi rispettivamente dai Multiple Device md3 e md1:

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

[root@host ~]# 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@host ~]# 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>

Controllo delle partizioni di swap utilizzate

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

[root@host ~]# 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@host ~]# 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@host ~]# swapoff PERCORSO_DEL_DISCO_RIGIDO

Esempio:

[root@host ~]# 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)