При хранении информации на RAID массиве создается иллюзия, что данные надежно защищены от потери в случае
выхода из строя одного из носителей. Но пока не проводится регулярный мониторинг состояния логического раздела,
можно просто своевременно не узнать об изменении состояния логического тома.
Ниже будет описан мониторинг состояния контроллера Adaptec.Для мониторинга контроллеров Adaptec можно использовать утилиту arcconf, входящую в состав Storage Manager'a.
Загрузить его можно по ссылке http://www.adaptec.com/en-US/downloads/
После установки, в случае Linux, rpm пакета появится директория /usr/StorMan/.
Команда для получения полной информации о контроллере:
# /usr/StorMan/arcconf getconfig 1
если появится ошибка вида
/usr/StorMan/arcconf: error while loading shared libraries:
libstdc++.so.5: cannot open shared object file: No such file or directory
нужно выполнить команду
# export LD_PRELOAD="/usr/StorMan/libstdc++.so.5"
Самой важной информацией является информация о состоянии логических дисков
# /usr/StorMan/arcconf getconfig 1 ld
Результат выполнения команды:
Controllers found: 1
Logical device information
Logical device number 0
Logical device name : tst
RAID level : 5
Status of logical device : Optimal
Size : 14300150 MB
...
Ключевой информацией является строка
Status of logical device : Optimal
Команда для получения информации о состоянии физических дисков
# /usr/StorMan/arcconf getconfig 1 ld
Дополнительную информацию о состоянии контроллера можно получить в лог файлах
# cat /usr/StorMan/RaidEvtA.log
Ниже я приведу скрипт, который проверяет состояние логического диска и, если он не в состоянии Optimal, отправляет e-mail
/usr/scripts/checkraid.pl
#!/usr/bin/perl
use Net::SMTP;
$opt=`/usr/StorMan/arcconf getconfig 1 ld | grep "Status of logical device" | grep "Optimal" -c`;
open (FH, ">> /var/log/raidcheck.log");
if ($opt==0) {
print (FH scalar(localtime));
print (FH " Problem with RAID!\n");
$date=`exec /bin/date '+%F %T'`;
chomp($date);
$smtp = Net::SMTP->new('mail.server-name.ru');
$smtp->mail(' expe@server-name.ru ');
$smtp->to('expe\@server-name.ru');
$smtp->data();
$smtp->datasend("To:expe\@server-name.ru \n");
$smtp->datasend("Subject: raid problem");
$smtp->datasend("\n");
$smtp->datasend("\n");
$smtp->datasend("[$date]Problem with raid on tst!");
$smtp->datasend("\n");
$smtp->dataend();
$smtp->quit;
print "Problem with raid!\n";
} else {
print (FH scalar(localtime));
print (FH " Status of raid is optimal\n");
print "Status of raid is optimal!\n";
};
close(FH);
URL: http://tips.compuserv.biz/index.php/component/content/articl...
Обсуждается: http://www.opennet.dev/tips/info/2136.shtml