Nightbook

Знакомство с megacli

Недавно пришлось познакомиться с контролерами LSI MEGARAID. Задача была мониторинг состояния дисков, потому я не стал тратить много времени на изучения megaraid и в частности megacli. Получилась небольшая заметка с очень полезным функционалом.

Как прочитать данные из SMART дисков в RAID

Так как для опции smartctl -d megaraid, необходимо через запятую еще и указать Device Id, встал вопрос о том как его получить.
Пример:

smartctl -a -d megaraid,2 /dev/sda
smartctl -a -d megaraid,0 /dev/sdb

,где
2 и 0 - тот самый Device Id
/dev/sda и /dev/sdb - любое устройство подключенное к RAID-контроллеру LSI MEGARAID

Определить номер устройства (Device Id) можно с помощью megacli:

megacli -pdlist -a0| grep 'Device Id'

результат

Device Id: 4
Device Id: 5

После этого можно указать его в опции "megaraid", например так:

smartctl -d sat+megaraid,4 -a /dev/sda

Обращаемся к любому блочному устройству (/dev/sda) подключенному к контроллеру и запрашиваем инфу по устройству с ID 4

Утилита megacli часто требует до установки, потому что в стандартных репозиториях может не содержаться.

Помигать лампочками винтов

Необычным, но очень полезным использованием megacli можно назвать возможность управлением питания "лампочек" на карманах дисков. В случае необходимости сделать заявку в ЦОД на замену диска, можно безошибочно разъяснить инженеру службы поддержки о каком диске идет речь:
Шаблон команд:

megacli -PdLocate -start -physdrv\[E:S\]  -aALL # запустить
megacli -PdLocate -stop -physdrv\[E:S\]  -aALL # стоп

Пример:

-PhysDrv[252:2]

-aALL для всех массивов или -a0 для массива Array0

где E - Enclosure Device ID
S - Slot Number

megacli -PDList -aAll | egrep "Enclosure Device ID:|Slot Number:|Inquiry Data:|Error Count:|state|Device Id:"