Jak obnovit data a znovu vytvořit neúspěšné softwarové pole RAID – část 8
V předchozích článcích této série RAID jste přešli z nuly na RAID hrdinu. Prozkoumali jsme několik softwarových konfigurací RAID a vysvětlili jsme základy každé z nich spolu s důvody, proč byste se měli přiklonit k jedné nebo druhé v závislosti na vašem konkrétním scénáři.
V této příručce probereme, jak v případě selhání disku přestavět softwarové pole RAID bez ztráty dat. Pro stručnost budeme zvažovat pouze nastavení RAID 1 – ale koncepty a příkazy platí pro všechny případy stejně.
Scénář testování RAID
Než budete pokračovat, ujistěte se, že jste nastavili pole RAID 1 podle pokynů uvedených v části 3 této série: Jak nastavit pole RAID 1 (Mirror) v systému Linux.
Jediné variace v našem současném případě budou:
1) jinou verzi CentOS (v7), než která je použita v tomto článku (v6.5), a
2) různé velikosti disku pro /dev/sdb a /dev/sdc (8 GB každý).
Kromě toho, pokud je SELinux povolen v režimu vynucení, budete muset přidat odpovídající štítky do adresáře, kam budete připojovat zařízení RAID. V opačném případě se při pokusu o připojení setkáte s touto varovnou zprávou:
Můžete to opravit spuštěním:
restorecon -R /mnt/raid1
Nastavení monitorování RAID
Existuje celá řada důvodů, proč může úložné zařízení selhat (SSD však výrazně snížily pravděpodobnost, že k tomu dojde), ale bez ohledu na příčinu si můžete být jisti, že problémy mohou nastat kdykoli a musíte být připraveni vyměnit vadné zařízení. a zajistit dostupnost a integritu vašich dat.
Nejprve jedna rada. I když můžete zkontrolovat /proc/mdstat a zkontrolovat stav svých RAID, existuje lepší a časově úspornější metoda, která spočívá ve spuštění mdadm v monitoru + skenování. režim, který bude odesílat upozornění e-mailem předem definovanému příjemci.
Chcete-li to nastavit, přidejte následující řádek do /etc/mdadm.conf:
MAILADDR user@<domain or localhost>
V mém případě:
MAILADDR gacanepa@localhost
Chcete-li spustit mdadm v režimu sledování + skenování, přidejte jako root následující položku crontab:
@reboot /sbin/mdadm --monitor --scan --oneshot
Ve výchozím nastavení mdadm zkontroluje pole RAID každých 60 sekund a v případě zjištění problému odešle upozornění. Toto chování můžete upravit přidáním volby --delay
do položky crontab výše spolu s množstvím sekund (například --delay
1800 znamená 30 minut).
Nakonec se ujistěte, že máte nainstalovaný Mail User Agent (MUA), jako je mutt nebo mailx. V opačném případě neobdržíte žádná upozornění.
Za minutu uvidíme, jak vypadá upozornění zaslané mdadm.
Simulace a výměna neúspěšného úložného zařízení RAID
K simulaci problému s jedním z úložných zařízení v poli RAID použijeme možnosti --manage
a --set-faulty
takto:
mdadm --manage --set-faulty /dev/md0 /dev/sdc1
Výsledkem bude, že /dev/sdc1 bude označen jako vadný, jak můžeme vidět v /proc/mdstat:
Ještě důležitější je, podívejme se, zda jsme obdrželi e-mailové upozornění se stejným upozorněním:
V tomto případě budete muset odebrat zařízení ze softwarového pole RAID:
mdadm /dev/md0 --remove /dev/sdc1
Poté jej můžete fyzicky odebrat z počítače a nahradit jej náhradním dílem (/dev/sdd, kde byl dříve vytvořen oddíl typu fd):
mdadm --manage /dev/md0 --add /dev/sdd1
Naštěstí pro nás systém automaticky začne znovu sestavovat pole s částí, kterou jsme právě přidali. Můžeme to otestovat tak, že označíme /dev/sdb1 jako vadné, odstraníme jej z pole a ujistíme se, že soubor tecmint.txt je stále přístupný na / mnt/raid1:
mdadm --detail /dev/md0
mount | grep raid1
ls -l /mnt/raid1 | grep tecmint
cat /mnt/raid1/tecmint.txt
Obrázek výše jasně ukazuje, že po přidání /dev/sdd1 do pole jako náhrady za /dev/sdc1 systém provedl automatické sestavení dat bez zásahu z naší strany.
I když to není striktně vyžadováno, je skvělý nápad mít po ruce náhradní zařízení, aby bylo možné proces výměny vadného zařízení za dobrý disk provést během okamžiku. Chcete-li to provést, znovu přidejte /dev/sdb1 a /dev/sdc1:
mdadm --manage /dev/md0 --add /dev/sdb1
mdadm --manage /dev/md0 --add /dev/sdc1
Zotavení ze ztráty redundance
Jak bylo vysvětleno dříve, mdadm automaticky obnoví data, když jeden disk selže. Co se ale stane, když selžou 2 disky v poli? Pojďme simulovat takový scénář označením /dev/sdb1 a /dev/sdd1 jako chybné:
umount /mnt/raid1
mdadm --manage --set-faulty /dev/md0 /dev/sdb1
mdadm --stop /dev/md0
mdadm --manage --set-faulty /dev/md0 /dev/sdd1
Pokusy o opětovné vytvoření pole stejným způsobem, jakým bylo v tuto chvíli vytvořeno (nebo pomocí volby --assume-clean
), mohou vést ke ztrátě dat, takže by to mělo být ponecháno jako poslední možnost.
Zkusme obnovit data z /dev/sdb1, například do podobného diskového oddílu (/dev/sde1 – všimněte si, že to vyžaduje vytvoření oddílu zadejte fd do /dev/sde, než budete pokračovat) pomocí ddrescue:
ddrescue -r 2 /dev/sdb1 /dev/sde1
Upozorňujeme, že až do tohoto okamžiku jsme se nedotkli /dev/sdb nebo /dev/sdd, oddílů, které byly součástí pole RAID.
Nyní znovu sestavíme pole pomocí /dev/sde1 a /dev/sdf1:
mdadm --create /dev/md0 --level=mirror --raid-devices=2 /dev/sd[e-f]1
Upozorňujeme, že v reálné situaci obvykle použijete stejné názvy zařízení jako u původního pole, tedy /dev/sdb1 a /dev/sdc1 za vadné disky byly nahrazeny novými.
V tomto článku jsem se rozhodl použít další zařízení k opětovnému vytvoření pole se zcela novými disky a vyhnout se záměně s původními neúspěšnými disky.
Až budete dotázáni, zda chcete pokračovat v psaní pole, zadejte Y a stiskněte Enter. Pole by mělo být spuštěno a měli byste být schopni sledovat jeho průběh pomocí:
watch -n 1 cat /proc/mdstat
Po dokončení procesu byste měli mít přístup k obsahu vašeho RAID:
souhrn
V tomto článku jsme se zabývali tím, jak se zotavit po selháních RAID a ztrátách redundance. Je však třeba si uvědomit, že tato technologie je řešením úložiště a NENAHRAzuje zálohy.
Principy vysvětlené v této příručce platí pro všechna nastavení RAID stejně, stejně jako koncepty, kterými se budeme zabývat v další a poslední příručce této řady (správa RAID).
Máte-li jakékoli dotazy k tomuto článku, neváhejte nám napsat poznámku pomocí formuláře níže. Těšíme se na setkání s Vámi!