Kako oporaviti podatke i obnoviti pokvarene softverske RAID-ove - 8. dio


U prethodnim člancima ove RAID serije prešao si od nule do RAID heroja. Pregledali smo nekoliko softverskih RAID konfiguracija i objasnili osnove svake od njih, zajedno s razlozima zašto biste se priklonili jednoj ili drugoj ovisno o vašem specifičnom scenariju.

U ovom vodiču raspravljat ćemo o tome kako ponovno izgraditi softversko RAID polje bez gubitka podataka u slučaju kvara diska. Radi sažetosti, razmotrit ćemo samo postavku RAID 1 – ali koncepti i naredbe podjednako se primjenjuju na sve slučajeve.

Scenarij testiranja RAID-a

Prije nego što nastavite dalje, provjerite jeste li postavili RAID 1 niz slijedeći upute navedene u 3. dijelu ove serije: Kako postaviti RAID 1 (Mirror) u Linuxu.

Jedine varijacije u našem sadašnjem slučaju bit će:

1) drugu verziju CentOS-a (v7) od one korištene u tom članku (v6.5) i
2) različite veličine diska za /dev/sdb i /dev/sdc (8 GB svaki).

Osim toga, ako je SELinux omogućen u načinu rada za provedbu, morat ćete dodati odgovarajuće oznake u direktorij u koji ćete montirati RAID uređaj. U suprotnom ćete naići na ovu poruku upozorenja dok ga pokušavate montirati:

To možete popraviti pokretanjem:


restorecon -R /mnt/raid1

Postavljanje RAID nadzora

Postoji niz razloga zašto se uređaj za pohranu može pokvariti (SSD-ovi su uvelike smanjili šanse da se to dogodi), ali bez obzira na uzrok, možete biti sigurni da se problemi mogu pojaviti bilo kada i morate biti spremni zamijeniti pokvareni dio te kako bismo osigurali dostupnost i cjelovitost vaših podataka.

Prvo savjet. Čak i kada možete pregledati /proc/mdstat kako biste provjerili status svojih RAID-ova, postoji bolja metoda koja štedi vrijeme i sastoji se od pokretanja mdadm u monitoru + skeniranju način rada, koji će slati upozorenja putem e-pošte unaprijed definiranom primatelju.

Da biste to postavili, dodajte sljedeći redak u /etc/mdadm.conf:


MAILADDR user@<domain or localhost>

U mom slučaju:


MAILADDR gacanepa@localhost

Za pokretanje mdadm u modu nadgledanja + skeniranja, dodajte sljedeći crontab unos kao root:


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

Prema zadanim postavkama, mdadm provjeravat će RAID nizove svakih 60 sekundi i poslati upozorenje ako pronađe problem. Ovo ponašanje možete modificirati dodavanjem opcije --delay gornjem unosu u crontab zajedno s količinom sekundi (na primjer, --delay 1800 znači 30 minuta).

Konačno, provjerite imate li instaliran Mail User Agent (MUA), kao što je mutt ili mailx. U protivnom nećete primati nikakva upozorenja.

Za minutu ćemo vidjeti kako izgleda upozorenje koje je poslao mdadm.

Simulacija i zamjena pokvarenog RAID uređaja za pohranu

Za simulaciju problema s jednim od uređaja za pohranu u RAID polju, koristit ćemo opcije --manage i --set-faulty kako slijedi:


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

To će rezultirati time da /dev/sdc1 bude označen kao neispravan, kao što možemo vidjeti u /proc/mdstat:

Još važnije, pogledajmo jesmo li primili upozorenje e-poštom s istim upozorenjem:

U tom slučaju morat ćete ukloniti uređaj iz softverskog RAID polja:


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

Zatim ga možete fizički ukloniti sa stroja i zamijeniti rezervnim dijelom (/dev/sdd, gdje je prethodno stvorena particija tipa fd):


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

Srećom po nas, sustav će automatski početi ponovno graditi niz s dijelom koji smo upravo dodali. To možemo testirati tako da označimo /dev/sdb1 kao neispravan, uklonimo ga iz niza i osiguramo da je datoteka tecmint.txt još uvijek dostupna na / mnt/raid1:


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

Gornja slika jasno pokazuje da nakon dodavanja /dev/sdd1 nizu kao zamjene za /dev/sdc1, sustav je automatski izvršio ponovnu izgradnju podataka bez intervencije s naše strane.

Iako nije striktno potrebno, dobra je ideja imati rezervni uređaj pri ruci kako bi se proces zamjene neispravnog uređaja dobrim pogonom mogao izvršiti u tren oka. Da bismo to učinili, dodajmo ponovno /dev/sdb1 i /dev/sdc1:


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

Oporavak od gubitka zbog redundantnosti

Kao što je ranije objašnjeno, mdadm će automatski obnoviti podatke kada jedan disk zakaže. Ali što se događa ako 2 diska u polju pokvare? Simulirajmo takav scenarij označavanjem /dev/sdb1 i /dev/sdd1 kao neispravnih:


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

Pokušaji ponovnog stvaranja niza na isti način na koji je kreiran u ovom trenutku (ili korištenjem opcije --assume-clean) mogu rezultirati gubitkom podataka, tako da to treba ostaviti kao posljednje sredstvo.

Pokušajmo oporaviti podatke iz /dev/sdb1, na primjer, u sličnu particiju diska (/dev/sde1 – imajte na umu da to zahtijeva stvaranje particije od upišite fd u /dev/sde prije nastavka) koristeći ddrescue:


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

Imajte na umu da do ove točke nismo dotakli /dev/sdb ili /dev/sdd, particije koje su bile dio RAID polja.

Sada ponovno izgradimo niz pomoću /dev/sde1 i /dev/sdf1:


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

Imajte na umu da ćete u stvarnoj situaciji obično koristiti iste nazive uređaja kao s izvornim poljem, to jest /dev/sdb1 i /dev/sdc1 nakon pokvareni diskovi zamijenjeni su novima.

U ovom sam članku odlučio upotrijebiti dodatne uređaje za ponovno stvaranje niza s potpuno novim diskovima i izbjegavanje zabune s izvornim pokvarenim pogonima.

Na pitanje želite li nastaviti s pisanjem niza, upišite Y i pritisnite Enter. Niz bi trebao biti pokrenut i trebali biste moći pratiti njegov napredak pomoću:


watch -n 1 cat /proc/mdstat

Kada proces završi, trebali biste moći pristupiti sadržaju vašeg RAID-a:

Sažetak

U ovom smo članku pregledali kako se oporaviti od RAID kvarova i gubitaka redundantnosti. Međutim, morate upamtiti da je ova tehnologija rješenje za pohranu i NE zamjenjuje sigurnosne kopije.

Načela objašnjena u ovom vodiču podjednako se primjenjuju na sve postavke RAID-a, kao i na koncepte koje ćemo obraditi u sljedećem i posljednjem vodiču ove serije (upravljanje RAID-om).

Ako imate bilo kakvih pitanja o ovom članku, slobodno nam pošaljite poruku koristeći obrazac za komentare u nastavku. Radujemo se vašem odgovoru!