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!