RAID1 Software · 3 min read · Dec 25, 2025
Sostituzione di un Disco Rigido Guasto in un Array RAID1 Software
Questa guida mostra come rimuovere un disco rigido guasto da un array RAID1 Linux (RAID software) e come aggiungere un nuovo disco rigido all’array RAID1 senza perdere dati.
NOTA: È disponibile una nuova versione di questo tutorial che utilizza gdisk invece di sfdisk per supportare le partizioni GPT.
1 Nota Preliminare
In questo esempio ho due dischi rigidi, /dev/sda e /dev/sdb, con le partizioni /dev/sda1 e /dev/sda2 così come /dev/sdb1 e /dev/sdb2.
/dev/sda1 e /dev/sdb1 costituiscono l’array RAID1 /dev/md0.
/dev/sda2 e /dev/sdb2 costituiscono l’array RAID1 /dev/md1.
/dev/sda1 + /dev/sdb1 = /dev/md0/dev/sda2 + /dev/sdb2 = /dev/md1/dev/sdb ha subito un guasto e vogliamo sostituirlo.
2 Come Posso Capire Se un Disco Rigido È Guasto?
Se un disco ha subito un guasto, probabilmente troverai molti messaggi di errore nei file di log, ad esempio /var/log/messages o /var/log/syslog.
Puoi anche eseguire
cat /proc/mdstate invece della stringa [UU] vedrai [U_] se hai un array RAID1 degradato.
3 Rimozione del Disco Guasto
Per rimuovere /dev/sdb, contrassegneremo /dev/sdb1 e /dev/sdb2 come guasti e li rimuoveremo dai rispettivi array RAID (/dev/md0 e /dev/md1).
Prima contrassegniamo /dev/sdb1 come guasto:
mdadm --manage /dev/md0 --fail /dev/sdb1L’output di
cat /proc/mdstatdovrebbe apparire così:
server1:~# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid5] [raid4] [raid6] [raid10]
md0 : active raid1 sda1[0] sdb1[2](F)
24418688 blocks [2/1] [U_]
md1 : active raid1 sda2[0] sdb2[1]
24418688 blocks [2/2] [UU]
unused devices: Poi rimuoviamo /dev/sdb1 da /dev/md0:
mdadm --manage /dev/md0 --remove /dev/sdb1L’output dovrebbe essere simile a questo:
server1:~# mdadm --manage /dev/md0 --remove /dev/sdb1
mdadm: hot removed /dev/sdb1E
cat /proc/mdstatdovrebbe mostrare questo:
server1:~# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid5] [raid4] [raid6] [raid10]
md0 : active raid1 sda1[0]
24418688 blocks [2/1] [U_]
md1 : active raid1 sda2[0] sdb2[1]
24418688 blocks [2/2] [UU]
unused devices: Ora facciamo gli stessi passaggi per /dev/sdb2 (che fa parte di /dev/md1):
mdadm --manage /dev/md1 --fail /dev/sdb2cat /proc/mdstatserver1:~# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid5] [raid4] [raid6] [raid10]
md0 : active raid1 sda1[0]
24418688 blocks [2/1] [U_]
md1 : active raid1 sda2[0] sdb2[2](F)
24418688 blocks [2/1] [U_]
unused devices: mdadm --manage /dev/md1 --remove /dev/sdb2server1:~# mdadm --manage /dev/md1 --remove /dev/sdb2
mdadm: hot removed /dev/sdb2cat /proc/mdstatserver1:~# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid5] [raid4] [raid6] [raid10]
md0 : active raid1 sda1[0]
24418688 blocks [2/1] [U_]
md1 : active raid1 sda2[0]
24418688 blocks [2/1] [U_]
unused devices: Poi spegni il sistema:
shutdown -h nowe sostituisci il vecchio disco rigido /dev/sdb con uno nuovo (deve avere almeno la stessa dimensione del vecchio - se è solo pochi MB più piccolo del vecchio, la ricostruzione degli array fallirà).
4 Aggiunta del Nuovo Disco Rigido
Dopo aver cambiato il disco rigido /dev/sdb, avvia il sistema.
La prima cosa che dobbiamo fare ora è creare la stessa partizione esatta di /dev/sda. Possiamo farlo con un semplice comando:
sfdisk -d /dev/sda | sfdisk /dev/sdbPuoi eseguire
fdisk -lper controllare se entrambi i dischi rigidi hanno ora la stessa partizione.
Successivamente, aggiungiamo /dev/sdb1 a /dev/md0 e /dev/sdb2 a /dev/md1:
mdadm --manage /dev/md0 --add /dev/sdb1server1:~# mdadm --manage /dev/md0 --add /dev/sdb1
mdadm: re-added /dev/sdb1mdadm --manage /dev/md1 --add /dev/sdb2server1:~# mdadm --manage /dev/md1 --add /dev/sdb2
mdadm: re-added /dev/sdb2Ora entrambi gli array (/dev/md0 e /dev/md1) saranno sincronizzati. Esegui
cat /proc/mdstatper vedere quando è finito.
Durante la sincronizzazione, l’output apparirà così:
server1:~# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid5] [raid4] [raid6] [raid10]
md0 : active raid1 sda1[0] sdb1[1]
24418688 blocks [2/1] [U_]
[=>...................] recovery = 9.9% (2423168/24418688) finish=2.8min speed=127535K/sec
md1 : active raid1 sda2[0] sdb2[1]
24418688 blocks [2/1] [U_]
[=>...................] recovery = 6.4% (1572096/24418688) finish=1.9min speed=196512K/sec
unused devices: Quando la sincronizzazione è completata, l’output apparirà così:
server1:~# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid5] [raid4] [raid6] [raid10]
md0 : active raid1 sda1[0] sdb1[1]
24418688 blocks [2/2] [UU]
md1 : active raid1 sda2[0] sdb2[1]
24418688 blocks [2/2] [UU]
unused devices: Ecco fatto, hai sostituito con successo /dev/sdb!
Ricevi i nuovi post nella tua casella di posta.
Nessuno spam. Disiscriviti in qualsiasi momento.