RAID 1 software. Quando l’array va in crisi:

Stamattina, appena arrivato nel mio studio, ho letto la posta che il mio server spedisce all’account di amministrazione e con somma sorpresa ho appreso che uno dei dischi rigidi configurato in RAID 1 (mirroring) mi ha abbandonato. La particolarità dell’errore consiste nel degradamento di tutti gli array RAID 1 configurati. Quando accade un avvenimento come questo, dove si degradano gli array di un intero disco rigido, è altamente probabile che quel disco si sia rovinato e sia da sostituire. Ma ecco quale errore mi è stato notificato in posta elettronica e come ho provveduto a porre riparo.
Sulla casella di posta elettronica ho ricevuto due messaggi contenti questo oggetto:

DegradedArray event on /dev/md1:server-studio.miodominio ;
DegradedArray event on /dev/md2:server-studio.miodominio ;

Dato che sul mio server esistono soltanto due array RAID (md1 e md2), relativi rispettivamente alla partizione di /boot ed alla /, e considerato che entrambi gli array risultavano degradati per la fuoriscita dal mirroring delle partizioni residenti sul secondo disco rigido, è altamente probabile che quest’ultimo sia un malato terminale. Lanciando il comando cat /proc/mdstat, infatti, non risultavano presenti le partizioni di hdc (il secondo disco rigido).

Quando ciò accade è indispensabile procedere innanzitutto con un bel backup integrale dei dati. E’ quanto ho fatto, trasferendo i miei pochi giga su su alcuni DVD e su un terzo disco rigido. Successivamente ho tentato il ripristino dell’array in questo modo:

Con il comando fdisk -l ho verificato quali fossero le partizioni dei due dischi rigidi da rimettere in mirror ed è risultato questo:

Disk /dev/hda: 250.0 GB, 250059350016 bytes
255 heads, 63 sectors/track, 30401 cylinders
Units = cilindri of 16065 * 512 = 8225280 bytes
Dispositivo Boot Start End Blocks Id System
/dev/hda1 * 1 13 104391 fd Autorilevamento raid di Linux
/dev/hda2 14 30401 244091610 fd Autorilevamento raid di Linux
Disk /dev/hdc: 250.0 GB, 250059350016 bytes
255 heads, 63 sectors/track, 30401 cylinders
Units = cilindri of 16065 * 512 = 8225280 bytes
Dispositivo Boot Start End Blocks Id System
/dev/hdc1 * 1 13 104391 fd Autorilevamento raid di Linux
/dev/hdc2 14 30401 244091610 fd Autorilevamento raid di Linux

Come è possibile notare ponendo attenzione alle parti riportate in grassetto, hda1 e hdc1 devono far parte dello stesso array (sono identiche le grandezze delle partizioni); hda2 e hdc2 devono far parte dello stesso array.

Ho proseguito, dunque, utilizzando i comandi di mdadm in questo modo:

  • mdadm -add /dev/md1 /dev/hdc1

Successivamente ho lanciato il comando:

  • mdadm -add /dev/md2 /dev/hdc2

Attualmente il RAID è in ricostruzione:

  • cat /proc/mdstat

Personalities : [raid1]
md2 : active raid1 hdc2[2] hda2[0]
244091520 blocks [2/1] [U_]
[=====>……………] recovery = 29.2% (71281408/244091520) finish=97.6min speed=29493K/sec
md1 : active raid1 hdc1[1] hda1[0]
104320 blocks [2/2] [UU]

Si può notare che il raid dell’array md1 è stato ricostruito, mentre quello dell’array md2 è in ricostruzione.
Il passo successivo sarà quello di verificare se il disco rigido secondario (hdc) è affetto da qualche problema hardware. Per fare ciò utilizzerò il software smartctl 🙂

fonte : http://www.stefanolaguardia.eu/
[ad]