MegaCli - программа для администрирования RAID-контроллера


Установка MegaCli


Установка производилась на Debian 7.

apt-get install -y alien unzip

Пакетов для дебиан не нашел, поэтому придется распаковывать и устанавливать из rpm: MegaCli-8.07.14-1.noarch.zip.001
MegaCli-8.07.14-1.noarch.zip.002
MegaCli-8.07.14-1.noarch.zip.003

rpm2cpio MegaCli-8.07.14-1.noarch.rpm | cpio -idmv

Создаем каталог:
mkdir -p /opt/MegaRAID/MegaCli

И копируем в него распакованные файлы:
cp ./opt/MegaRAID/MegaCli/* /opt/MegaRAID/MegaCli/

Копируем распакованную библиотеку в /usr/lib/ :
cp ./opt/MegaRAID/MegaCli/libstorelibir-2.so.14.07-0 /usr/lib/

Даем права на запуск:
cd /opt/MegaRAID/MegaCli/
chmod 755 MegaCli
chmod 755 MegaCli64


Создаем символическую ссылку:
ln -s /opt/MegaRAID/MegaCli/MegaCli64 /usr/bin/MegaCli

Проверяем установку:
MegaCli -v

Intel(R) RAID Command Line Utilities Version 2
Ver 8.07.14 Dec 16, 2013

(c)Copyright 2013, LSI Corporation, All Rights Reserved.

Exit Code: 0x00

 

Информация о состоянии RAID



Состояние RAID можно получить следующей командой (отобразить все логические устройства всех контроллеров)

MegaCli -LDInfo -Lall -Aall

Вывод более краткой информации состояния дисков:
MegaCli -PDList -aAll | egrep "Enclosure Device ID:|Slot Number:|Inquiry Data:|Error Count:|state"

Enclosure Device ID: N/A
Slot Number: 0
Media Error Count: 0
Other Error Count: 0
Firmware state: Online, Spun Up
Inquiry Data: SEAGATE ST3300657SS 000B6SJ81PKF
Enclosure Device ID: N/A
Slot Number: 1
Media Error Count: 0
Other Error Count: 0
Firmware state: Online, Spun Up
Inquiry Data: SEAGATE ST3300657SS 000B6SJ85JKR
Enclosure Device ID: N/A
Slot Number: 2
Media Error Count: 0
Other Error Count: 0
Firmware state: Online, Spun Up
Inquiry Data: SEAGATE ST3300657SS 000B6SJ85MBY
Enclosure Device ID: N/A
Slot Number: 4
Media Error Count: 0
Other Error Count: 0
Firmware state: Online, Spun Up
Inquiry Data: SEAGATE ST3300657SS 000B6SJ81PJE
Enclosure Device ID: N/A
Slot Number: 5
Media Error Count: 0
Other Error Count: 0
Firmware state: Online, Spun Up
Inquiry Data: SEAGATE ST3300657SS 000B6SJ81PH6
Enclosure Device ID: N/A
Slot Number: 6
Media Error Count: 0
Other Error Count: 0
Firmware state: Online, Spun Up
Inquiry Data: SEAGATE ST3300657SS 000B6SJ81PJQ


Все хорошо если все диски Firmware state: Online .



Заменяем сбойный диск в массиве



Вытягиваем сбойный (номер слота сбойного диска можно определить командой MegaCli -PDList -aAll | egrep "Enclosure Device ID:|Slot Number:|Inquiry Data:|Error Count:|state"), вставляем новый.

Статус нового диска должен быть "Unconfigured (good)".

MegaCli -PDList -aAll | egrep "Enclosure Device ID:|Slot Number:|Inquiry Data:|Error Count:|state"
Enclosure Device ID: N/A
Slot Number: 0
Media Error Count: 0
Other Error Count: 0
Firmware state: Online, Spun Up
Inquiry Data: SEAGATE ST3300657SS 000B6SJ81PKF
Enclosure Device ID: N/A
Slot Number: 1
Media Error Count: 0
Other Error Count: 0
Firmware state: Online, Spun Up
Inquiry Data: SEAGATE ST3300657SS 000B6SJ85JKR
Enclosure Device ID: N/A
Slot Number: 2
Media Error Count: 0
Other Error Count: 0
Firmware state: Online, Spun Up
Inquiry Data: SEAGATE ST3300657SS 000B6SJ85MBY
Enclosure Device ID: N/A
Slot Number: 4
Media Error Count: 0
Other Error Count: 0
Firmware state: Unconfigured(bad)
Inquiry Data: SEAGATE ST3300657SS 000B6SJ81PJE
Enclosure Device ID: N/A
Slot Number: 5
Media Error Count: 0
Other Error Count: 0
Firmware state: Online, Spun Up
Inquiry Data: SEAGATE ST3300657SS 000B6SJ81PH6
Enclosure Device ID: N/A
Slot Number: 6
Media Error Count: 0
Other Error Count: 0
Firmware state: Online, Spun Up
Inquiry Data: SEAGATE ST3300657SS 000B6SJ81PJQ



Если нет, как в нашем случае, статус диска "Unconfigured (bad)", то его надо сначала сделать пригодным для использования.

Проверяем метаинформацию другого, чужого RAID-массива (если диск раньше использовался) и удаляем ее.
MegaCli -CfgForeign -Scan -a0

где -a0 идентификатор рейд-железки.

MegaCli -CfgForeign -Clear -a0

Помечаем диск как "good":
MegaCli -PDMakeGood -PhysDrv [:4] -a0

где PhysDrv [E:S]:
E - Enclosure Device ID(можно посмотреть командой MegaCli -PDList -aAll | egrep "Enclosure Device ID:|Slot Number:|Inquiry Data:|Error Count:|state"). В моем случае он "N/A", значение пустое;
S - Slot Number, увидеть можно той же командой что и Enclosure Device ID;

Проверяем статус диска командой:

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

Статус должен измениться на Unconfigured(good), Spun Up

Теперь очищаем диск:

MegaCli -PDClear -Start -PhysDrv [:4] -a0

Смотрим статус очистки, ждем завершения:

watch MegaCli -PDClear -ShowProg -PhysDrv [:4] -a0

Clear Progress on Device at Enclosure N/A, Slot 4 Completed 17% in 4 Minutes.

Теперь даем команду замены диска в массиве:

MegaCli -PdReplaceMissing -PhysDrv[:4] -array1 -row1 -a0
где -array1 -row1 рейд массив №1(нумерация с нуля) и место №1(нумерация с нуля) которые можно узнать командой:

MegaCli -CfgDsply -a0 | more

Если диск отсутствует в массиве, запись "Physical Disk:" будет показана, но без дополнительно информации:

...
DISK GROUP: 1
...
(пустая строка)
Physical Disk: 1
(пустая строка)
...


И запускаем rebilding:

MegaCli -PDRbld -Start -PhysDrv [:4] -a0
Started rebuild progress on device(Encl-N/A Slot-4)
Exit Code: 0x00


Ждем окончания, смотря прогресс командой:

watch MegaCli -PDRbld -ShowProg -PhysDrv [:4] -a0

Rebuild Progress on Device at Enclosure N/A, Slot 4 Completed 9% in 2 Minutes.
Exit Code: 0x00

И еще немного о megacli...



И бонусом команда отключения писка:
MegaCli -AdpSetProp AlarmSilence -a0 #выключение пищалки до перезагрузки
Включение и выключение навсегда:
MegaCli -AdpSetProp AlarmEnbl -a0
MegaCli -AdpSetProp AlarmDsbl -a0


И приоритет ребилдинга рейда (от 30 до 100):

Посмотреть:
MegaCli -AdpGetProp RebuildRate -a0
Adapter 0: Rebuild Rate = 30%
Exit Code: 0x00

Изменить:
MegaCli -AdpSetProp RebuildRate 75 -a0

Adapter 0: Set rebuild rate to 75% success.
Exit Code: 0x00


Oct. 14, 2014