Weboldal keresés

Az adatok helyreállítása és a meghibásodott szoftveres RAID újraépítése – 8. rész


Ennek a RAID-sorozatnak az előző cikkeiben a nulláról a RAID-hőssé vált. Áttekintettünk több szoftveres RAID-konfigurációt, és elmagyaráztuk mindegyikük lényegét, valamint azokat az okokat, amelyek miatt az adott forgatókönyvtől függően az egyik vagy a másik felé hajlik.

Ebben az útmutatóban megvitatjuk, hogyan lehet újraépíteni egy szoftveres RAID-tömböt adatvesztés nélkül lemezhiba esetén. A rövidség kedvéért csak egy RAID 1 beállítást veszünk figyelembe – de a fogalmak és parancsok minden esetre egyaránt vonatkoznak.

RAID tesztelési forgatókönyv

Mielőtt továbblépne, győződjön meg arról, hogy beállított egy RAID 1 tömböt a sorozat 3. részében található utasítások szerint: A RAID 1 (tükör) beállítása Linux alatt.

Jelen esetünkben az egyetlen változatok a következők:

1) a CentOS (v7) verziója, amely eltér a cikkben használt verziótól (v6.5), és
2) különböző lemezméretek a /dev/sdb és a /dev/sdc számára (mindegyik 8 GB).

Ezenkívül, ha a SELinux be van kapcsolva kényszerítő módban, akkor hozzá kell adnia a megfelelő címkéket ahhoz a könyvtárhoz, ahová a RAID-eszközt csatlakoztatni fogja. Ellenkező esetben ez a figyelmeztető üzenet fog megjelenni, miközben megpróbálja felcsatolni:

Ezt a következő futtatással javíthatja:


restorecon -R /mnt/raid1

A RAID-figyelés beállítása

Számos oka lehet annak, hogy egy tárolóeszköz meghibásodhat (az SSD-k azonban nagymértékben csökkentették ennek az esélyét), de az októl függetlenül biztos lehet benne, hogy bármikor előfordulhatnak problémák, és fel kell készülnie a meghibásodott eszköz cseréjére. részében, valamint hogy biztosítsuk adatainak elérhetőségét és integritását.

Először is egy jó tanács. Még akkor is, ha ellenőrizheti a /proc/mdstat elemet a RAID-ek állapotának ellenőrzése érdekében, van egy jobb és időtakarékos módszer, amely az mdadm futtatását jelenti a monitor + vizsgálatban. módban, amely e-mailben figyelmeztetést küld egy előre meghatározott címzettnek.

Ennek beállításához adja hozzá a következő sort az /etc/mdadm.conf fájlhoz:


MAILADDR user@<domain or localhost>

Esetemben:


MAILADDR gacanepa@localhost

Az mdadm monitor + szkennelés módban való futtatásához adja hozzá a következő crontab bejegyzést rootként:


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

Alapértelmezés szerint az mdadm 60 másodpercenként ellenőrzi a RAID-tömböket, és figyelmeztetést küld, ha hibát talál. Módosíthatja ezt a viselkedést, ha hozzáadja a --delay opciót a fenti crontab bejegyzéshez a másodpercek mennyiségével együtt (például a --delay 1800 30 percet jelent).

Végül győződjön meg arról, hogy telepítve van egy Mail User Agent (MUA), például a mutt vagy a mailx. Ellenkező esetben nem kap értesítést.

Egy percen belül látni fogjuk, hogyan néz ki az mdadm által küldött figyelmeztetés.

Meghibásodott RAID-tárolóeszköz szimulálása és cseréje

A RAID-tömb egyik tárolóeszközével kapcsolatos probléma szimulálásához a --manage és a --set-faulty opciókat fogjuk használni az alábbiak szerint:


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

Ez azt eredményezi, hogy a /dev/sdc1 hibásként lesz megjelölve, amint azt a /proc/mdstat fájlban láthatjuk:

Ennél is fontosabb, hogy nézzük meg, kaptunk-e e-mailes figyelmeztetést ugyanazzal a figyelmeztetéssel:

