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!