it-swarm-eu.dev

Jak zkontrolovat 'mdadm' RAID během provozu?

Začínám získávat sbírku počítačů doma a na jejich podporu mám své „serverové“ linuxové pole s polem RAID.

Jeho aktuálně mdadmRAID-1, chystat se RAID-5 jednou mám více jednotek (a pak RAID-6 Doufám). Slyšel jsem však různé příběhy o poškození dat na jednom disku a nikdy si nevšimnete kvůli použití druhého disku, až do okamžiku, kdy selže první disk, a zjistíte, že váš druhý disk je také zašroubovaný (a 3., 4. , 5. pohon).

Je zřejmé, že zálohy jsou důležité a já se o to také starám. Vím však, že jsem již dříve viděl skripty, které tvrdí, že pomáhají proti tomuto problému a umožňují vám zkontrolovat RAID během jeho provozu. Když však nyní znovu hledám tyto skripty, je pro mě těžké najít něco, co by se podobalo tomu, co jsem předtím běžel, a cítím, že jsem zastaralý a nerozumím tomu, co se změnilo.

Jak byste zkontrolovali běžící RAID, abyste se ujistili, že všechny disky stále normálně probíhají?

Sleduji SMART na všech jednotkách) a také mám mdadm nastaveno, aby mi v případě selhání zaslalo e-mail, ale rád bych také své disky občas "zkontroloval".

43

Smyslem RAID s redundancí je to, že to bude pokračovat tak dlouho, jak jen to půjde, ale samozřejmě zjistí chyby, které jej uvedou do degradovaného režimu, jako je například selhávající disk. Aktuální stav pole můžete zobrazit pomocí mdadm -D:

# mdadm -D /dev/md0
<snip>
       0       8        5        0      active sync   /dev/sda5
       1       8       23        1      active sync   /dev/sdb7

Kromě toho je návratový stav mdadm -D Nenulový, pokud existuje nějaký problém, jako je například selhání součásti (1 označuje chybu, kterou režim RAID kompenzuje, a 2 označuje úplnou selhání).

Rychlý přehled všech stavů zařízení RAID získáte také na /proc/mdstat. Informace o RAID zařízení můžete získat také v /sys/class/block/md*/md/*; viz Documentation/md.txt v dokumentaci k jádru. Lze také zapisovat některé položky /sys; například můžete provést úplnou kontrolu md0 pomocí echo check >/sys/class/block/md0/md/sync_action.

Kromě těchto kontrol na místě vás mdadm může upozornit, jakmile se stane něco špatného. Ujistěte se, že máte MAILADDR root V /etc/mdadm.conf (Některé distribuce (např. Debian) to nastavují automaticky). Poté obdržíte e-mailové upozornění, jakmile dojde k chybě (degradované pole) .

Ujistěte se, že přijímáte poštu odesílanou do kořenového adresáře na místním počítači (některé moderní distribuce to vynechávají, protože se domnívají, že veškerý e-mail prochází externími poskytovateli - ale pro každého vážného správce systému je nutný příjem místní pošty). Vyzkoušejte to zasláním kořenové pošty: echo hello | mail -s test [email protected]. Správné nastavení e-mailu obvykle vyžaduje dvě věci:

  • Na místním počítači spusťte MTA . MTA musí být nastavena alespoň tak, aby umožňovala místní doručování pošty. Všechny distribuce přicházejí s vhodnými MTA, vyberte cokoli (ale ne nullmailer, pokud chcete, aby byl e-mail doručován lokálně).
  • Přesměrujte poštu směřující do systémových účtů (alespoň root) na adresu, kterou pravidelně čtete. Může to být váš účet v místním počítači nebo externí e-mailová adresa. U většiny MTA lze adresu nakonfigurovat v /etc/aliases; měli byste mít řádek jako

    root: djsmiley2k
    

    pro místní dodávku, nebo

    root: [email protected]
    

    pro vzdálené doručení. Pokud zvolíte vzdálené doručení, ujistěte se, že je vaše MTA nakonfigurována pro toto. V závislosti na vaší MTA bude pravděpodobně nutné po úpravě /etc/aliases Spustit příkaz newaliases.

Když je online, můžete vynutit kontrolu celého pole. Například zkontrolovat pole na /dev/md0, spustit jako root:

echo check > /sys/block/md0/md/sync_action

Mám také úlohu cron, která spustí následující příkaz jednou za měsíc:

tar c /dir/of/raid/filesystem > /dev/null

Nejedná se o důkladnou kontrolu samotné jednotky, ale nutí systém pravidelně ověřovat, že (téměř) každý soubor lze úspěšně načíst z disku. Ano, některé soubory budou místo disku načteny z mezipaměti. Ale zjistím, že pokud je soubor v mezipaměti, pak byl disk nedávno načten nebo se chystá zapsat na disk a některá z těchto operací také odhalí chyby jednotky. Každopádně spuštění této úlohy testuje nejdůležitější kritérium pole RAID („Mohu úspěšně číst svá data?“) A za tři roky, kdy jsem provozoval své pole, jednou jsem měl disk špatný, bylo to tento příkaz to objevil.

Jedno malé varování je, že pokud je váš souborový systém velký, bude tento příkaz trvat dlouho; můj systém trvá asi 6 hodin/TiB. Spustím to pomocí ionice, takže zbytek systému se při kontrole disku nezastaví a nezastaví se:

ionice -c3 tar c /dir/of/raid/filesystem > /dev/null
20
stharward

balíček obsahuje soubor „mdadm“ systému Debian a Ubuntu

/etc/cron.d/mdadm

který postupně střídá první neděli každého měsíce příkaz

/usr/share/mdadm/checkarray --cron --all --idle --quiet

to zkontroluje konzistenci všech vašich polí (pokud nenastavíte AUTOCHECK na false v / etc/default/mdadm). Uživateli s oprávněním root bude odeslána zpráva (ujistěte se, že takové e-maily obdržíte).

11
am70

Tuto jednoduchou funkci používám ke kontrole /proc/mdstat:

#Health of RAID array
raid() { awk '/^md/ {printf "%s: ", $1}; /blocks/ {print $NF}'  /proc/mdstat; }
8
jasonwryan