Восстановление аппаратного 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.

Комментарии

Популярные сообщения из этого блога

Права на папки и файлы (unix/chmod)

Автоматическое монтирование дисков и разделов в Linux или что такое fstab? Проблема Debian

Подключение USB флешки к Debian