MegaCli - программа для администрирования RAID-контроллера
Установка MegaCli
Установка производилась на Debian 7.
apt-get install -y alien unzipПакетов для дебиан не нашел, поэтому придется распаковывать и устанавливать из rpm:
MegaCli-8.07.14-1.noarch.zip.001MegaCli-8.07.14-1.noarch.zip.002MegaCli-8.07.14-1.noarch.zip.003rpm2cpio 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 -vIntel(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] -a0Clear 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] -a0Started rebuild progress on device(Encl-N/A Slot-4)
Exit Code: 0x00Ждем окончания, смотря прогресс командой:
watch MegaCli -PDRbld -ShowProg -PhysDrv [:4] -a0Rebuild 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