управление raid lsi megaraid с помощью megacli
Применимость: Linux
Слова для поиска:
Задача:
управление raid lsi megaraid
Решение:
Можно использовать MegaRAID Storage Manager™, но чтобы его поставить….
Проще использовать консольную утилиту MegaCli
Загрузиться с RIPLinuX и подключиться по SSH
ifconfig eth0 77.72.128.140 netmask 255.255.255.192 ip r add default via 77.72.128.129 chmod +x /etc/rc.d/rc.sshd echo "" > /etc/hosts.deny passwd /etc/rc.d/rc.sshd start
Получить статус и конфигурацию всех адаптеров
megacli -AdpAllInfo -aAll
Cтатус и параметры всех логических дисков
megacli -LDInfo -LAll -aAll
Статус и параметры физических устройств
megacli -PDList -a0
Статус и параметры диска в 4-м слоте
megacli -pdInfo -PhysDrv[252:4] -a0
Создание RAID6 массив MegaCLI
Давайте предположим, что у нас есть сервер с MegaRAID SAS
Получим список физических дисков:
megacli -PDlist -a0 | grep -e '^Enclosure Device ID:' -e '^Slot Number:' Enclosure Device ID: 29 Slot Number: 0 Enclosure Device ID: 29 Slot Number: 1 Enclosure Device ID: 29 Slot Number: 2 Enclosure Device ID: 29 Slot Number: 3 Enclosure Device ID: 29 Slot Number: 4 Enclosure Device ID: 29 Slot Number: 5 Enclosure Device ID: 29 Slot Number: 6 Enclosure Device ID: 29 Slot Number: 7 Enclosure Device ID: 29 Slot Number: 8 Enclosure Device ID: 245 Slot Number: 12
Пример конфигурирования JBOD на LSI 2208 (Supermicro X9DRH-7TF)
При загрузке BIOS эти команды можно выполнить если зайти в preboot CLI по комбинации клавиш Ctrl+Y
Команды megacli и preboot CLI различаются по виду.
Например команда проверки поддержки JBOD для BIOS preboot CLI будет выглядеть так:
AdpGetProp enablejbod -aALL
А для megacli это используется как набор опций и параметров:
megacli -AdpGetProp enablejbod -aALL
Включить поддержку JBOB
megacli -AdpSetProp EnableJBOD 1 -aALL
Список доступных физических устройств:
megacli -PDList -aALL -page24
В списке надо найти значения полей Enclosure Device ID (например 252), Slot Number и Firmware state
Нужно отметить каждое из устройств которое надо сделать JBOD, как Good в поле Firmware state .
megacli -PDMakeGood -PhysDrv[252:0] -Force -a0
Или сразу много устройств:
megacli -PDMakeGood -PhysDrv[252:1,252:2,252:3,252:4,252:5,252:6,252:7] -Force -a0
Теперь можно создавать JBOD
megacli -PDMakeJBOD -PhysDrv[252:0] -a0 megacli -PDMakeJBOD -PhysDrv[252:1,252:2,252:3,252:4,252:5,252:6,252:7] -a0
Создать виртуальный диск RAID
Перед настройкой массива, возможно, потребуется удалить использованную ранее конфигурацию. Для того чтобы просто удалить логические устройства используйте CfgLdDel
megacli -CfgLdDel -Lall -aAll
Для того чтобы удалить всё (в том числе политику кэша) используйте «Очистку конфигурации»
megacli -CfgClr -aAll
Настройка RAID-0, 1 или 5. Вместо «r0» введите соответственно «r1» или «r5» (диски находятся в Enclosure 29, на портах 0 и 1, WriteBack включен, ReadCache адаптивный, Cache также включен без BBU)
megacli -CfgLdAdd -r0 [29:0,29:1] WB ADRA Cached CachedBadBBU -sz196GB -a0
Создать RAID10
Получить список дисков
megacli -PDList -aAll | egrep "Enclosure Device ID:|Slot Number:|Inquiry Data:|Error Count:|state"
Создать массив из 6 дисков
megacli -CfgSpanAdd -r10 -Array0[252:0,252:1] -Array1[252:2,252:4] -Array2[252:5,252:6] -a0
Показать как диски были определены в RAID-массиве:
megacli -CfgDsply -a0
Удалить массив с ID=2
MegaCli –CfgLDDel -L2 -a0
Инициализация массива
Начать полную инициализацию для массива с ID=0
MegaCli -LDInit -Start -full -L0 -a0
Проверить текущий статус инициализации:
MegaCli -LDInit -ShowProg -L0 -a0
Управление CacheCade
Создать и назначить CacheCade для массива 0 (-L0) из зеркала (-r1) в режиме обратной записи (WB) на основе SSD дисков в слотах 6 и 7 (-Physdrv[252:6,252:7])
megacli -CfgCacheCadeAdd -r1 -Physdrv[252:6,252:7] WB -assign -L0 -a0
Включить
megacli -Cachecade -assign -L0 -a0
Отключить
megacli -Cachecade -remove -L0 -a0 Successfully removed VD from Cache
Просмотреть состояние:
megacli -CfgCacheCadeDsply -a0 megacli -LDInfo -LAll -a0
Замена неисправного диска
Отключить писк:
megacli -AdpSetProp -AlarmSilence -a0
Обратите внимание, что это не навсегда отключает сигнализацию, а просто выключает сигнал по текущей аварии.
Просмотреть состояние диска (подставьте нужное значение [E:S]):
megacli -pdInfo -PhysDrv [29:8] -a0
Пометить диск требующий замены как потерянный (если контроллер не сделал этого сам)
megacli -PDMarkMissing -PhysDrv [E:S] -aN
Получить параметры потерянного диска
megacli -Pdgetmissing -a0
Вы должны получить ответ подобный этому:
Adapter 0 - Missing Physical drives No. Array Row Size Expected 0 0 4 1907200 MB
Подсветить диск который надо менять (подставьте нужное значение [E:S]):
megacli -PdLocate -start -PhysDrv [29:8] -a0
На некоторых шасси могут быть проблемы с индикацией. Это лечится такой командой:
megacli -AdpSetProp \{UseDiskActivityforLocate -1\} -aALL
В этом случае для маркировки диска будет использоваться лампочка активности.
Удаляем неисправный и вставляем новый диск.
Прекращаем подсветку и проверяем состояние диска:
megacli -PdLocate -stop -PhysDrv [29:8] -a0 megacli -pdInfo -PhysDrv [29:8] -a0
Может так случится, что он содержит метаданные от другого массива RAID (Foreign Configuration). Ваш контроллер не позволит использовать такой диск. Для проверки наличия Foreign Configuration
megacli -CfgForeign -Scan -aALL
Команда удаления Foreign Configuration (если вы уверены)
megacli -CfgForeign -Сlear -aALL
Запускаем процесс замены
megacli -PdReplaceMissing -PhysDrv [32:4] -Array0 -row4 -a0
Rebuild drive
megacli -PDRbld -Start -PhysDrv [32:4] -a0
Проверка процесса ребилда
megacli -PDRbld -ShowProg -PhysDrv [32:4] -a0
Использование smartctl
Получить список id
megacli -PDlist -a0 | grep '^Device Id:'| awk '{print $3}'
Получить данные смарт по диску с ID=9
smartctl /dev/sda -d megaraid,9 -a
для диска с интерфейсом sata
smartctl /dev/sda -d sat+megaraid,9 -a
пример срипта для получения данных о всех дисках
#!/bin/sh for arg in `megacli -PDlist -a0 | grep '^Device Id:'| awk '{print $3}'` do smartctl /dev/sda -d sat+megaraid,${arg} -l devstat #smartctl /dev/sda -d sat+megaraid,${arg} -a done
Для контроля состояния дисков с помощью демона smartd нужно закомментировать DEVICESCAN в /etc/smartd.conf и добавить:
/dev/sda -d sat+megaraid,0 -a -s L/../../3/02 /dev/sda -d sat+megaraid,1 -a -s L/../../3/03 /dev/sda -d sat+megaraid,2 -a -s L/../../3/04 /dev/sda -d sat+megaraid,3 -a -s L/../../3/05
Значения параметров типа /3/02 - /3/05 определяют время запуска тестов для заданного диска