Восстановление аппаратного RAID с помощью утилиты MegaCLI для LSI

Процесс замены вышедшего из строя физического диска на сервере с аппаратным RAID контроллером

Прежде всего определим тип RAID-контроллера.
В данном примере будет рассмотрен вариант с LSI, для других типов будут отдельные статьи, когда под рукой окажется свободный котроллер другой модели.

# lspci | grep -i RAID
00:1f.2 RAID bus controller: Intel Corporation C600/X79 series chipset SATA RAID Controller (rev 06)
07:00.0 RAID bus controller: LSI Logic / Symbios Logic MegaRAID SAS 2108 [Liberator] (rev 05)

После определения типа контроллера приступим к установке утилиты для работы с ним.
(ПО обновляется, поэтому актуальную версию проверяйте на официальном сайте LSI.)

# wget http://it.bmc.uu.se/andlov/docs/linux/raid/files/megacli-8.04.07-2.x86_64.rpm
# rpm -ihv megacli-8.04.07-2.x86_64.rpm

Проверяем состояние RAID

# megacli -LDInfo -Lall -aALL | grep State
State : Degraded

Выводим информацию о состоянии дисков:

# megacli -PDList -aAll | egrep "Enclosure Device ID:|Slot Number:|Inquiry Data:|Error Count:|state"
Enclosure Device ID: 25
Slot Number: 12
Media Error Count: 0
Other Error Count: 0
Firmware state: Online, Spun Up
Inquiry Data: IBM-ESXSST3300657SS BA586SJ3SJKY0825BA58
Enclosure Device ID: 25
Slot Number: 13
Media Error Count: 0
Other Error Count: 0
Firmware state: Online, Spun Up
Inquiry Data: IBM-ESXSST3300657SS BA586SJ3SJSY0825BA58
Enclosure Device ID: 25
Slot Number: 14
Media Error Count: 0
Other Error Count: 1233
Firmware state: Failed
Inquiry Data: IBM-ESXSST3300657SS BA586SJ3SSL60825BA58
Enclosure Device ID: 25
Slot Number: 15
Media Error Count: 0
Other Error Count: 0
Firmware state: Online, Spun Up
Inquiry Data: SEAGATE ST3300657SS 00086SJ47FF1
Enclosure Device ID: 25
Slot Number: 16
Media Error Count: 0
Other Error Count: 0
Firmware state: Online, Spun Up
Inquiry Data: SEAGATE ST3300657SS 00086SJ47GS5
Enclosure Device ID: 25
Slot Number: 17
Media Error Count: 0
Other Error Count: 0
Firmware state: Online, Spun Up
Inquiry Data: SEAGATE ST3300657SS 00086SJ684J5
Enclosure Device ID: 25
Slot Number: 18
Media Error Count: 0
Other Error Count: 0
Firmware state: Online, Spun Up
Inquiry Data: SEAGATE ST3300657SS 00086SJ60R8S
Enclosure Device ID: 25
Slot Number: 19
Media Error Count: 0
Other Error Count: 0
Firmware state: Online, Spun Up
Inquiry Data: SEAGATE ST3300657SS 00086SJ47JG1
Enclosure Device ID: 25
Slot Number: 20
Media Error Count: 0
Other Error Count: 0
Firmware state: Online, Spun Up
Inquiry Data: SEAGATE ST3300657SS 00086SJ47FKV
Enclosure Device ID: 25
Slot Number: 21
Media Error Count: 0
Other Error Count: 0
Firmware state: Online, Spun Up
Inquiry Data: SEAGATE ST3300657SS 00086SJ67CCL
Enclosure Device ID: 25
Slot Number: 22
Media Error Count: 0
Other Error Count: 0
Firmware state: Online, Spun Up
Inquiry Data: SEAGATE ST3300657SS 00086SJ67CLB
Enclosure Device ID: 25
Slot Number: 23
Media Error Count: 0
Other Error Count: 0
Firmware state: Online, Spun Up
Inquiry Data: IBM-ESXSST3300657SS BA586SJ3R65E0825BA58

Как видно из лога, то проблема с одним из дисков:

Enclosure Device ID: 25
Slot Number: 14
Media Error Count: 0
Other Error Count: 1233
Firmware state: Failed
Inquiry Data: IBM-ESXSST3300657SS BA586SJ3SSL60825BA58

Также можно вывести полную информацию по дискам подключенным к контроллеру:

