Com recuperar dades i reconstruir RAID de programari fallits - Part 8
En els articles anteriors d'aquesta sèrie RAID vau passar de zero a heroi RAID. Vam revisar diverses configuracions de RAID de programari i vam explicar l'essencial de cadascuna, juntament amb els motius pels quals t'inclinarias cap a l'una o l'altra segons el teu escenari específic.
En aquesta guia parlarem de com reconstruir una matriu RAID de programari sense pèrdua de dades en cas de fallada del disc. Per a la brevetat, només considerarem una configuració RAID 1, però els conceptes i les ordres s'apliquen a tots els casos per igual.
Abans de continuar, assegureu-vos que heu configurat una matriu RAID 1 seguint les instruccions proporcionades a la part 3 d'aquesta sèrie: Com configurar RAID 1 (mirall) a Linux.
Les úniques variacions en el nostre cas actual seran:
1) una versió diferent de CentOS (v7) que la que s'utilitza en aquest article (v6.5) i
2) diferents mides de disc per a /dev/sdb i /dev/sdc (8 GB cadascun).
A més, si SELinux està habilitat en mode d'aplicació, haureu d'afegir les etiquetes corresponents al directori on muntareu el dispositiu RAID. En cas contrari, trobareu aquest missatge d'advertència mentre intenteu muntar-lo:
Podeu solucionar-ho executant:
# restorecon -R /mnt/raid1
Configuració de la supervisió RAID
Hi ha diverses raons per les quals un dispositiu d'emmagatzematge pot fallar (tot i que els SSD han reduït molt les possibilitats que això succeeixi), però independentment de la causa, podeu estar segur que els problemes es poden produir en qualsevol moment i haureu d'estar preparat per substituir el que ha fallat. part i per garantir la disponibilitat i integritat de les seves dades.
Primer un consell. Fins i tot quan podeu inspeccionar /proc/mdstat per comprovar l'estat dels vostres RAID, hi ha un mètode millor i d'estalvi de temps que consisteix a executar mdadm en mode monitor + escaneig, que enviarà alertes per correu electrònic a un destinatari predefinit.
Per configurar-ho, afegiu la línia següent a /etc/mdadm.conf:
MAILADDR [email <domain or localhost>
En el meu cas:
MAILADDR [email
Per executar mdadm en mode monitor + escaneig, afegiu l'entrada crontab següent com a root:
@reboot /sbin/mdadm --monitor --scan --oneshot
Per defecte, mdadm comprovarà les matrius RAID cada 60 segons i enviarà una alerta si troba algun problema. Podeu modificar aquest comportament afegint l'opció --delay
a l'entrada crontab anterior juntament amb la quantitat de segons (per exemple, --delay
1800 significa 30 minuts).
Finalment, assegureu-vos que teniu instal·lat un agent d'usuari de correu (MUA), com ara mutt o mailx. En cas contrari, no rebrà cap alerta.
En un minut veurem com és una alerta enviada per mdadm.
Simulació i substitució d'un dispositiu d'emmagatzematge RAID fallit
Per simular un problema amb un dels dispositius d'emmagatzematge de la matriu RAID, utilitzarem les opcions --manage
i --set-faulty
de la següent manera:
# mdadm --manage --set-faulty /dev/md0 /dev/sdc1
Això farà que /dev/sdc1 es marqui com a defectuós, com podem veure a /proc/mdstat:
Més important encara, a veure si hem rebut una alerta per correu electrònic amb el mateix avís:
En aquest cas, haureu d'eliminar el dispositiu de la matriu RAID de programari:
# mdadm /dev/md0 --remove /dev/sdc1
A continuació, podeu eliminar-lo físicament de la màquina i substituir-lo per una peça de recanvi (/dev/sdd, on prèviament s'ha creat una partició de tipus fd):
# mdadm --manage /dev/md0 --add /dev/sdd1
Per sort per a nosaltres, el sistema començarà automàticament a reconstruir la matriu amb la part que acabem d'afegir. Podem provar-ho marcant /dev/sdb1 com a defectuós, eliminant-lo de la matriu i assegurant-nos que el fitxer tecmint.txt encara sigui accessible a /mnt/raid1:
# mdadm --detail /dev/md0 # mount | grep raid1 # ls -l /mnt/raid1 | grep tecmint # cat /mnt/raid1/tecmint.txt
La imatge de dalt mostra clarament que després d'afegir /dev/sdd1 a la matriu com a reemplaçament de /dev/sdc1, la reconstrucció de dades es va realitzar automàticament pel sistema sense intervenció de la nostra part.
Tot i que no és estrictament obligatori, és una gran idea tenir un dispositiu de recanvi a mà perquè el procés de substitució del dispositiu defectuós per una bona unitat es pugui fer en un instant. Per fer-ho, tornem a afegir /dev/sdb1 i /dev/sdc1:
# mdadm --manage /dev/md0 --add /dev/sdb1 # mdadm --manage /dev/md0 --add /dev/sdc1
Recuperació d'una pèrdua de redundància
Com s'ha explicat anteriorment, mdadm reconstruirà automàticament les dades quan falla un disc. Però què passa si 2 discs de la matriu fallen? Simulem aquest escenari marcant /dev/sdb1 i /dev/sdd1 com a defectuosos:
# umount /mnt/raid1 # mdadm --manage --set-faulty /dev/md0 /dev/sdb1 # mdadm --stop /dev/md0 # mdadm --manage --set-faulty /dev/md0 /dev/sdd1
Els intents de tornar a crear la matriu de la mateixa manera que es va crear en aquest moment (o utilitzant l'opció --assume-clean
) poden provocar la pèrdua de dades, per la qual cosa s'hauria de deixar com a últim recurs.
Intentem recuperar les dades de /dev/sdb1, per exemple, en una partició de disc similar (/dev/sde1; tingueu en compte que això requereix que creeu una partició de tipus fd a /dev/sde abans de continuar) amb ddrescue:
# ddrescue -r 2 /dev/sdb1 /dev/sde1
Tingueu en compte que fins ara, no hem tocat /dev/sdb o /dev/sdd, les particions que formaven part de la matriu RAID.
Ara reconstruïm la matriu utilitzant /dev/sde1 i /dev/sdf1:
# mdadm --create /dev/md0 --level=mirror --raid-devices=2 /dev/sd[e-f]1
Tingueu en compte que en una situació real, normalment utilitzareu els mateixos noms de dispositiu que amb la matriu original, és a dir, /dev/sdb1 i /dev/sdc1 després que els discs fallits s'hagin substituït per de nous.
En aquest article he optat per utilitzar dispositius addicionals per tornar a crear la matriu amb discs nous i per evitar confusions amb les unitats originals fallides.
Quan se us demani si voleu continuar escrivint matriu, escriviu Y i premeu Intro. La matriu s'hauria d'iniciar i hauríeu de poder veure el seu progrés amb:
# watch -n 1 cat /proc/mdstat
Quan finalitzi el procés, hauríeu de poder accedir al contingut del vostre RAID:
Resum
En aquest article hem revisat com recuperar-nos d'errors de RAID i pèrdues de redundància. Tanmateix, cal recordar que aquesta tecnologia és una solució d'emmagatzematge i NO substitueix les còpies de seguretat.
Els principis explicats en aquesta guia s'apliquen a totes les configuracions RAID per igual, així com els conceptes que tractarem a la següent i final guia d'aquesta sèrie (gestió RAID).
Si teniu cap pregunta sobre aquest article, no dubteu a enviar-nos una nota mitjançant el formulari de comentaris a continuació. Esperem amb interès tenir notícies teves!