Утилита MegaCli
Очень хорошее средство для мониторинга функционирования контролера и жёстких дисков под его управлением - утилита MegaCli.
Чтобы посмотреть свой контроллер:
lspci -vv | grep -i raid
Если пишет, что команда не найдена, нужно просто установить пакет:
yum install pciutils
Вывод команды примерно следующий:
03:00.0 RAID bus controller: LSI Logic / Symbios Logic MegaRAID SAS 1078 (rev 04) Subsystem: Dell PERC 6/i Integrated RAID Controller
Установка MegaCli
Список поддерживаемых контроллеров в спойлере. Цитата с официального сайта:
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
Итак, кратко о главных возможностях:
- Информация о адаптере:
MegaCli -AdpAllinfo -aAll
- Информация о конфигурации:
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
- Информация о всех физических устройствах
MegaCli -PDList -aAll
- Информация о всех виртуальных устройствах
MegaCli -LDInfo Lall -aAll
- Логи контроллера (много!):
MegaCli -FwTermLog -Dsply -aALL
- Краткая полезная информация по адаптеру:
MegaCli -ShowSummary -a0
- Очистка списка событий:
MegaCli -AdpEventLog -Clear -a0
- Время на адаптере:
MegaCli -AdpGetTime -aALL
- Количество физических дисков на первом адаптере:
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
Собственно, он проверяет статусы ответов контроллера и дисков и если что-то не так - отправляет сообщение на почту.
Конец.
Комментарии
vismuth
10/24/2015 - 15:16
Постоянная ссылка (Permalink)
а как удалить старую версию
а как удалить старую версию MegaCLI SAS RAID Management Tool Ver 8.00.48 Mar 23, 2011?
erian
10/24/2015 - 15:52
Постоянная ссылка (Permalink)
Это зависит от того, какая ОС
Это зависит от того, какая ОС и как был установлен прошлый пакет.
Vismuth
10/31/2015 - 10:39
Постоянная ссылка (Permalink)
доброе время суток!
доброе время суток!
не совсем понятно, куда последний скрипт на проверку надо записать файл и как его проверить на работу способность
Напишите пожалуйста куда нужно сохранить этот скрипт и какой командой его проверить.
Заранее спасибо
erian
10/31/2015 - 10:57
Постоянная ссылка (Permalink)
Доброго!
Доброго!
Скрипт можно записать в любой файл =) Ну, например, у меня он находится по адресу /root/scripts/disk_monitoring.sh
Можете сделать следующее:
Ещё этот скрипт можно добавить в планировщик задач, чтобы он выполнял проверку каждый день.
Выполните такую команду:
Теперь каждый день в два часа ночи у вас будет выполняться проверка и, в случае проблем, отправлять вам письмо.
vismuth
10/31/2015 - 11:24
Постоянная ссылка (Permalink)
Спасибо))) И еще вопрос а
Спасибо))) И еще вопрос а чтоб отправлялось письмо, достаточно установить 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
erian
10/31/2015 - 11:30
Постоянная ссылка (Permalink)
ммм... нет. Нужен пакет
ммм... нет. Нужен пакет "mailx" и пакет "postfix". Никаких настроек делать не надо. После этого просто запустить демон postfix. Это делается по разному в зависимости от ОС и её версии.
vismuth
10/31/2015 - 11:26
Постоянная ссылка (Permalink)
Еще мне написал что /bin
Еще мне написал что /bin/MegaCli.sh: строка 6: EOF: команда не найдена
erian
10/31/2015 - 11:31
Постоянная ссылка (Permalink)
Что такое /bin/MegaCli.sh?
Что такое /bin/MegaCli.sh? Мне кажется, вы меня не так поняли. Команды, которые я написал выше в ответе выполняются в консоли поочерёдно, а не записываются в файл.
Vismuth
11/08/2015 - 12:01
Постоянная ссылка (Permalink)
Доброе время суток!
Доброе время суток!
Это опять я с вопрос.
Первый вопрос, к мне на почту каждую ночь стало приходить письмо от MegaCli, я думал что должно приходить письмо, когда будут проблема с жестким диском, или с рэйдом.
И второй вопрос, в письме приходить два файла и они называются одинокого, хоть в скрипте два приписаны два файла, первый ("problem with raid YOUR_IP") и второй ("problem with disks YOUR_IP"), а вот куда девается первый файл с этим названием ("problem with raid YOUR_IP")?
erian
11/08/2015 - 12:26
Постоянная ссылка (Permalink)
По поводу первого вопроса:
По поводу первого вопроса:
Письма должны приходить только когда есть проблемы или с рэйдом или с дисками. Если письма приходят всё время, значит не правильно написан скрипт. Там есть часть "$count2 -lt 1", где "1" означает кол-во рэйдов со статусом "Optimal". Если кол-во записей не совпадает с выводом команды (т.е. рэйд больше не в этом статусе) - отправляется письмо.
Тоже самое происходит и с дисками: "$count2 -lt 6" - это означает, что должно быть 6 дисков со статусом "Online". Цифру 6 надо изменить на значение равное кол-ву жёстких дисков в вашей системе. И по такому же принципу: если дисков со статусов "Online" не 6 - отправлять письмо.
Второй вопрос понять невозможно. Набор слов.
Vismuth
11/08/2015 - 13:41
Постоянная ссылка (Permalink)
а понял, у меня один Raid -
а понял, у меня один 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 - контроллере на каком произошла та или иная проблема, разве не так?
erian
11/08/2015 - 20:35
Постоянная ссылка (Permalink)
Да, запись правильная.
Да, запись правильная.
В случае проблемы с рэйдом должно приходить письмо с темой "Проблема с raid..." и с телом письма с выводом команды: "/opt/MegaRAID/MegaCli/MegaCli64 -LDInfo -Lall -aALL". В случае проблем с жёсткими - должно прийти письмо с темой "Проблема с диском..." и с телом письма с выводом команды "/opt/MegaRAID/MegaCli/MegaCli64 -PDList -aALL".
Не понимаю о каких файлах в вопросе идёт речь и куда они приходят.
Vismuth
11/09/2015 - 06:53
Постоянная ссылка (Permalink)
А все разобрался, спасибо))))
А все разобрался, спасибо))))
Вот теперь к мне перестала приходить письмо в 2 часа ночи
erian
11/09/2015 - 11:00
Постоянная ссылка (Permalink)
welcome
welcome
Константин
06/01/2019 - 18:32
Постоянная ссылка (Permalink)
Доброе время суток
Доброе время суток
Вопрос, а почему у на емайл приходит с текстом проблема RAID?
Вот ваш скрипт
#!/bin/bash
count2=`/opt/MegaRAID/MegaCli/MegaCli64 -LDInfo -Lall -aALL | grep Optimal | wc -l`
if [ $count2 -lt 5 ]; then echo "`/opt/MegaRAID/MegaCli/MegaCli64 -LDInfo -Lall -aALL`" | mail -s "Problem in raid ХХХ.ХХ.XX.X" support@mail.ru ; $
count1=`/opt/MegaRAID/MegaCli/MegaCli64 -PDList -aALL | grep Online | wc -l`
if [ $count1 -lt 3 ]; then echo "`/opt/MegaRAID/MegaCli/MegaCli64 -PDList -aALL`" | mail -s "Problem in disk ХХХ.ХХ.XX.X" support@mail.ru ; fi
У меня RAID 5 из 3-х дисков
erian
06/02/2019 - 07:40
Постоянная ссылка (Permalink)
Ошибка в первом сравнении.
Ошибка в первом сравнении. Там должно стоять 1, так как проверяется кол-во рэйдов, а не тип рэйда.
if [ $count2 -lt 1 ]; then echo "`/opt/MegaRAID/MegaCli/MegaCli64 -LDInfo -Lall -aALL`" | mail -s "Problem in raid ХХХ.ХХ.XX.X" support@mail.ru ; $
Константин
06/02/2019 - 22:52
Постоянная ссылка (Permalink)
Большое спасибо
Большое спасибо
Добавить комментарий