# megacli -PDList -aALL
...
Enclosure Device ID: 25
Slot Number: 14
Drive's postion: DiskGroup: 0, Span: 1, Arm: 0
Enclosure position: 0
Device Id: 29
WWN: 5000C50043E6C068
Sequence Number: 3
Media Error Count: 0
Other Error Count: 1233
Predictive Failure Count: 136
Last Predictive Failure Event Seq Number: 69159
PD Type: SAS
Raw Size: 279.396 GB [0x22ecb25c Sectors]
Non Coerced Size: 278.896 GB [0x22dcb25c Sectors]
Coerced Size: 278.464 GB [0x22cee000 Sectors]
Firmware state: Failed
Device Firmware Level: BA58
Shield Counter: 0
Successful diagnostics completion on : N/A
SAS Address(0): 0x5000c50043e6c069
SAS Address(1): 0x0
Connected Port Number: 0(path0)
Inquiry Data: IBM-ESXSST3300657SS BA586SJ3SSL60825BA58
IBM FRU/CRU: 44W2235
FDE Enable: Disable
Secured: Unsecured
Locked: Unlocked
Needs EKM Attention: No
Foreign State: None
Device Speed: 6.0Gb/s
Link Speed: 6.0Gb/s
Media Type: Hard Disk Device
Drive Temperature :28C (82.40 F)
PI Eligibility: No
Drive is formatted for PI information: No
PI: No PI
Drive's write cache : Disabled
Port-0 :
Port status: Active
Port's Linkspeed: 6.0Gb/s
Port-1 :
Port status: Active
Port's Linkspeed: Unknown
Drive has flagged a S.M.A.R.T alert : Yes

Enclosure Device ID - идентификатор блока;
Slot Number - Номер слота физического диска.

Заменяем проблемный диск

Если диск в состоянии Online (в нашем случае Failed), то переводим в состояние Offline.

# megacli -PDOffline -PhysDrv [25:14] -a0
Adapter: 0: EnclId-25 SlotId-14 state changed to OffLine.

Отметим диск, как извлеченный

# megacli -PDMarkMissing -PhysDrv [25:14] -a0
EnclId-25 SlotId-14 is marked Missing.

Получаем информацию об извлеченном(-ых) диске(-ах):

# megacli -Pdgetmissing -a0
Adapter 0 - Missing Physical drives
No. Array Row Size Expected
0 1 0 285148 MB

Подсвечиваем диск, который требуется заменить:

# megacli -PdLocate -start -PhysDrv [25:14] -a0
Adapter: 0: Device at EnclId-25 SlotId-14 -- PD Locate Start Command was successfully sent to Firmware

Если возникла проблема с подсветкой, то используем лампочку активности в качестве индикации:

# megacli -AdpSetProp \{UseDiskActivityforLocate -1\} -aALL
Adapter 0: Set Use Disk Activity For Locate to Enabled success.

Удаляем диск из RAID

# megacli -PdPrpRmv -PhysDrv [25:14] -a0
Prepare for removal Success

После этого выполняем процедуру физической замены диска(-ов).

В случае с новым диском, если он содержит метаданные от старого RAID массива, эти данные необходимо затереть.

Проверяем их наличие:

megacli -CfgForeign -Scan -a0

Если таковые имеются, то удаляем следующей их командой:
(к счастью у меня такого добра не обнаружилось)

megacli -CfgForeign -Сlear -a0

Выполняем замену (нам потребуются значения параметров Array и Row из предыдущего пункта)

# megacli -PdReplaceMissing -PhysDrv [25:14] -Array1 -row0 -a0
Adapter: 0: Physical drive in array 1 at row 0 is not missing.

И запускаем Rebuild нового диска:

# megacli -PDRbld -Start -PhysDrv [25:14] -a0
Cannot Rebuild Physical Drive at Enclosure - 25, Slot - 14.
FW error description:
The specified device is in a state that doesn't support the requested command.

Если получаем эту ошибку при выполнении команды, то Rebuild запустился автоматически.

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

# megacli -PDRbld -ShowProg -PhysDrv [25:14] -a0
Rebuild Progress on Device at Enclosure 25, Slot 14 Completed 38% in 10 Minutes.

Ну и не забываем отключить индикацию диска:

# megacli -PdLocate -stop -PhysDrv [25:14] -a0
Adapter: 0: Device at EnclId-25 SlotId-14 -- PD Locate Stop Command was successfully sent to Firmware

Бонусы

Отключение звукового оповещения до перезагрузки

megacli -AdpSetProp AlarmSilence -a0

Включение и выключение звукового оповещения навсегда:

megacli -AdpSetProp AlarmEnbl -a0
megacli -AdpSetProp AlarmDsbl -a0

Проверка приоритета ребилда:

# megacli -AdpGetProp RebuildRate -a0
Adapter 0: Rebuild Rate = 30%

Изменяем приоритет ребилда в % соотношении:

# megacli -AdpSetProp RebuildRate 80 -a0
Adapter 0: Set rebuild rate to 80% success.
Поделиться Комментарии