Kako obnoviti podatke in obnoviti neuspele RAID-je programske opreme - 8. del


V prejšnjih člankih te serije RAID ste z ničle postali RAID junak. Pregledali smo več konfiguracij programske opreme RAID in razložili bistve vsake od njih ter razloge, zakaj se nagibate k enemu ali drugemu, odvisno od vašega specifičnega scenarija.

V tem priročniku bomo razpravljali o tem, kako v primeru okvare diska obnoviti programsko polje RAID brez izgube podatkov. Za kratkost bomo upoštevali samo nastavitev RAID 1 - vendar koncepti in ukazi veljajo za vse primere.

Pred nadaljevanjem se prepričajte, da ste nastavili matriko RAID 1 po navodilih v 3. delu te serije: Kako nastaviti RAID 1 (Mirror) v Linuxu.

Edine razlike v našem sedanjem primeru bodo:

1) različica CentOS (v7), kot je uporabljena v tem članku (v6.5), in
2) različne velikosti diska za/dev/sdb in/dev/sdc (po 8 GB).

Če je SELinux omogočen v načinu uveljavljanja, boste morali dodati ustrezne oznake v imenik, kamor boste namestili napravo RAID. V nasprotnem primeru boste med poskusom namestitve naleteli na to opozorilno sporočilo:

To lahko popravite tako, da zaženete:

# restorecon -R /mnt/raid1

Nastavitev nadzora RAID

Obstaja več razlogov, zakaj naprava za shranjevanje lahko odpove (SSD-ji so sicer močno zmanjšali možnosti, da se to zgodi), vendar ste lahko ne glede na vzrok prepričani, da se težave lahko pojavijo kadar koli in morate biti pripravljeni nadomestiti neuspešno del in zagotoviti razpoložljivost in celovitost vaših podatkov.

Najprej nekaj nasveta. Tudi ko lahko pregledate/proc/mdstat, da preverite stanje svojih RAID-ov, obstaja boljša metoda, ki prihrani čas, ki vključuje zagon mdadm v načinu monitor + skeniranje, ki bo opozorila po e-pošti poslal vnaprej določenemu prejemniku.

Če želite to nastaviti, dodajte v /etc/mdadm.conf naslednjo vrstico:

