Clark's Home page

Tecnicismi vari di un Sysadmin Linux ma anche qualcosa della sua vita

Recupero del raid1 —

Adesso che abbiamo finito e che abbiamo verificato che il raid 1 funziona giusto per capire come recuperare un raid in caso di degrado “ammazziamo” /dev/sdb.

Spegniamo la macchina ed estraiamo /dev/sda quindi ripartiamo con una live (io ho usato una  knoppix )  e  con un cfdisk /dev/sda (il disco sano lo abbiamo tolto quindi questo automaticamente diventa sda) togiamo le partizioni sino ad avere totale spazio libero.
Per essere assolutamente sicuri che il disco sia pulito del tutto cancelliamo anche l’MBR con un dd if=/dev/zero of=/dev/sda bs=512 count=1
Ripartiamo con il disco del raid sano e se facciamo cat /proc/mdstat troveremo un qualcosa del tipo:

root@crm:/home/clark# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md2 : active raid1 sdb3[2] sda3[0]
1951680 blocks super 1.2 [2/2] [U_]

md5 : active raid1 sdb7[2] sda7[0]
975296 blocks super 1.2 [2/1] [U_]

md4 : active raid1 sdb6[2] sda6[0]
117120896 blocks super 1.2 [2/1] [U_]

md3 : active raid1 sdb5[2] sda5[0]
19513216 blocks super 1.2 [2/1] [U_]

md6 : active raid1 sdb8[2] sda8[0]
1674176 blocks super 1.2 [2/1] [U_]

md0 : active raid1 sdb1[2] sda1[0]
96128 blocks super 1.2 [2/2] [U_]

md1 : active raid1 sdb2[2] sda2[0]
1951680 blocks super 1.2 [2/2] [U_]

unused devices: <none>
Copiamo le partizioni da /dev/sda a /dev/sdb con

sfdisk -d /dev/sda | sfdisk /dev/sdb

Assicuriamoci di cancellare del tutto da /dev/sdb qualsiasi traccia del precedente raid con:

root@crm:/home/clark# mdadm –zero-superblock /dev/sdb1
root@crm:/home/clark# mdadm –zero-superblock /dev/sdb2
root@crm:/home/clark# mdadm –zero-superblock /dev/sdb3
root@crm:/home/clark# mdadm –zero-superblock /dev/sdb4
mdadm: Unrecognised md component device – /dev/sdb4
SVEGLIA!!!!!!!!!! la 4 è la logica che contiene le altre!!!!
root@crm:/home/clark# mdadm –zero-superblock /dev/sdb5
root@crm:/home/clark# mdadm –zero-superblock /dev/sdb6
root@crm:/home/clark# mdadm –zero-superblock /dev/sdb7
root@crm:/home/clarki# mdadm –zero-superblock /dev/sdb8
root@crm:/home/clark# mdadm –zero-superblock /dev/sdb9
e successivamente aggiungiamo le partizioni ai device md con

root@crm:/home/clark# mdadm –add /dev/md0 /dev/sdb1
mdadm: added /dev/sdb1
root@crm:/home/clark# mdadm –add /dev/md1 /dev/sdb2
mdadm: added /dev/sdb2
root@crm:/home/clarki# mdadm –add /dev/md2 /dev/sdb3
mdadm: added /dev/sdb3
root@crm:/home/clark# mdadm –add /dev/md3 /dev/sdb5
mdadm: added /dev/sdb5
root@crm:/home/clark# mdadm –add /dev/md4 /dev/sdb6
mdadm: added /dev/sdb6
root@crm:/home/clark# mdadm –add /dev/md5 /dev/sdb7
mdadm: added /dev/sdb7
root@crm:/home/clark# mdadm –add /dev/md6 /dev/sdb8
mdadm: added /dev/sdb8

teniamo sotto controllo il processo con un cat /proc/mdstat e troveremo un qualcosa del tipo:

root@crm:/home/clark# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md2 : active raid1 sdb3[2] sda3[0]
1951680 blocks super 1.2 [2/2] [UU]

md5 : active raid1 sdb7[2] sda7[0]
975296 blocks super 1.2 [2/1] [U_]
resync=DELAYED

