Questa procedura descrive come sostituire un'unità guasta su un RAID software gestito da mdadm
utilità. Per sostituire un'unità RAID 6 difettosa in mdadm
:
- Identifica il problema.
- Ottieni i dettagli dall'array RAID.
- Rimuovere il disco guasto dall'array RAID.
- Spegnere la macchina e sostituire il disco.
- Partizia il nuovo disco.
- Aggiungi il nuovo disco all'array RAID.
- Verifica il ripristino.
Esaminiamo questo processo in modo più dettagliato facendo un esempio.
Identifica il problema
Per identificare quale disco non funziona all'interno dell'array RAID, esegui:
[root@server loc]# cat /proc/mdadm
Oppure:
[root@server loc]# mdadm -–query -–detail /dev/md2
Il disco guasto apparirà come guasto o rimosso . Ad esempio:
[root@server loc]# mdadm -–query -–detail /dev/md2
/dev/md2:
Version : 1.2
Creation Time : Mon Jun 22 08:47:09 2015
Raid Level : raid6
Array Size : 5819252736 (5549.67 GiB 5958.91 GB)
Used Dev Size : 2909626368 (2774.84 GiB 2979.46 GB)
Raid Devices : 4
Total Devices : 4
Persistence : Superblock is persistent
Intent Bitmap : Internal
Update Time : Mon Oct 15 11:55:06 2018
State : clean, degraded, recovering
Active Devices : 3
Working Devices : 4
Failed Devices : 0
Spare Devices : 1
Layout : left-symmetric
Chunk Size : 512K
Consistency Policy : bitmap
Rebuild Status : 3% complete
Name : localhost.localdomain:2
UUID : 54404ab5:4450e4f3:aba6c1fb:93a4087e
Events : 1046292
Number Major Minor Raid Device State
0 0 0 0 removed
1 8 36 1 active sync /dev/sdc4
2 8 52 2 active sync /dev/sdd4
3 8 68 3 active sync /dev/sde4
Ottieni dettagli dall'array RAID
Per esaminare lo stato dell'array RAID e identificare lo stato di un disco all'interno del RAID:
[root@server loc]# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4]
md2 : active raid6 sdb4[4](F) sdd4[2] sdc4[1] sde4[3]
5819252736 blocks super 1.2 level 6, 512k chunk, algorithm 2 [4/3] [_UUU]
[>………………..] recovery = 3.4% (100650992/2909626368) finish=471.5min speed=99278K/sec
bitmap: 2/22 pages [8KB], 65536KB chunk
unused devices: <none>
Come possiamo vedere, il dispositivo /dev/sdb4
non è riuscito nel RAID.
Poiché abbiamo identificato che il disco guasto è /dev/sdb4
(come nel caso di questo server), avremmo dovuto ottenere il numero di serie del disco utilizzando smartctl
:
[root@server loc]# smartctl -–all /dev/sdb | grep -i 'Serial'
Il comando precedente è importante poiché è necessario sapere quale disco rimuovere dal server, in base all'etichetta fisica del disco.
Rimuovere il disco guasto dall'array RAID
È importante rimuovere il disco guasto dall'array in modo che l'array mantenga uno stato coerente e sia a conoscenza di ogni modifica, in questo modo:
[root@server loc]# mdadm -–manage /dev/md2 -–remove /dev/sdb4
In caso di rimozione riuscita, verrà visualizzato un messaggio simile al seguente:
[root@server loc]# mdadm: hot removed /dev/sdb4 from /dev/md2
Controlla lo stato di /proc/mdstat
ancora una volta:
[root@server loc]# cat /proc/mdstat
Puoi vedere quel /dev/sdb4
non è più visibile.
Spegni la macchina e sostituisci il disco
Ora è il momento di spegnere il sistema e sostituire il disco difettoso con uno nuovo, ma prima di spegnere il sistema, commenta /dev/md2
dal tuo /etc/fstab
file. Vedi l'esempio seguente:
[root@server loc]# cat /etc/fstab
#
# /etc/fstab
# Created by anaconda on Fri May 20 13:12:25 2016
#
# Accessible filesystems, by reference, are maintained under ‘/dev/disk’
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root / xfs defaults 0 0
UUID=1300b86d-2638-4a9f-b366-c5e67e9ffa4e /boot xfs defaults 0 0
#/dev/mapper/centos-home /home xfs defaults 0 0
/dev/mapper/centos-swap swap swap defaults 0 0
#/dev/md2 /var/loc xfs defaults 0 0
Partizia il nuovo disco
Poiché disponiamo di altri dischi di lavoro all'interno dell'array RAID, è facile e conveniente copiare lo schema della partizione di un disco di lavoro sul nuovo disco. Questa attività viene eseguita con sgdisk
utility, fornita da gdisk
pacchetto.
Installa gdisk
in questo modo (regola questo comando per la tua distribuzione):
[root@server loc]# yum install gdisk
Usando gdisk
, passeremo prima il -R
opzione (sta per Replica). Assicurati di replicare lo schema della partizione di un disco di lavoro. È importante utilizzare l'ordine corretto dei dischi per replicare lo schema della partizione da un disco di lavoro a uno nuovo. Nella nostra situazione, sul nuovo disco c'è /dev/sdb
e i dischi di lavoro sono /dev/sdc
, /dev/sdd
, /dev/sde
.
Ora, per replicare lo schema della partizione di un disco di lavoro (ad esempio /dev/sdc
) sul nuovo disco /dev/sdb
, è necessario il seguente comando:
[root@server loc]# sgdisk -R /dev/sdb /dev/sdc
Per evitare conflitti GUID con altre unità, dovremo randomizzare il GUID della nuova unità utilizzando:
[root@server loc]# sgdisk -G /dev/sdb
The operation has completed successfully.
Successivamente, verifica l'output di /dev/sdb usando il parted
utilità:
[root@server loc]# parted /dev/sdb print
Aggiungi il nuovo disco all'array RAID
Dopo aver completato la replica dello schema della partizione sulla nuova unità, ora possiamo aggiungere l'unità all'array RAID:
[root@server loc]# mdadm -–manage /dev/md2 -–add /dev/sdb4
mdadm: added /dev/sdb4
Verifica il ripristino
Per verificare il ripristino RAID, utilizza quanto segue:
[root@server loc]# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4]
md2 : active raid6 sdb4[4] sdd4[2] sdc4[1] sde4[3]
5819252736 blocks super 1.2 level 6, 512k chunk, algorithm 2 [4/3] [_UUU]
[==>………………] recovery = 12.2% (357590568/2909626368) finish=424.1min speed=100283K/sec
bitmap: 0/22 pages [0KB], 65536KB chunk
unused devices: <none>
Oppure:
[root@server loc]# mdadm -–query -–detail /dev/md2
/dev/md2:
Version : 1.2
Creation Time : Mon Jun 22 08:47:09 2015
Raid Level : raid6
Array Size : 5819252736 (5549.67 GiB 5958.91 GB)
Used Dev Size : 2909626368 (2774.84 GiB 2979.46 GB)
Raid Devices : 4
Total Devices : 4
Persistence : Superblock is persistent
Intent Bitmap : Internal
Update Time : Mon Oct 15 12:37:37 2018
State : clean, degraded, recovering
Active Devices : 3
Working Devices : 4
Failed Devices : 0
Spare Devices : 1
Layout : left-symmetric
Chunk Size : 512K
Consistency Policy : bitmap
Rebuild Status : 12% complete
Name : localhost.localdomain:2
UUID : 54404ab5:4450e4f3:aba6c1fb:93a4087e
Events : 1046749
Number Major Minor Raid Device State
4 8 20 0 spare rebuilding /dev/sdb4
1 8 36 1 active sync /dev/sdc4
2 8 52 2 active sync /dev/sdd4
3 8 68 3 active sync /dev/sde4
Dall'output sopra, ora vediamo che /dev/sdb4
è in fase di ricostruzione e sono disponibili quattro dispositivi funzionanti e attivi. Il processo di ricostruzione potrebbe richiedere del tempo, a seconda della dimensione totale del disco e del tipo di disco (ad esempio, tradizionale o a stato solido).
Festeggia
Ora hai sostituito con successo un'unità RAID 6 guasta con mdadm
. Si spera che non sarà mai necessario farlo, ma l'hardware non funziona. Le probabilità sono che se stai usando RAID 6, alla fine accadrà. Se puoi, configura un lab, forza un RAID 6 a fallire e quindi ripristinalo. Sapere come affrontare il problema renderà l'esperienza quando accade l'impensabile molto meno stressante.