08 de desembre 2009

RAID 5 faulty disk

Bé, ho poso aquí perquè així segur que si mai torna a passar tindré els passos a seguir a mà.

I és que ara mateix el meu ordinador s'està morint, bé, l'ordinador no, només un dels 4 discs que van amb RAID 5 (per sort tinc un 5è disc de recanvi, s'ha de ser previsor... ostres haig de comprar una font d'alimentació que l'altre me'n va petar una i ja no en tinc de recanvi... Fonts d'alimentació silenciades al màxim 70 EURAKUS bufff... quin mal, segurament continuaré tenint el meu motor d'avió al meu costat durant moolt de temps).

En fi, a lo que anava. Si teniu un RAID 5 al vostre ordinador (ei que ara amb els discs SSD els RAIDS ja no fan quasi falta: perquè saturen el bus de dades!!, és a dir, per molt RAID que facis, les dades no aniran més ràpid, perquè el bus no dóna prou de si. En realitat ja va bé, perquè amb lo cars que són els SSD...) Arrgg... A lo que anava:

Per verificar que un raid actiu funciona correctement:
cat /proc/mdstat


El meu ordinador em diu:
Personalities : [raid0] [raid1] [raid6] [raid5] [raid4]
md3 : active raid5 sdd3[0] sdc3[2] sdb3[1] sda3[3]
1469568 blocks level 5, 64k chunk, algorithm 2 [4/4] [UUUU]

md5 : active raid5 sda5[4](F) sdd5[0] sdc5[2] sdb5[1]
10265088 blocks level 5, 64k chunk, algorithm 2 [4/3] [UUU_]

md6 : active raid5 sdd6[0] sdc6[2] sdb6[1] sda6[3]
2240640 blocks level 5, 64k chunk, algorithm 2 [4/4] [UUUU]

md7 : active raid5 sda7[4](F) sdd7[3] sdc7[2] sdb7[1]
2240640 blocks level 5, 64k chunk, algorithm 2 [4/3] [_UUU]

md8 : active raid5 sdd8[0] sdc8[3] sdb8[1] sda8[2]
451610880 blocks level 5, 64k chunk, algorithm 2 [4/4] [UUUU]

unused devices:

Aquí veiem les particions en RAID actives (s'han de comptar que jo també tinc les de /boot (que no surten perquè a l'hora de bootar el Sistema reconeix un mínim de coses, i per tant es fa un raid 1 a a "mà", és a dir no autodetectable), i a més també tinc la memòria swap (però la memòria swap fa automàticament un RAID així que no cal fer res, tant sols tenir dues particions (o més) en discos differents i ja tindrem la swap en RAID. El 4/4 que indica que el RAID està configurat amb 4 discos i que estan actius 4 discos. A on diu 4/3 diu que tinc un disc que fa el tonto, a més com indica "sda7[4](F)" vol dir que la partició sda7 ha fallat (ho indica la 'F').

Per arreglar això es podria fer:
mdadm --add /dev/md7 /dev/sda7


Que afegiria la partició sda7 al Raid md7, però si després d'haver fet això la comanda:
mdadm -D /dev/md7

(mireu que hagi completat l'spare). El disc encara està marcat com a Faulty, vol dir que malament, malament: millor canviar-lo [Un RAID 5 de 4 discos pot subsistir amb 3 discos, si en fallés un altre voldria dir que ja no hi hauria manera de recuperar les dades!].

Molt bé, i ara bé el moment, en que un obre el l'ordinador i diu: "va vaig a canviar el disc sda!", però Oh! quin és el disc sda. Doncs s'identifica pel serial number i com nassos sé el S/N de sda? doncs amb la següent comanda:
hdparm -i /dev/sda


Així que ara toca apuntar-se el serial Number del disc i tot seguit: Apagar l'ordinador (no feu experiments amb l'ordinador en marxa). I mirar disc per disc quin és el que té apuntat el número de sèrie que ens ha dit hdparm. Es treu el disc, es canvia i amb un disc d'arrencada es torna a engegar l'ordinador:

amb la comanda cfdisk es particiona el nou disc (es busca quins sdx és, serà el que no tingui cap partició (és nou)). Tot seguit es restaura la partició d'arrencada, per a fer-ho primer activem la partició boot, amb:
mdadm --assemble /dev/md1 /dev/sdb1 /dev/sdc1 /dev/sdd1


Noteu que no hi ha el /dev/sda1, perquè és el nou i és el que no té dades sobre el RAID, ara incorporem el /dev/sda1 al RAID:
mdadm --add /dev/md1 /dev/sda1

Aquesta partició va super ràpida és molt petita (30~100MB). Les següents aniran més lentes. Ara podem fer la memòria swap:
mkswap /dev/sda2 && swapon -p 1 /dev/sda2

El -p indica la prioritat, mirem que totes les particions swap tinguin la mateixa prioritat per fer un RAID:
swapon -v -s


Amb això ara ja podem reiniciar, el Sistema arrancarà amb normalitat, només que els RAID estaran fets de 3 discos i no de 4. Els següents passos són senzills, però quant més grans siguin les particions més lent anirà:
mdadm --add /dev/md3 /dev/sda3

Ara lo millor és no saturar l'ordinador, i fer-ho mica en mica, per mirar quan hagi acabat de fer la restauració podeu esperar a que el led del disc dur s'apagui, o més professional, anar consultant:
mdadm -D /dev/md3

Fins que el Rebuild status arribi el 100%.
Això ho haureu de fer amb totes les particions:
mdadm --add /dev/md5 /dev/sda5

mdadm --add /dev/md6 /dev/sda6

mdadm --add /dev/md7 /dev/sda7

mdadm --add /dev/md8 /dev/sda8


I apa, ja està la feina feta. Mentre es fa el rebuild tot va una mica lent: absolutament normal, simplement o feu poca feina o aneu a sopar ;P

Com veieu l'avantatge del RAID és que si peta un disc dur o una (dues) partició del disc dur, no es perden les dades. Que al cap i a la fi les dades és el més important que teniu al vostre ordinador, perquè val, un ordinador pot costar 400, 500, 900, 1400€. Però tota la vostra feina que hagueu fet, no té preu. Per això aplicacions com el Google Docs van bé per aquells que no es volen arriscar a perdre els seus treballs o documents: totes les dades estan a internet, si peta l'ordinador no passa res... Ara bé, després ve el dia en que Google fa el tonto i no et deixa accedir, que passa poques vegades, però quan passa...

L'altre avantatge del RAID és que s'incrementa la velocitat d'accés a disc, doncs si tens un RAID amb 4 discos, quan accedeixes a una dada, 4 discos treballen cooperativament per entregar les dades desitjades. I això, és nota i molt. Avui dia, el coll d'ampolla d'un ordinador està en l'accés a disc. Per tant, sortireu guanyant gastant-vos menys pasta amb el processador i la pasta necessària en un disc SSD. Després podeu comprar-vos un disc normal d'un terabyte per posar les vostres pelis guarres, lo important és que el Sistema Operatiu (i la partició swap) estigui en l'SSD [que té un accés molt més ràpid que els discos convencionals].