md4 : active raid1 sdb6[2] sda6[0]
117120896 blocks super 1.2 [2/1] [U_]
[============>……..]  recovery = 64.6% (75675520/117120896) finish=10.6min speed=64932K/sec

md3 : active raid1 sdb5[2] sda5[0]
19513216 blocks super 1.2 [2/1] [U_]
resync=DELAYED

md6 : active raid1 sdb8[2] sda8[0]
1674176 blocks super 1.2 [2/1] [U_]
resync=DELAYED

md0 : active raid1 sdb1[2] sda1[0]
96128 blocks super 1.2 [2/2] [UU]

md1 : active raid1 sdb2[2] sda2[0]
1951680 blocks super 1.2 [2/2] [UU]

unused devices: <none>

il progresso della ricostruzione del raid è visibile e una volta finito avremo una situazione come questa:
root@crm:/home/clark# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md2 : active raid1 sdb3[2] sda3[0]
1951680 blocks super 1.2 [2/2] [UU]

md5 : active raid1 sdb7[2] sda7[0]
975296 blocks super 1.2 [2/2] [UU]

md4 : active raid1 sdb6[2] sda6[0]
117120896 blocks super 1.2 [2/2] [UU]

md3 : active raid1 sdb5[2] sda5[0]
19513216 blocks super 1.2 [2/2] [UU]

md6 : active raid1 sdb8[2] sda8[0]
1674176 blocks super 1.2 [2/2] [UU]

md0 : active raid1 sdb1[2] sda1[0]
96128 blocks super 1.2 [2/2] [UU]

md1 : active raid1 sdb2[2] sda2[0]
1951680 blocks super 1.2 [2/2] [UU]

unused devices: <none>

il nostro raid1 è ricostruito reinstalliamo grub su entrambi i dischi tanto per non sbagliare con un:

grub-install /dev/sda
Installation finished. No error reported
grub-install /dev/sdb
Installation finished. No error reported

spegniamo il nostro server ed estraiamo sda per vedere se con solo sdb parte regolarmente.
Se tutto ok e il server riparte avremo una situazione del tipo:

root@crm:/home/guenzi# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md2 : active raid1 sda3[2]
1951680 blocks super 1.2 [2/1] [_U]

md4 : active raid1 sda6[2]
117120896 blocks super 1.2 [2/1] [_U]

md1 : active (auto-read-only) raid1 sda2[2]
1951680 blocks super 1.2 [2/1] [_U]

md6 : active raid1 sda8[2]
1674176 blocks super 1.2 [2/1] [_U]

md0 : active raid1 sda1[2]
96128 blocks super 1.2 [2/1] [_U]

md5 : active raid1 sda7[2]
975296 blocks super 1.2 [2/1] [_U]

md3 : active raid1 sda5[2]
19513216 blocks super 1.2 [2/1] [_U]

unused devices: <none>
e quindi tutto a posto, rispegniamo la macchina rimettiamo sda e ripetiamo alla rovescia la sincronia aggiungendo sda ai device md

root@crm:/home/clark# mdadm –add /dev/md0 /dev/sda1
mdadm: added /dev/sda1
root@crm:/home/clark# mdadm –add /dev/md1 /dev/sda2
mdadm: added /dev/sda2
root@crm:/home/clarki# mdadm –add /dev/md2 /dev/sda3
mdadm: added /dev/sda3
root@crm:/home/clark# mdadm –add /dev/md3 /dev/sda5
mdadm: added /dev/sda5
root@crm:/home/clark# mdadm –add /dev/md4 /dev/sda6
mdadm: added /dev/sda6
root@crm:/home/clark# mdadm –add /dev/md5 /dev/sda7
mdadm: added /dev/sda7
root@crm:/home/clark# mdadm –add /dev/md6 /dev/sda8
mdadm: added /dev/sda8

e il nostro server in raid1 è a posto.

Tutta questa procedura può di primo acchito sembrare inutile e farraginosa,  vi assicuro che non lo è mi è capitato in passato di fidarmi e una volta che il disco principale è andato a $donnine ero fermo e con una macchina critical mission  (ovviamente) quindi da allora i rad1 software li provo sempre prima di metterli in produzione anche se a volte il giro dura mezza giornata.


Categorised as: Linux | Sistemi operativi | Work

Comments are disabled on this post


Comments are closed.


Hide picture