управление 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
[32:4] - это параметры диска которым вы меняете неисправный

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 определяют время запуска тестов для заданного диска

Смотрите также: