Tietojen palauttaminen ja epäonnistuneiden RAID-tiedostojen uudelleen rakentaminen - osa 8


Tämän RAID-sarjan edellisissä artikkeleissa siirryt nollasta RAID-sankariksi. Tarkastimme useita RAID-ohjelmistokokoonpanoja ja selitimme kunkin olennaiset osat sekä syyt siihen, miksi nojaat kohti yhtä tai toista riippuen tilanteestasi.

Tässä oppaassa keskustelemme siitä, miten ohjelmisto-RAID-ryhmä voidaan rakentaa uudelleen ilman tietojen menetystä levyvian sattuessa. Lyhyesti sanottuna harkitsemme vain RAID 1 -asennusta - mutta käsitteet ja komennot koskevat kaikkia tapauksia.

Ennen kuin jatkat, varmista, että olet määrittänyt RAID 1 -taulukon tämän sarjan osassa 3 annettujen ohjeiden mukaisesti: RAID 1: n (peilin) asentaminen Linuxiin.

Ainoat muunnelmat tässä tapauksessa ovat:

1) eri versio CentOS: sta (v7) kuin siinä artikkelissa käytetty (v6.5), ja
2) eri levykoot kansioille/dev/sdb ja/dev/sdc (kumpikin 8 Gt).

Lisäksi, jos SELinux on käytössä pakotustilassa, sinun on lisättävä vastaavat tunnisteet hakemistoon, johon liität RAID-laitteen. Muussa tapauksessa törmäät tähän varoitusviestiin yrittäessäsi asentaa sitä:

Voit korjata tämän suorittamalla:

# restorecon -R /mnt/raid1

RAID-seurannan määrittäminen

On olemassa useita syitä sille, miksi tallennuslaite voi epäonnistua (SSD: t ovat kuitenkin huomattavasti pienentäneet tämän mahdollisuuksia), mutta syystä riippumatta voit olla varma, että ongelmia voi esiintyä milloin tahansa ja sinun on oltava valmis korvaamaan vialliset tietojesi saatavuuden ja eheyden varmistamiseksi.

Ensin sana neuvoja. Vaikka voit tarkistaa/proc/mdstat tarkistaaksesi RAID-tiedostojesi tilan, on parempi ja aikaa säästävä menetelmä, joka koostuu mdadmin suorittamisesta monitori + skannaustilassa, joka lähettää hälytykset sähköpostitse ennalta määritetylle vastaanottajalle.

Määritä tämä lisäämällä seuraava rivi tiedostoon /etc/mdadm.conf:

