Утилита MegaCli

Очень хорошее средство для мониторинга функционирования контролера и жёстких дисков под его управлением - утилита MegaCli.

Чтобы посмотреть свой контроллер:
lspci -vv | grep -i raid

Если пишет, что команда не найдена, нужно просто установить пакет:
yum install pciutils

Вывод команды примерно следующий:

Spoiler: Highlight to view

03:00.0 RAID bus controller: LSI Logic / Symbios Logic MegaRAID SAS 1078 (rev 04)
	Subsystem: Dell PERC 6/i Integrated RAID Controller

Установка MegaCli

Список поддерживаемых контроллеров в спойлере. Цитата с официального сайта:

Spoiler: Highlight to view

Release Date: 01/20/14
 
Supported Controllers
==================
 
MegaRAID SAS 9270-8i 
MegaRAID SAS 9271-4i 
MegaRAID SAS 9271-8i 
MegaRAID SAS 9271-8iCC 
MegaRAID SAS 9286-8e 
MegaRAID SAS 9286CV-8e 
MegaRAID SAS 9286CV-8eCC
MegaRAID SAS 9265-8i
MegaRAID SAS 9285-8e
MegaRAID SAS 9240-4i
MegaRAID SAS 9240-8i
MegaRAID SAS 9260-4i
MegaRAID SAS 9260CV-4i
MegaRAID SAS 9260-8i
MegaRAID SAS 9260CV-8i
MegaRAID SAS 9260DE-8i
MegaRAID SAS 9261-8i
MegaRAID SAS 9280-4i4e
MegaRAID SAS 9280-8e
MegaRAID SAS 9280DE-8e
MegaRAID SAS 9280-24i4e
MegaRAID SAS 9280-16i4e
MegaRAID SAS 9260-16i
MegaRAID SAS 9266-4i
MegaRAID SAS 9266-8i
MegaRAID SAS 9285CV-8e
MegaRAID SAS 8704ELP
MegaRAID SAS 8704EM2
MegaRAID SAS 8708ELP
MegaRAID SAS 8708EM2 
MegaRAID SAS 8880EM2
MegaRAID SAS 8888ELP
MegaRAID SAS 8308ELP*
MegaRAID SAS 8344ELP*
MegaRAID SAS 84016E*
MegaRAID SAS 8408E*
MegaRAID SAS 8480E*
MegaRAID SATA 300-8ELP*
 
*These older controllers should work but have not been tested.

Скачать можно прямо из этой статьи:
wget http://alexxkn.ru/sites/default/files/attachments/MegaCli-8.07.14-1.noarch.rpm

Устанавливаем
rpm -i MegaCli-8.07.14-1.noarch.rpm

Проверяем, что утилита работает

MegaCli -v
      MegaCLI SAS RAID Management Tool  Ver 8.07.14 Dec 16, 2013
    (c)Copyright 2013, LSI Corporation, All Rights Reserved.

Может быть, что команда не будет найдена. Это связано с тем, что ссылка запуска не создаётся автоматически.
Чтобы всё работало корректно нужно выполнить:
ln -s /opt/MegaRAID/MegaCli/MegaCli64 /usr/bin/MegaCli

Итак, кратко о главных возможностях:

  1. Информация о адаптере:
    MegaCli -AdpAllinfo -aAll
  2. Информация о конфигурации:
    MegaCli -CfgDsply -aAll
    Тут можно увидеть строчку, под названием RAID Level. К сожалению, расшифровка не совсем очевидна (нет?). Вот возможные варианты работы Вашего рейда:

    Raid levels: 
    RAID0 : Primary-0, Secondary-0, RAID Level Qualifier-0 
    RAID1 : Primary-1, Secondary-0, RAID Level Qualifier-0 
    RAID5 : Primary-5, Secondary-0, RAID Level Qualifier-3 
    RAID6 : Primary-6, Secondary-0, RAID Level Qualifier-3 
    RAID10 : Primary-1, Secondary-3, RAID Level Qualifier-0
  3. Информация о всех физических устройствах
    MegaCli -PDList -aAll
  4. Информация о всех виртуальных устройствах
    MegaCli -LDInfo Lall -aAll
  5. Логи контроллера (много!):
    MegaCli -FwTermLog -Dsply -aALL
  6. Краткая полезная информация по адаптеру:
    MegaCli -ShowSummary -a0
  7. Очистка списка событий:
    MegaCli -AdpEventLog -Clear -a0
  8. Время на адаптере:
    MegaCli -AdpGetTime -aALL
  9. Количество физических дисков на первом адаптере:
    MegaCli -PDGetNum -a0

