RAID-övervakning LSI

Inledning

Att använda RAID är ett bra steg till att öka driftsäkerheten på en server. Med minst RAID 1 så kan en disk gå sönder utan att du förlorar data eller att systemet kraschar. Men har man ingen övervakning så man inte vet om en disk är sönder eller inte, så spelar RAID inte lika stor roll längre. I denna artikel så visar vi hur du på ett smidigt sätt kan övervaka din RAID i Linux så du vet när en trasig disk bör bytas ut.

StorCLI eller MegaCLI?

StorCLI är ett program du använder för att hantera ditt LSI MegaRaid kort med textbaserade kommandon. StorCLI är även efterföljaren till MegaCLI och båda program finns på de flesta stora plattformar. Den största skillnadne mellan StorCLI och MegaCLI är de olika kommandon och output du får när du konfigurerar din raidkontroller.

I denna artikel så lägger vi fokus på Linux och MegaCLI.

Har jag en LSI-kontroller?

Är man osäker på att vilken RAID-kontroller man har och vill inte göra en omstart av servern för att se under bootning så kan man skriva följande kommando i en terminal

dmesg |grep LSI

Har du en LSI-kontroller så får du en liknande output.

[    4.361827] mpt2sas0: LSISAS2308: FWVersion(19.00.00.00), ChipRevision(0x05), BiosVersion(07.37.00.00)
[   12.021131] scsi 0:1:0:0: Direct-Access     LSI      Logical Volume   3000 PQ: 0 ANSI: 6

Övervakning

De två mest vanliga sett att övervaka en RAID är antingen att vara fysiskt vid servern och se ifall någon lampa på servern indikerar att en disk är trasig, dock så är detta inte så praktiskt när servern står i en serverhall och det visar även bara om en disk är trasig inte om det är något fel på RAID'n

Det andra sättet är via en terminal och använda programmen StorCLI eller MegaCLI och få mer djupgående information om din raid.

För att kolla över din RAID använd följande kommando

storcli /c0 show all
(c0 indikerar vilken kontroller du kolla, oftast är det 0 om du bara har en)

Använder du MegaCLI

megacli -AdpAllInfo -aALL

Automatisera

Det är inte optimalt att manuellt kolla av din RAID hela tiden så istället så ska vi automatisera processen.

Saker du behöver

  • sftp klient (scp/winscp)
  • alien (om du använder en distrubitoion som inte använder .rpm)
  • Fungerande SMTP klient så som postfix eller liknande
  • Editor (nano eller vim)
  1. Börja med att ladda hem och packa up MegaCLI. Du kan tyvärr inte ladda hem denna via wget utan måste göras via en webläsare och sedan flyttas till servern med scp eller winscp.

  2. Ladda hem alien

sudo apt-get update
apt-get install alien
  1. När installationen är klar kör fölande kommando för att konvertera .rmp till .deb
alien MegaCli-8.07.14-1.noarch.rpm
  1. När du har en .deb version av filen så är det bara till att installera.
dpkg -i megacli_8.07.14-2_all.deb
  1. När installationen är klar så flytta MegaCli64 till /usr/local/bin/
mv /opt/MegaRAID/MegaCli/MegaCli64 /usr/local/bin/MegaCli64
  1. I /usr/local/bin så skapar du en fil som heter raidcheck.sh och editerar filen med vim eller nano och klistrar in följande kod.
#LSI MegaCli
#!/bin/bash
STATUS=`/usr/local/bin/MegaCli64 -AdpAllInfo -aALL -NoLog |egrep "Degraded|Failed Disk|Critical Disks" |grep -v 0`;

if [[ $STATUS == *[1-1]* ]]
then
echo -e "Subject: RAID WARNING @ `hostname` - A drive has status: $STATUS"|/usr/sbin/sendmail your@email.com
echo -e "Warning, There is a problem with your raid.";
echo -e "$STATUS";
fi

Du behöver byta ut your@email.com i skriptet till den eposten som skall ta emot varningar för raiden.

  1. För att göra raidcheck.sh körbar
chmod +x raidcheck.sh
  1. Öppna crontab och klistra in följande
10  *   *   *   *   /usr/local/bin/raidcheck.sh

Synpunkter

Vi rekommenderar att du testar skriptet så att det verkligen fungerar innan du sätter det i skarp drift. Skriptet är gjort för att passa de flesta distributioner, men det är inte en garanti att det passar just er server.

Hittar du inte det du söker?

Kontakta oss gärna för mer information. Vi hjälper dig att komma fram till den bästa lösningen för dina behov.

Skicka e-post Ring 0200-23 88 00