← Back to team overview

sslug-teknik team mailing list archive

Re: Software RAID info s�ges

 

"Anders Nielsen" <anielsen@xxxxxxx> wrote:
> Jeg har sådan set fået det til at spille (Redhats installationsprogram
> klarer dette). Men jeg savner informationer om overvågning, logning af
> fejl, recovery, konvertering af 2 ens partitioner til raid-1 (hw-raid
> til software-raid) med mere.

Jeg aner heller intet om overvågning, af software-RAID, så jeg lavedet
nedenstående naive script til at holde øje med om begge diske (RAID1) er
oppe. Scriptet har jeg smidt i /etc/cron.hourly/.
Det virker ved at der skal stå "[2/2]" i /proc/mdstat hvis to ud af to
raid-partitioner er oppe. Hvis der ikke gør det, skaber scriptet omtrent
sådan her hvis man tager strømmen fra den ene disk:

RAID FAILURE! Devices up: 0
Devices down: 3
FAILED:
md2 : active raid1 hda5[0] hdb5[1]
      12289600 blocks [1/2] [UU]
FAILED:
md0 : active raid1 hda3[0] hdb3[1]
      15358016 blocks [1/2] [UU]
FAILED:
md1 : active raid1 hda1[0] hdb1[1]
      10908032 blocks [1/2] [UU]



SCRIPTET: (Undskyld de lidt mærkelige og usigende variabelnavne):
##################################
#!/usr/bin/perl

$ENV{'PATH'} = '/bin:/usr/bin:/usr/local/bin';

@lines=`cat /proc/mdstat`;

$lastline="";
$devsOK=0;
$devs=0;
$failed="";

foreach(@lines) {
        chop($_);
        $hej=$_;
        if ($hej=~/\d\/\d/) {
                $devs++;
                ($muh1, $muh2) = /\[(\d)\/(\d)\]/;
                if ($muh1 == $muh2) {
                        $devsOK++;
                } else {
                        $failed .= "\nFAILED:\n$lastline\n$hej\n";
                }
        }
        $lastline=$hej;
}

if ($devs != $devsOK) {
print "\nRAID FAILURE! Devices up: $devsOK\nDevices down: " .
($devs-$devsOK) . "\n";
print "................................\n";
print $failed . "\n";
}







References