Monitoring Linux Raid
- Úvod
- Zjištení stavu a report
- Naplánování pravidelné kontroly
- Jak zkontrolovat nastavení monitoringu, simulace chyby pole
- Obsah výpisu pomocí cat /proc/mdstat
- Jiné možnosti hlídání
- Zdroje informací
Úvodem
Linxový Raid Vás neochrání pře zásahem blesku, přepjetí, požáru ale dovede ochránit data při selhání jednoho disku (Raid 1).Je ovšem třeba včas vědět, že některý disk nefunguje a byl odpojen. Existuje více způsobů jak se to dozvědět včas.
Vše popisované se vztahuje k Raid-u 1 tj. zrcadlení.
Zjištění stavu a report
Jedna z možností je přes /proc/mdstat si zjišťovat stav pomocí skriptu a odeslat hlášení mailem:
#!/bin/bash
ADMIN="jmeno@domena.primarni jmeno@domena.zalozni"
HOSTNAME=`/bin/hostname`
FROM="raidmonitor@$HOSTNAME"
if egrep "\[.*_.*\]" /proc/mdstat  > /dev/null
then
  logger -p daemon.error "mdcheck: Failure of one or more software RAID devices"
  echo "RAID ERROR !!! - Failure of one or more software RAID devices on ${HOSTNAME}" | /usr/bin/mailx \
    -s "RAID MONITOR: Software RAID device failure on ${HOSTNAME}" -r ${FROM} ${ADMIN}
fi
ADMIN udává kam se má poslat chybové hlášení
FROM  je pole from v odeslaném emailu
Script zapíše do logu a odešle email pomocí
/usr/bin/mailxpřípadně opravit na
/usr/bin/mailči jinou cestu.
Naplánování pravidelné kontroly
Pomocí příkazu (na roota)crontab -evložíme řádek pro kontrolu 1x denně v 6:10
10 6 * * * /moje/cesta/raidmonitor > /dev/nullnebo po kontrolu každou druhou hodinu a 10 minut začínaje v 0:10 (pozor v případě selhání pošle každou sudou hodinu nový email)
10 */2 * * * /moje/cesta/raidmonitor > /dev/nullpřípadně jiným zápisem nebo zápisy.
Kdo nezná příkazi 'vi' editoru, tak ať se základní naučí :)
- i - aktivuje vkládací mód, lze psát či vkládat (nebo klávesa insert, POZOR stisknout jen 1×)
- Klávesa Esc - ukončí editační mód a přepne do příkazového
- :w - zapíše soubor (v příkazovém módu, předem stiskni klávesu Esc)
- :q - exit - ale jen pokud je soubor zapsaný či nezměněný (v příkazovém módu)
- :q! - exit BEZ uložení změn (v příkazovém módu)
- :wq - uloží soubor a exit (v příkazovém módu)
- Pokud nefungují šipky, tak v příkazovém módu
  - k - 1× nahoru
- j - 1× dolů
- h - 1× vlevo
- l - 1× vpravo ( malé eℓ )
 
- :set nowrap - příjemný příkaz při zobrazení například logů
- :set background=dark - příjemný příkaz při práci na tmavém pozadí (např. přes putty)
- základní příkazy
Indikuje to obvykle výpisem 'crontab: installing new crontab'
Jak zkontrolovat nastavení monitoringu, simulace chyby pole
Lze na linux raidu tímto postupem:- Příkaz: /sbin/mdadm /dev/md0 --fail /dev/sdb1 --remove /dev/sdb1 nastaví u zařízení /dev/md0 partition /dev/sdb1 na chybnou
- Příkazem: cat /proc/mdstat se lehce přesvědčíme že namísto[UU] uvidíme[U_] 
- Nyní si lze ověřit spuštením výše uvedeného skriptu jestli e-mail dojde, nebo jen počka na provedení naplánovaného spuštění
- Pravděpodobně by bylo vhodné zas raid uvést do činosti, protože nyní je jeden z disků odpojen.
 Do původního stavu to uevedne pomocí příkazu:mdadm /dev/md0 --add /dev/sdb1 
- A pomocí: cat /proc/mdstat se přesvědčíme, že stav je opět [UU].
 POZOR může to trvat, docházi k rebuildu raidu.
- Detailní výpis o raidu (k 1. raid poli)mdadm --detail /dev/md0 
Obsah výpisu pomocí cat /proc/mdstat
- Vše OK- md0 : active raid1 sda1[0] sdb1[1] 97152960 blocks [2/2] [UU]
- CHYBA - sdb1 je odpojen- md0 : active raid1 sda1[0] sdb1[1] 97152960 blocks [2/1] [U_]
- Probíhá rebuild- md0 : active raid1 sda1[0] sdb1[1] 97152960 blocks [2/1] [U_] [========>............] recovery = 43.9% (42713908/97152960) \ finish=82.4min speed=11002K/sec
Jiné možnosti hlídání
Vhodnou kombinací je kontrola S.M.A.R.T informací - ale nečekal bych žádné zázrakay :)Je možné využít i jiné možnosti jako třeba:
mdadm --monitor -f --mail=jmeno@domena.primarni --delay=1800 /dev/md0viz mdadm monitoring Volil jsem výše uvedenou variantu, mám pocit, že to mám pod kontrolou :).
Zdroje informací:
- man mdadm
   - mdadm --detail /dev/mdx (x = pořadové číslo pole)
 
- Wikipedia vi editor - česky
- man crontab
- man logger
- Linux raid manuál
- Wikipedia Cron
- Bash manual