Это далеко не полный список возможностей! Кому интересно вот тут можно почитать ещё.

Вернёмся к скрипту проверки нормального состояния контроллера. Для этого нам будет необходимо знать кол-во жёстких дисков, установленных в нём. Для примера, у нас их 6. Вот пример скрипта, который будет проверять "живность" HDD и уведомлять, если что-то не так. Уже пару раз спал.

#!/bin/bash
count2=`/opt/MegaRAID/MegaCli/MegaCli64 -LDInfo -Lall -aALL | grep Optimal | wc -l`
if [ $count2 -lt 1 ]; then echo "`/opt/MegaRAID/MegaCli/MegaCli64   -LDInfo -Lall -aALL`" |  mail -s "problem with raid YOUR_IP" itsme@gmail.com ; fi
count1=`/opt/MegaRAID/MegaCli/MegaCli64 -PDList -aALL | grep Online | wc -l`
if [ $count1 -lt 6 ]; then echo "`/opt/MegaRAID/MegaCli/MegaCli64 -PDList -aALL`" | mail -s "problem with disks YOUR_IP" itsme@gmail.com; fi

Собственно, он проверяет статусы ответов контроллера и дисков и если что-то не так - отправляет сообщение на почту.

Конец.

Приложение: 

Комментарии

а как удалить старую версию MegaCLI SAS RAID Management Tool Ver 8.00.48 Mar 23, 2011?

Это зависит от того, какая ОС и как был установлен прошлый пакет.

доброе время суток!
не совсем понятно, куда последний скрипт на проверку надо записать файл и как его проверить на работу способность
Напишите пожалуйста куда нужно сохранить этот скрипт и какой командой его проверить.
Заранее спасибо

Доброго!
Скрипт можно записать в любой файл =) Ну, например, у меня он находится по адресу /root/scripts/disk_monitoring.sh

Можете сделать следующее:

mkdir /root/scripts/
cat << 'EOF' > /root/scripts/disk_monitoring.sh
#!/bin/bash
count2=`/opt/MegaRAID/MegaCli/MegaCli64 -LDInfo -Lall -aALL | grep Optimal | wc -l`
if [ $count2 -lt 1 ]; then echo "`/opt/MegaRAID/MegaCli/MegaCli64   -LDInfo -Lall -aALL`" |  mail -s "problem with raid YOUR_IP" itsme@gmail.com ; fi
count1=`/opt/MegaRAID/MegaCli/MegaCli64 -PDList -aALL | grep Online | wc -l`
if [ $count1 -lt 6 ]; then echo "`/opt/MegaRAID/MegaCli/MegaCli64 -PDList -aALL`" | mail -s "problem with disks YOUR_IP" itsme@gmail.com; fi
EOF
chmod +x /root/scripts/disk_monitoring.sh
/root/scripts/disk_monitoring.sh

Ещё этот скрипт можно добавить в планировщик задач, чтобы он выполнял проверку каждый день.
Выполните такую команду:

echo "0 2 * * * root /root/scripts/disk_monitoring.sh" >> /etc/crontab

Теперь каждый день в два часа ночи у вас будет выполняться проверка и, в случае проблем, отправлять вам письмо.

Спасибо))) И еще вопрос а чтоб отправлялось письмо, достаточно установить ssmtp?
И настроить его вот так /etc/ssmtp/ssmtp.conf
#
# Config file for sSMTP sendmail
#
# The person who gets all mail for userids < 1000
# Make this empty to disable rewriting.
root=postmaster

#Указываем логин пользователя, для подключения к почтовому серверу
authuser=alarm@example.org
#Указываем пароль для подключения
authpass=super_password

# The place where the mail goes. The actual machine name is required no
# MX records are consulted. Commonly mailhosts are named mail.domain.com
#Адрес сервера исходящей почты
mailhub=smtp.example.org

# Where will the mail seem to come from?
#rewriteDomain=

# The full hostname
hostname=Server_name.tld

# Are users allowed to set their own From: address?
# YES - Allow the user to specify their own From: address
# NO - Use the system generated From: address
#FromLineOverride=YES

/etc/ssmtp/revaliases
root:alarm@example.org:smtp.example.org
postmaster:alarm@example.org:smtp.example.org

ммм... нет. Нужен пакет "mailx" и пакет "postfix". Никаких настроек делать не надо. После этого просто запустить демон postfix. Это делается по разному в зависимости от ОС и её версии.

Еще мне написал что /bin/MegaCli.sh: строка 6: EOF: команда не найдена

Что такое /bin/MegaCli.sh? Мне кажется, вы меня не так поняли. Команды, которые я написал выше в ответе выполняются в консоли поочерёдно, а не записываются в файл.

Доброе время суток!
Это опять я с вопрос.
Первый вопрос, к мне на почту каждую ночь стало приходить письмо от MegaCli, я думал что должно приходить письмо, когда будут проблема с жестким диском, или с рэйдом.
И второй вопрос, в письме приходить два файла и они называются одинокого, хоть в скрипте два приписаны два файла, первый ("problem with raid YOUR_IP") и второй ("problem with disks YOUR_IP"), а вот куда девается первый файл с этим названием ("problem with raid YOUR_IP")?

По поводу первого вопроса:
Письма должны приходить только когда есть проблемы или с рэйдом или с дисками. Если письма приходят всё время, значит не правильно написан скрипт. Там есть часть "$count2 -lt 1", где "1" означает кол-во рэйдов со статусом "Optimal". Если кол-во записей не совпадает с выводом команды (т.е. рэйд больше не в этом статусе) - отправляется письмо.
Тоже самое происходит и с дисками: "$count2 -lt 6" - это означает, что должно быть 6 дисков со статусом "Online". Цифру 6 надо изменить на значение равное кол-ву жёстких дисков в вашей системе. И по такому же принципу: если дисков со статусов "Online" не 6 - отправлять письмо.

Второй вопрос понять невозможно. Набор слов.

а понял, у меня один Raid - контроллер и работают на 4 дисках, а стояло из 6, сейчас я исправил, теперь запись выглядит так
#!/bin/bash

count2=`/opt/MegaRAID/MegaCli/MegaCli64 -LDInfo -Lall -aALL | grep Optimal | wc -l`
if [ $count2 -lt 1 ]; then echo "`/opt/MegaRAID/MegaCli/MegaCli64 -LDInfo -Lall -aALL`" | mail -s "Проблема с raid 192.168.0.200" support@***.ru ; fi
count1=`/opt/MegaRAID/MegaCli/MegaCli64 -PDList -aALL | grep Online | wc -l`
if [ $count1 -lt 4 ]; then echo "`/opt/MegaRAID/MegaCli/MegaCli64 -PDList -aALL`" | mail -s "Проблема с диском 192.168.0.200" support@***.ru ; fi

Так должно выглядеть запись?
А по второму вопросу, приходят два файла, под одни названием с одинаковыми записями, зачем два одинаковых файла, когда в одном файле, должна быть запись о дисках, а во втором о raid - контроллере на каком произошла та или иная проблема, разве не так?

Да, запись правильная.

В случае проблемы с рэйдом должно приходить письмо с темой "Проблема с raid..." и с телом письма с выводом команды: "/opt/MegaRAID/MegaCli/MegaCli64 -LDInfo -Lall -aALL". В случае проблем с жёсткими - должно прийти письмо с темой "Проблема с диском..." и с телом письма с выводом команды "/opt/MegaRAID/MegaCli/MegaCli64 -PDList -aALL".
Не понимаю о каких файлах в вопросе идёт речь и куда они приходят.

А все разобрался, спасибо))))
Вот теперь к мне перестала приходить письмо в 2 часа ночи

Добавить комментарий

CAPTCHA
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.
Target Image