sslug-teknik team mailing list archive
-
sslug-teknik team
-
Mailing list archive
-
Message #47860
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