MAILADDR [email <domain or localhost>

V mojem primeru:

MAILADDR [email 

Če želite zagnati mdadm v načinu monitor + skeniranje, dodajte naslednji vnos crontab kot root:

@reboot /sbin/mdadm --monitor --scan --oneshot

Privzeto bo mdadm vsakih 60 sekund preveril polja RAID in poslal opozorilo, če bo odkril težavo. To vedenje lahko spremenite tako, da v zgornji vnos crontab dodate možnost --delay skupaj s številom sekund (na primer --delay 1800 pomeni 30 minut).

Nazadnje se prepričajte, da imate nameščen agent za uporabnike pošte (MUA), na primer mutt ali mailx. V nasprotnem primeru ne boste prejeli nobenega opozorila.

Čez minuto bomo videli, kako izgleda opozorilo, ki ga pošlje mdadm.

Simulacija in zamenjava napačne RAID naprave za shranjevanje

Za simulacijo težave z eno od pomnilniških naprav v matriki RAID bomo uporabili možnosti --manage in --set-defected , kot sledi:

# mdadm --manage --set-faulty /dev/md0 /dev/sdc1  

To bo povzročilo, da bo/dev/sdc1 označen kot napačen, kot lahko vidimo v/proc/mdstat:

Kar je še pomembneje, poglejmo, ali smo prejeli e-poštno opozorilo z istim opozorilom:

V tem primeru boste morali napravo odstraniti iz programske matrike RAID:

# mdadm /dev/md0 --remove /dev/sdc1

Nato ga lahko fizično odstranite iz naprave in zamenjate z rezervnim delom (/ dev/sdd, kjer je bila prej ustvarjena particija tipa fd):

# mdadm --manage /dev/md0 --add /dev/sdd1

Na našo srečo bo sistem samodejno začel znova graditi matriko z delom, ki smo ga pravkar dodali. To lahko preizkusimo tako, da označimo/dev/sdb1 kot napačno, jo odstranimo iz polja in poskrbimo, da je datoteka tecmint.txt še vedno dostopna na/mnt/raid1:

# mdadm --detail /dev/md0
# mount | grep raid1
# ls -l /mnt/raid1 | grep tecmint
# cat /mnt/raid1/tecmint.txt

Na zgornji sliki je jasno razvidno, da je sistem po nadomestitvi/dev/sdc1 v matriko kot nadomestitev/dev/sdc1 v sistem samodejno izvedel obnovo podatkov, ne da bi z naše strani posredovali.

Čeprav ni nujno potrebno, je odlična ideja, da imate pri roki rezervno napravo, tako da lahko postopek zamenjave okvarjene naprave z dobrim pogonom hitro opravite. Če želite to narediti, znova dodajte/dev/sdb1 in/dev/sdc1:

# mdadm --manage /dev/md0 --add /dev/sdb1
# mdadm --manage /dev/md0 --add /dev/sdc1

Okrevanje po odvečni izgubi

Kot smo že pojasnili, bo mdadm samodejno znova izdelal podatke, ko en disk odpove. Toda kaj se zgodi, če odpovesta 2 diska v matriki? Simulirajmo tak scenarij tako, da označimo/dev/sdb1 in/dev/sdd1 kot napačni:

# umount /mnt/raid1
# mdadm --manage --set-faulty /dev/md0 /dev/sdb1
# mdadm --stop /dev/md0
# mdadm --manage --set-faulty /dev/md0 /dev/sdd1

Poskusi znova ustvariti matriko na enak način, kot je bil ustvarjen v tem času (ali z uporabo možnosti --assume-clean ), lahko povzročijo izgubo podatkov, zato bi jo morali pustiti v skrajnem primeru.

Poskusimo obnoviti podatke iz/dev/sdb1, na primer v podobno particijo diska (/ dev/sde1 - upoštevajte, da to zahteva, da pred nadaljevanjem ustvarite particijo tipa fd v/dev/sde):

# ddrescue -r 2 /dev/sdb1 /dev/sde1

Upoštevajte, da do tega trenutka nismo dotaknili/dev/sdb ali/dev/sdd, particij, ki so bile del matrike RAID.

Zdaj pa obnovimo matriko z uporabo/dev/sde1 in/dev/sdf1:

# mdadm --create /dev/md0 --level=mirror --raid-devices=2 /dev/sd[e-f]1

Upoštevajte, da boste v resnični situaciji običajno uporabili enaka imena naprav kot pri prvotni matriki, to je/dev/sdb1 in/dev/sdc1, potem ko so okvarjene diske zamenjali z novimi.

V tem članku sem se odločil za uporabo dodatnih naprav za ponovno ustvarjanje matrike s popolnoma novimi diski in za izogibanje zmedi s prvotnimi neuspešnimi pogoni.

Na vprašanje, ali naj še naprej pišete polje, vnesite Y in pritisnite Enter. Matriko je treba zagnati in njen napredek bi lahko spremljali z:

# watch -n 1 cat /proc/mdstat

Ko se postopek zaključi, bi morali imeti dostop do vsebine vašega RAID:

Povzetek

V tem članku smo pregledali, kako obnoviti okvare RAID in izgube zaradi odvečnosti. Vendar se morate zavedati, da je ta tehnologija rešitev za shranjevanje in NE nadomešča varnostnih kopij.

Načela, pojasnjena v tem priročniku, veljajo za vse nastavitve RAID, pa tudi koncepte, ki jih bomo obravnavali v naslednjem in zadnjem vodniku te serije (upravljanje RAID).

Če imate kakršna koli vprašanja o tem članku, nam prosimo, da nam pošljete opombo s spodnjim obrazcem za komentar. Veselimo se vaših odzivov!