Ebben az esetben el kell távolítania az eszközt a szoftveres RAID tömbből:


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

Ezután fizikailag eltávolíthatja a gépről, és pótalkatrészre cserélheti (/dev/sdd, ahol korábban létrehoztak egy fd típusú partíciót):


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

Szerencsére a rendszer automatikusan elkezdi újraépíteni a tömböt az imént hozzáadott résszel. Ezt úgy tudjuk tesztelni, hogy a /dev/sdb1 elemet hibásnak jelöljük, eltávolítjuk a tömbből, és megbizonyosodunk arról, hogy a tecmint.txt fájl továbbra is elérhető a / címen. mnt/raid1:


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

A fenti képen jól látható, hogy miután a /dev/sdd1 tömbhöz hozzáadta a /dev/sdc1 helyére, az adatok újraépítését a rendszer beavatkozás nélkül automatikusan végrehajtotta. részünkről.

Bár nem feltétlenül kötelező, jó ötlet, ha kéznél van egy tartalék eszköz, hogy a hibás eszköz egy jó meghajtóra való cseréje pillanatok alatt elvégezhető legyen. Ehhez adjuk hozzá újra a /dev/sdb1 és a /dev/sdc1 fájlokat:


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

Felépülés a redundancia veszteségéből

Ahogy korábban kifejtettük, az mdadm automatikusan újraépíti az adatokat, ha egy lemez meghibásodik. De mi történik, ha a tömbben lévő két lemez meghibásodik? Szimuláljunk egy ilyen forgatókönyvet a /dev/sdb1 és a /dev/sdd1 hibásként való megjelölésével:


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

Ha a tömböt úgy próbálják újra létrehozni, ahogyan azt most létrehozták (vagy a --assume-clean kapcsolóval) adatvesztést okozhatnak, ezért ezt végső megoldásként kell hagyni.

Próbáljuk meg visszaállítani az adatokat a /dev/sdb1 fájlból, például egy hasonló lemezpartícióba (/dev/sde1 – vegye figyelembe, hogy ehhez létre kell hoznia egy partíciót a folytatás előtt írja be az fd kifejezést a /dev/sde mappába) a ddrescue használatával:


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

Kérjük, vegye figyelembe, hogy eddig a pontig nem érintettük a /dev/sdb vagy a /dev/sdd partíciókat, amelyek a RAID-tömb részét képezték.

Most építsük újra a tömböt a /dev/sde1 és a /dev/sdf1 használatával:


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

Kérjük, vegye figyelembe, hogy valós helyzetben általában ugyanazokat az eszközneveket fogja használni, mint az eredeti tömbnél, azaz a /dev/sdb1 és a /dev/sdc1 után a meghibásodott lemezeket újakra cserélték.

Ebben a cikkben úgy döntöttem, hogy extra eszközöket használok a tömb újbóli létrehozásához vadonatúj lemezekkel, és elkerülöm az összetévesztést az eredeti meghibásodott meghajtókkal.

Amikor megkérdezi, hogy folytatja-e a tömb írását, írja be az Y kifejezést, és nyomja meg az Enter billentyűt. A tömböt el kell indítani, és meg kell tudnia nézni a folyamatát a következőkkel:


watch -n 1 cat /proc/mdstat

Amikor a folyamat befejeződik, hozzá kell férnie a RAID tartalmához:

Összegzés

Ebben a cikkben áttekintettük, hogyan lehet helyreállítani a RAID meghibásodásokat és a redundancia elvesztését. Ne feledje azonban, hogy ez a technológia tárolási megoldás, ésNEM helyettesíti a biztonsági mentéseket.

Az ebben az útmutatóban ismertetett alapelvek minden RAID-beállításra egyaránt vonatkoznak, csakúgy, mint azok a fogalmak, amelyekkel a sorozat következő és utolsó útmutatójában (RAID-kezelés) foglalkozunk.

Ha bármilyen kérdése van ezzel a cikkel kapcsolatban, nyugodtan írjon nekünk az alábbi megjegyzés űrlap segítségével. Várom válaszukat!