MAILADDR [email <domain or localhost>

Minun tapauksessani:

MAILADDR [email 

Jos haluat suorittaa mdadm: n monitori + skannaustilassa, lisää seuraava crontab-merkintä juureksi:

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

Oletuksena mdadm tarkistaa RAID-taulukot 60 sekunnin välein ja lähettää ilmoituksen, jos se löytää ongelman. Voit muokata tätä käyttäytymistä lisäämällä --delay -vaihtoehdon yllä olevaan crontab-merkintään sekuntien määrän kanssa (esimerkiksi --delay 1800 tarkoittaa 30 minuuttia).

Varmista lopuksi, että sinulla on asennettuna Mail User Agent (MUA), kuten mutt tai mailx. Muussa tapauksessa et saa ilmoituksia.

Hetken kuluttua näemme miltä mdadmin lähettämä hälytys näyttää.

Viallisen RAID-tallennuslaitteen simulointi ja vaihtaminen

Simuloimaan ongelmaa yhdessä RAID-ryhmän tallennuslaitteista käytämme vaihtoehtoja --manage ja --set-default seuraavasti:

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

Tämän seurauksena/dev/sdc1 merkitään vialliseksi, kuten näemme/proc/mdstat:

Mikä tärkeämpää, katsotaanpa, saimmeko sähköpostihälytyksen samalla varoituksella:

Tässä tapauksessa sinun on poistettava laite RAID-ohjelmistosta:

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

Sitten voit poistaa sen fyysisesti koneesta ja korvata sen varaosalla (/ dev/sdd, johon on aiemmin luotu osio tyyppiä fd):

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

Onneksi järjestelmä aloittaa taulukon rakentamisen automaattisesti lisäämällä osaa. Voimme testata tämän merkitsemällä/dev/sdb1 vialliseksi, poistamalla sen taulukosta ja varmistamalla, että tiedosto tecmint.txt on edelleen käytettävissä osoitteessa/mnt/raid1:

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

Yllä oleva kuva osoittaa selvästi, että sen jälkeen, kun/dev/sdd1 on lisätty taulukkoon/dev/sdc1: n korvikkeena, järjestelmä suoritti tietojen uudelleenrakennuksen automaattisesti ilman meidän osiamme.

Vaikka sitä ei ehdottomasti vaadita, on hyvä idea olla varalaite kätevä, jotta viallisen laitteen korvaaminen hyvällä asemalla voidaan suorittaa nopeasti. Lisää se lisäämällä uudelleen/dev/sdb1 ja/dev/sdc1:

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

Toipuminen irtisanomisesta

Kuten aiemmin selitettiin, mdadm rakentaa tiedot automaattisesti uudelleen, kun yksi levy epäonnistuu. Mutta mitä tapahtuu, jos ryhmän 2 levyä epäonnistuu? Simuloidaan tällaista skenaariota merkitsemällä/dev/sdb1 ja/dev/sdd1 viallisiksi:

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

Yritykset luoda taulukko uudelleen samalla tavalla kuin se luotiin tällä hetkellä (tai käyttämällä --assume-clean -vaihtoehtoa) voivat johtaa tietojen menetykseen, joten se on jätettävä viimeisenä keinona.

Yritetään palauttaa tiedot tiedostosta/dev/sdb1 esimerkiksi vastaavaan levyosioon (/ dev/sde1 - huomaa, että tämä edellyttää, että luodaan osio tyyppiä fd/dev/sde ennen jatkamista) käyttämällä ddrescue:

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

Huomaa, että tähän asti emme ole koskettaneet/dev/sdb tai/dev/sdd, osioita, jotka olivat osa RAID-taulukkoa.

Rakennetaan nyt taulukko uudelleen käyttämällä/dev/sde1 ja/dev/sdf1:

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

Huomaa, että todellisessa tilanteessa käytät yleensä samoja laitenimiä kuin alkuperäisessä taulukossa, ts./Dev/sdb1 ja/dev/sdc1 sen jälkeen, kun vialliset levyt on korvattu uusilla.

Tässä artikkelissa olen päättänyt käyttää ylimääräisiä laitteita ryhmän luomiseen uudestaan uusilla levyillä ja välttää sekaannusta alkuperäisten epäonnistuneiden asemien kanssa.

Kun sinulta kysytään jatkoa taulukon kirjoittamista, kirjoita Y ja paina Enter. Matriisi tulisi aloittaa ja sinun pitäisi pystyä seuraamaan sen etenemistä:

# watch -n 1 cat /proc/mdstat

Kun prosessi on valmis, sinun pitäisi pystyä käyttämään RAID-sisältöäsi:

Yhteenveto

Tässä artikkelissa olemme tarkastelleet, kuinka toipua RAID-epäonnistumisista ja redundanssitappioista. Sinun on kuitenkin muistettava, että tämä tekniikka on tallennusratkaisu ja EI korvaa varmuuskopioita.

Tässä oppaassa esitetyt periaatteet koskevat kaikkia RAID-asetuksia, samoin kuin käsitteitä, jotka käsittelemme tämän sarjan seuraavassa ja viimeisessä oppaassa (RAID-hallinta).

Jos sinulla on kysyttävää tästä artikkelista, voit lähettää meille muistiinpanon alla olevan kommenttilomakkeen avulla. Me odotamme yhteydenottoasi!