Kaip atkurti duomenis ir atkurti nepavykusią programinės įrangos RAID – 8 dalis


Ankstesniuose šios RAID serijos straipsniuose nuo nulio tapote RAID herojumi. Peržiūrėjome keletą programinės įrangos RAID konfigūracijų ir paaiškinome esminius kiekvienos iš jų dalykus, taip pat priežastis, kodėl pasirinktumėte vieną ar kitą, atsižvelgiant į konkretų scenarijų.

Šiame vadove aptarsime, kaip atkurti programinės įrangos RAID masyvą neprarandant duomenų, kai diskas sugenda. Trumpumo dėlei apsvarstysime tik RAID 1 sąranką, tačiau sąvokos ir komandos galioja visais atvejais.

RAID testavimo scenarijus

Prieš tęsdami, įsitikinkite, kad nustatėte RAID 1 masyvą, vadovaudamiesi instrukcijomis, pateiktomis šios serijos 3 dalyje: Kaip nustatyti RAID 1 (veidrodį) sistemoje Linux.

Vieninteliai variantai šiuo atveju bus:

1) kitokia „CentOS“ versija (v7), nei naudojama tame straipsnyje (v6.5), ir
2) skirtingi /dev/sdb ir /dev/sdc diskų dydžiai (kiekvienas po 8 GB).

Be to, jei SELinux įgalintas vykdymo režimu, turėsite pridėti atitinkamas etiketes prie katalogo, kuriame prijungsite RAID įrenginį. Priešingu atveju, bandydami jį prijungti, pamatysite šį įspėjamąjį pranešimą:

Tai galite išspręsti paleisdami:


restorecon -R /mnt/raid1

RAID stebėjimo nustatymas

Yra įvairių priežasčių, kodėl saugojimo įrenginys gali sugesti (tačiau SSD diskai labai sumažino tikimybę, kad taip nutiks), tačiau, nepaisant priežasties, galite būti tikri, kad problemų gali kilti bet kuriuo metu ir turite būti pasirengę pakeisti sugedusį įrenginį. dalis ir užtikrinti jūsų duomenų prieinamumą ir vientisumą.

Pirmas patarimas. Net jei galite patikrinti /proc/mdstat, kad patikrintumėte savo RAID būseną, yra geresnis ir laiką taupantis metodas, kurį sudaro mdadm paleidimas monitoriuje ir nuskaityme. režimu, kuris išsiųs įspėjimus el. paštu iš anksto nustatytam gavėjui.

Norėdami tai nustatyti, prie /etc/mdadm.conf pridėkite šią eilutę:


MAILADDR user@<domain or localhost>

Mano atveju:


MAILADDR gacanepa@localhost

Jei norite paleisti mdadm monitoriaus ir nuskaitymo režimu, kaip root pridėkite šį crontab įrašą:


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

Pagal numatytuosius nustatymus mdadm patikrins RAID matricas kas 60 sekundžių ir išsiųs įspėjimą, jei aptiks problemą. Galite pakeisti šią elgseną pridėdami parinktį --delay prie aukščiau esančio crontab įrašo ir sekundžių skaičių (pavyzdžiui, --delay 1800 reiškia 30 minučių).

Galiausiai įsitikinkite, kad įdiegėte Mail User Agent (MUA), pvz., mutt arba mailx. Priešingu atveju negausite jokių įspėjimų.

Po minutės pamatysime, kaip atrodo mdadm atsiųstas įspėjimas.

Sugedusio RAID saugojimo įrenginio modeliavimas ir keitimas

Norėdami imituoti vieno iš RAID masyvo saugojimo įrenginių problemą, naudosime parinktis --manage ir --set-faulty taip:


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

Dėl to /dev/sdc1 bus pažymėtas kaip sugedęs, kaip matome /proc/mdstat:

Dar svarbiau, pažiūrėkime, ar gavome įspėjimą el. paštu su tuo pačiu įspėjimu:

Tokiu atveju turėsite pašalinti įrenginį iš programinės įrangos RAID masyvo:


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

Tada galite fiziškai jį išimti iš įrenginio ir pakeisti atsargine dalimi (/dev/sdd, kur anksčiau buvo sukurtas fd tipo skaidinys):


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

Mūsų laimei, sistema automatiškai pradės atstatyti masyvą su dalimi, kurią ką tik įtraukėme. Galime tai patikrinti pažymėdami /dev/sdb1 kaip sugadintą, pašalindami jį iš masyvo ir įsitikinę, kad failas tecmint.txt vis dar pasiekiamas adresu / mnt/raid1:


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

Aukščiau pateiktame paveikslėlyje aiškiai matyti, kad pridėjus /dev/sdd1 prie masyvo kaip /dev/sdc1 pakeitimo, sistema automatiškai atkūrė duomenis be įsikišimo. iš mūsų pusės.

Nors tai nėra griežtai reikalaujama, gera idėja turėti po ranka atsarginį įrenginį, kad sugedusį įrenginį būtų galima atlikti akimirksniu. Norėdami tai padaryti, iš naujo pridėkite /dev/sdb1 ir /dev/sdc1:


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

Atsigavimas po atleidimo iš darbo praradimo

Kaip paaiškinta anksčiau, mdadm automatiškai atkurs duomenis, kai vienas diskas sugenda. Bet kas atsitiks, jei 2 diskai masyve sugenda? Imituokite tokį scenarijų, pažymėdami /dev/sdb1 ir /dev/sdd1 kaip sugedusius:


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

Bandymai iš naujo sukurti masyvą tokiu pat būdu, kaip jis buvo sukurtas šiuo metu (arba naudojant parinktį --sume-clean), gali būti prarasti duomenys, todėl tai turėtų būti palikta kaip paskutinė priemonė.

Pabandykime atkurti duomenis iš /dev/sdb1, pavyzdžiui, į panašų disko skaidinį (/dev/sde1 – atminkite, kad tam reikia sukurti skaidinį Įveskite fd į /dev/sde prieš tęsdami), naudodami ddrescue:


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

Atminkite, kad iki šiol nepalietėme /dev/sdb arba /dev/sdd, skaidinių, kurie buvo RAID masyvo dalis.

Dabar atkurkime masyvą naudodami /dev/sde1 ir /dev/sdf1:


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

Atminkite, kad realioje situacijoje paprastai naudosite tuos pačius įrenginių pavadinimus kaip ir pradiniame masyve, t. y. /dev/sdb1 ir /dev/sdc1 po sugedę diskai buvo pakeisti naujais.

Šiame straipsnyje pasirinkau naudoti papildomus įrenginius, kad iš naujo sukurčiau masyvą su visiškai naujais diskais ir išvengčiau painiavos su originaliais sugedusiais įrenginiais.

Kai paklausite, ar toliau rašyti masyvą, įveskite Y ir paspauskite Enter. Masyvas turėtų būti paleistas ir jūs turėtumėte turėti galimybę stebėti jo eigą naudodami:


watch -n 1 cat /proc/mdstat

Kai procesas bus baigtas, turėtumėte turėti prieigą prie savo RAID turinio:

Santrauka

Šiame straipsnyje apžvelgėme, kaip atsigauti po RAID gedimų ir pertekliaus praradimo. Tačiau reikia atsiminti, kad ši technologija yra saugojimo sprendimas ir NEPAKEITA atsarginių kopijų.

Šiame vadove paaiškinti principai vienodai taikomi visoms RAID sąrankoms, taip pat sąvokos, kurias aptarsime kitame ir paskutiniame šios serijos vadove (RAID valdymas).

Jei turite klausimų apie šį straipsnį, nedvejodami palikite mums pastabą naudodami toliau pateiktą komentarų formą. Lauksime jūsų žinučių!