Установка Megacli на Debian
1 |
# nano /etc/apt/sources.list |
1 2 |
#Debian 9 deb http://hwraid.le-vert.net/debian stretch main |
1 2 |
#Debian 8 # deb http://hwraid.le-vert.net/debian jessie main |
1 2 |
#Debian 7 # deb http://hwraid.le-vert.net/debian wheezy main |
1 |
# wget -O - http://hwraid.le-vert.net/debian/hwraid.le-vert.net.gpg.key | apt-key add - |
Установка Megacli на Ubuntu16
1 |
# nano /etc/apt/sources.list |
1 2 |
# Ubuntu 16 deb http://hwraid.le-vert.net/ubuntu xenial main |
1 |
# wget -O - http://hwraid.le-vert.net/ubuntu/hwraid.le-vert.net.gpg.key | apt-key add - |
1 |
# apt-get update |
1 |
# apt-get install megacli |
1 |
# which megacli |
1 |
/usr/sbin/megacli |
1 |
# megacli -V |
1 2 |
MegaCLI SAS RAID Management Tool Ver 8.07.14 Dec 16, 2013 (c)Copyright 2013, LSI Corporation, All Rights Reserved. |
Проверка наличия загруженного модуля в ядре
1 |
# lsmod | grep -i mega |
1 |
megaraid_sas 139264 3 |
Проверка наличия установленной LSI MegaRAID карты на сервере
1 |
# lspci -nn | grep -i lsi |
1 |
02:00.0 RAID bus controller [0104]: LSI Logic / Symbios Logic MegaRAID SAS 2108 [Liberator] [1000:0079] (rev 05) |
Получение модели контролера и версии прошивки
1 |
# megacli -AdpAllInfo -aAll | grep -E 'Product Name|Serial No|FW Package Build' |
1 2 3 |
Product Name : LSI MegaRAID SAS 9260-4i Serial No : SV23301736 FW Package Build: 12.15.0-0205 |
Важные параметры для мониторинга
1 |
# megacli -LdPdInfo -aALL | grep -E "(Id|State |Bad Blocks|Firmware state|Error Count|Predictive Failure Count)" |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
# Первый виртуальный диск - он же /dev/sda Virtual Drive: 0 (Target Id: 0) # Статус RAID-a (Degraded - если проблема с одним из дисков; Optimal - нормальный статус) State : Optimal # Наличие бедблоков на виртуальном диске Bad Blocks Exist: No # ID физического диска Device Id: 3 # Количество ошибок, которые нет возможности исправить - самый важный компонент Media Error Count: 0 # Количество иных ошибок не связанных с бедблоками Other Error Count: 0 # Определение количества возможных ошибок Predictive Failure Count: 0 # Статус физического диска (Rebuild - добавляется в RAID; Online - в RAID-e) # Также есть "Failed", "Online, Spun Up", "Online, Spun Down", "Unconfigured(bad)", "Unconfigured(good), Spun down","Hotspare, Spun down", "Hotspare, Spun up" or "not Online". Firmware state: Rebuild Firmware state: Online, Spun Up Device Id: 2 Media Error Count: 0 Other Error Count: 0 Predictive Failure Count: 0 Firmware state: Online, Spun Up |
Состояние логического диска 0 на адаптере 0
1 |
# megacli -LDInfo -L0 -a0 |
Состояние жестких дисков можно получить следующей командой:
1 |
# megacli -PDList -Aall |
Так как при этом выводится масса дополнительной информации, рекомендуется отфильтровать вывод.
1 |
# megacli -PDList -aAll | egrep "Enclosure Device ID:|Slot Number:|Inquiry Data:|Error Count:|state" |
1 2 3 4 5 6 7 8 9 10 11 12 |
Enclosure Device ID: 252 Slot Number: 0 Media Error Count: 0 Other Error Count: 0 Firmware state: Online, Spun Up Inquiry Data: WD-WMC1F0E62TV5WDC WD3000FYYZ-01UL1B2 01.01K03 Enclosure Device ID: 252 Slot Number: 1 Media Error Count: 0 Other Error Count: 0 Firmware state: Online, Spun Up Inquiry Data: WD-WCC132LZ4JDRWDC WD3000FYYZ-01UL1B2 01.01K03 |
В данном случае оба диска находятся в состоянии Online, Spun Up
Если диск будет находиться в состоянии Rebuild, то процес пересборки можно проверить командой
1 |
# megacli -PDRbld -ShowProg -PhysDrv [252:0] -aALL # EnclosureID=252, slot=0 |
1 |
# megacli -PDRbld -ShowProg -PhysDrv [252:1] -aALL # EnclosureID=252, slot=1 |
Состояние жестких дисков на адаптере 0
1 |
# megacli -PDList -a0 |
Просмотр состояния и конфигурации всех адаптеров
1 |
# megacli -AdpAllInfo -aAll | less |
Просмотр включена ли автоматическая пересборка массива на адаптере 0
1 |
# megacli -AdpAutoRbld -Dsply -a0 |
1 |
Adapter 0: AutoRebuild is Enabled. |
Отключение автоматической пересборки массива на адаптере 0
1 |
# megacli -AdpAutoRbld -Dsply -a0 |
1 |
Adapter 0: AutoRebuild is Disabled. |
Включение автоматической пересборки массива на адаптере 0
1 |
# megacli -AdpAutoRbld -Enbl -a0 |
1 |
Adapter 0: AutoRebuild is Enabled. |
Получить и изменить коэффициент перестройки массива
1 |
# megacli -AdpGetProp RebuildRate -a0 |
1 |
Adapter 0: Rebuild Rate = 30% |
1 |
# megacli -AdpSetProp RebuildRate 60 -a0 |
1 |
Adapter 0: Set rebuild rate to 60% success. |
Установка утилиты megactl (LSI MegaRAID SCSI/SAS reporting tool) для удобного просмотра состояния RAID-контроллера
1 |
# apt-get install megactl |
Просмотр состояния RAID-контроллера
1 |
# megasasctl |
1 2 3 4 |
a0 LSI MegaRAID SAS 9260-4i encl:1 ldrv:1 batt:FAULT, module missing, pack missing, charge failed a0d0 2794GiB RAID 1 1x2 optimal a0e252s0 2794GiB a0d0 online a0e252s1 2794GiB a0d0 online |
Установка megaraid-status (get RAID status out of LSI MegaRAID SCSI/SAS HW RAID controllers) – демон-обвертка для периодических проверок состояния массива и оповещения по E-MAIL root-пользователя в случае перехода состояния RAID-массива в статус/состояние Degraded
1 |
# apt-get install megaraid-status |
1 |
# megaraidsas-status |
1 2 3 4 5 6 7 8 |
-- Arrays informations -- -- ID | Type | Size | Status a0d0 | RAID 1 | 2794GiB | optimal -- Disks informations -- ID | Model | Status | Warnings a0e252s0 | ATA WDC WD3000FYYZ-0 2794GiB | online a0e252s1 | ATA ST3000DM001-9YN1 2794GiB | online |
1 |
# ps ax | grep [m]egaraid |
1 2 |
13448 ? S 0:00 /usr/bin/daemon /etc/init.d/megaraidsas-statusd check_megaraidsas 13449 ? S 0:00 /bin/sh /etc/init.d/megaraidsas-statusd check_megaraidsas |
1 |
# ls -l /etc/init.d/ | grep [m]ega |
1 2 |
-rwxr-xr-x 1 root root 5936 Feb 22 2012 megaraidsas-statusd -rwxr-xr-x 1 root root 5883 Feb 22 2012 megaraid-statusd |
1 |
# systemctl status megaraid-statusd |
1 2 3 4 5 |
● megaraid-statusd.service - LSB: Check megaraid-status values in the background. Loaded: loaded (/etc/init.d/megaraid-statusd) Active: active (exited) since Tue 2016-05-03 20:29:54 BST; 39min ago May 03 20:29:54 server5 systemd[1]: Started LSB: Check megaraid-status values in the background.. |
1 |
# systemctl status megaraidsas-statusd |
1 2 3 4 5 6 7 8 9 10 |
● megaraidsas-statusd.service - LSB: Check megaraidsas-status values in the background. Loaded: loaded (/etc/init.d/megaraidsas-statusd) Active: active (running) since Tue 2016-05-03 20:29:54 BST; 40min ago CGroup: /system.slice/megaraidsas-statusd.service ├─13448 /usr/bin/daemon /etc/init.d/megaraidsas-statusd check_megaraidsas ├─13449 /bin/sh /etc/init.d/megaraidsas-statusd check_megaraidsas └─21227 sleep 600 May 03 20:29:54 server5 megaraidsas-statusd[13435]: Starting megaraidsas-status monitor: megaraidsas-statusd. May 03 20:29:54 server5 systemd[1]: Started LSB: Check megaraidsas-status values in the background.. |
Существует также python скрипт, написанный Adam Cecile и Vincent S. Cojot, который парсит вывод megacli и выводит форматированный вывод о статусе логических и физических дисков и информацией о их принадлежности. Скрипт можно скачать здесь
https://github.com/eLvErDe/hwraid/blob/master/wrapper-scripts/megaclisas-status
Для его нормальной работы – нужна megacli утилита
Определяем путь к утилите и правим скрипт, если необходимо, указывая корректный путь к бинарнику megacli
1 |
# which megacli |
1 |
/usr/sbin/megacli |
1 |
# grep -in megacli /usr/local/scripts/megaraid_status.py |
1 2 3 |
……… 13:def_megaclipath = "/usr/sbin/megacli" ……… |
1 |
# nano +13 /usr/local/scripts/megaraid_status.py |
1 |
def_megaclipath = "/usr/sbin/megacli" |
1 |
# chmod +x /usr/local/scripts/megaraid_status.py |
Запускаем скрипт
1 |
# python /usr/local/scripts/megaraid_status.py |
1 2 3 4 5 6 7 8 9 10 11 12 |
-- Controller information -- -- ID | H/W Model | RAM | Temp | Firmware c0 | LSI MegaRAID SAS 9260-4i | 512MB | N/A | FW: 12.15.0-0205 -- Array information -- -- ID | Type | Size | Strpsz | Flags | DskCache | Status | OS Path | InProgress c0u0 | RAID-1 | 2728G | 256 KB | RA,WB | Default | Optimal | /dev/sda | None -- Disk information -- -- ID | Type | Drive Model | Size | Status | Speed | Temp | Slot ID | Device ID c0u0p0 | HDD | WD-WMC1F0E62TV5WDC WD3000FYYZ-01UL1B2 01.01K03 | 2.728 TB | Online, Spun Up | 6.0Gb/s | 42C | [252:0] | 3 c0u0p1 | HDD | S1F0YM5XST3000DM001-9YN166 CC4B | 2.728 TB | Online, Spun Up | 6.0Gb/s | 40C | [252:1] | 2 |
Если для мониторинга вы используете Nagios, то скрипт может запускаться в режиме Nagios.
1 |
# python /usr/local/scripts/megaraid_status.py --nagios |
1 |
RAID OK - Arrays: OK:1 Bad:0 - Disks: OK:2 Bad:0 |
Доступ к данным S.M.A.R.T. для дисков в RAID-контроллере
Можно использовать smartmontools для доступа к физическим дискам подключенным к RAID-контроллеру. Сначала надо определить номер устройства (Device Id) с помощью megacli:
1 |
# megacli -pdlist -a0| grep 'Device Id' |
1 2 |
Device Id: 3 Device Id: 2 |
После этого можно указать его в опции «megaraid», например так:
1 |
# smartctl -d sat+megaraid,2 -a /dev/sda |
Для другого диска
1 |
# smartctl -d sat+megaraid,3 -a /dev/sda |
Например, протестируем диск имеющий номер устройства в системе 2
Короткий тест
1 |
# smartctl -d sat+megaraid,2 -t short /dev/sda |
Просмотр статуса выполнения теста
1 |
# smartctl -d sat+megaraid,2 -l selftest /dev/sda |
Длинный тест
1 |
# smartctl -d sat+megaraid,2 -t long /dev/sda |
Просмотр статуса выполнения теста
1 |
# smartctl -d sat+megaraid,2 -l selftest /dev/sda |
Источник:
http://proxmoxve.blogspot.com/2014/02/lsi-raid-monitoring-using-megacli-tool.html
http://it-admin.org/os-linux/ustanovka-megacli-na-linux-debian-iz-repozitoriev.html
http://hwraid.le-vert.net/wiki/LSIMegaRAIDSAS#a3.Managementandreportingtools
http://sysadm.pp.ua/linux/monitoring-systems/python-lsi-megaraid-monitoring.html
https://wiki.hetzner.de/index.php/LSI_RAID_Controller/ru