Установка и работа с MegaCLI

Установка

Для установки в Debian 12 или Proxmox:

apt-get install libncurses5
wget -O /tmp/megacli_8.07.14-2_all.deb "https://kb.ksomov.ru/_static/megacli_8.07.14-2_all.deb" && dpkg -i /tmp/megacli_8.07.14-2_all.deb

Команды

Полезные команды (исполняемый файл /opt/MegaRAID/MegaCli/MegaCli64 ):

# Быстрая проверка
./MegaCli64 -LdPdInfo -aALL | grep -E "(Id|State |Bad Blocks|Firmware state|Error Count|Predictive Failure Count)"

# Просмотр журнала событий BBU, где можно найти информацию по проверкам и автоисправлению  битых секторов
./MegaCli64 -FwTermLog -Dsply -aALL > /tmp/ttylog.txt

# Полная информация о всех адаптеров контроллера
./MegaCli64 -AdpAllInfo -aALL

# Полная информация о настройках и дисках
./MegaCli64 -CfgDsply -aALL

# Информация о последних событиях, где можно найти информацию о сбои в работе дисков
./MegaCli64 -AdpEventLog -GetLatest 4000 -f events.log -aALL
./MegaCli64 -AdpEventLog -GetEvents -f events.log -aALL

# Информация о всех доступных корпусах контроллера
./MegaCli64 -EncInfo -aALL

# Включение Disk Cache Policy для диска L0
./MegaCli64 -LDSetProp -EnDskCache -L0 -a0

# Выключение Disk Cache Policy для диска L0
./MegaCli64 -LDSetProp -DisDskCache -L0 -a0

# Список всех логических дисков и типе RAID-а в котором они собраны
./MegaCli64 -LDInfo -Lall -aALL

# Список всех физических дисков
./MegaCli64 -PDList -aALL

# Информация о конкретном физическом диске
# Типовая комманда ./MegaCli64 -pdInfo -Physdrv [E1:S2] -aALL
# E1 - Enclosure Device ID: 1, S2 - Slot Number: 2

# To get it need to run - ./MegaCli64 -LdPdInfo -aALL | grep -E "ID|Slot"
./MegaCli64 -pdInfo -Physdrv [32:9] -aALL

# Подсветить диск (для поиска)
#Start blinking
./MegaCli64 -PdLocate -start -Physdrv\[4:3\]  -aALL
./MegaCli64 -PdLocate -start -Physdrv\[4:2\]  -aALL
./MegaCli64 -PdLocate -start -Physdrv\[4:1\]  -aALL
#Stop blinking
./MegaCli64 -PdLocate -stop  -Physdrv\[4:1\]  -aALL
./MegaCli64 -PdLocate -stop  -Physdrv\[4:2\]  -aALL
./MegaCli64 -PdLocate -stop  -Physdrv\[4:3\]  -aALL

# Проверка состояния BBU (Battery Backup Unit)
./MegaCli64 -AdpBbuCmd -aALL

# Посмотреть прогресс добавления диска в RAID
./MegaCli64 -PDRbld -ShowProg -Physdrv[32:14] -aAll

# Создание логического диска (Logical Disk)
./MegaCli64 -CfgLdAdd -r0[32:6,32:7,32:8] wb direct CachedBadBBU -a0 (или NoCachedBadBBU)

# Список всех логических дисков и типе RAID-а в котором они собраны
./MegaCli64 -LDInfo -Lall -aALL

# Удаление логического диска (Logical Disk)
./MegaCli64 -CfgLdDel -L2 -a0

## Expand Logical Disk
   1. First gather information:
      ./MegaCli64 -getLdExpansionInfo -L0 -a0

   2. From here you should have enough information to use the default command:
      ./MegaCli64 -LdExpansion -pN -dontExpandArray -Lx|-L0,1,2|-Lall -aN|-a0,1,2|-aALL

      For example, if my controller were 0, my PD I wanted to add was PD 4 and my Logical drive was 0;
      ./MegaCli64 -LdExpansion -p4 -L0 -a0

Скрипт мониторинга

Небольшой скрипт для вывода информации в удобном виде megaraid_status.py

root@s19:~# python megaraid_status.py
-- Controller information --
-- ID | H/W Model         | RAM    | Temp | Firmware
c0    | LSI MegaRAID ROMB | 1024MB | 57C  | FW: 23.18.0-0013

-- Array information --
-- ID | Type   |    Size |  Strpsz |   Flags | DskCache |   Status |  OS Path | InProgress
c0u0  | RAID-1 |    278G |   64 KB |   RA,WT |  Default |  Optimal | /dev/sda | None
c0u1  | RAID-0 |    930G |   64 KB |   RA,WB |  Enabled |  Optimal | /dev/sdb | None
c0u2  | RAID-5 |   2725G |   64 KB |   RA,WT |  Default |  Optimal | /dev/sdc | None
c0u3  | RAID-0 |    111G |   64 KB | ADRA,WB |  Enabled |  Optimal | /dev/sdd | None

-- Disk information --
-- ID   | Type | Drive Model                                        | Size     | Status          | Speed    | Temp | Slot ID  | Device ID
c0u0p0  | HDD  | SEAGATE ST300MM0026 0001S0K263T8                   | 278.4 Gb | Online, Spun Up | 6.0Gb/s  | 31C  | [252:0]  | 12
c0u0p1  | HDD  | SEAGATE ST300MM0026 0001S0K23LQQ                   | 278.4 Gb | Online, Spun Up | 6.0Gb/s  | 30C  | [252:1]  | 13
c0u1p0  | SSD  | Samsung SSD 850 EVO 1TB EMT51B6Q                   | 930.3 Gb | Online, Spun Up | 6.0Gb/s  | N/A  | [252:3]  | 0
c0u2p0  | HDD  | SEAGATE ST91000640SS 00049XG5VT6F                  | 930.3 Gb | Online, Spun Up | 6.0Gb/s  | 30C  | [252:4]  | 8
c0u2p1  | HDD  | SEAGATE ST91000640SS 00049XG5VYP6                  | 930.3 Gb | Online, Spun Up | 6.0Gb/s  | 30C  | [252:5]  | 11
c0u2p2  | HDD  | SEAGATE ST91000640SS 00049XG690HG                  | 930.3 Gb | Online, Spun Up | 6.0Gb/s  | 31C  | [252:6]  | 10
c0u2p3  | HDD  | SEAGATE ST91000640SS 00049XG690W8                  | 930.3 Gb | Online, Spun Up | 6.0Gb/s  | 33C  | [252:7]  | 9
c0u3p0  | SSD  | SAMSUNG MZ7WD120HCFV-0003 DXM4203Q                 | 110.8 Gb | Online, Spun Up | 6.0Gb/s  | N/A  | [252:2]  | 2

Если запустить скрипт с параметром --nagios, то будут показаны только проблемы:

root@s11:~# python megaraid_status.py --nagios
RAID ERROR - Arrays: OK:2 Bad:1 - Disks: OK:11 Bad:1

Related Links: - S.M.A.R.T. (часть 1). Мониторинг SCSI дисков под LSI 2108 (megaraid) RAID контроллером - wikitech.wikimedia.org