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

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

Roman Bogachev VMware Specialist | Drone Pilot | Traveler

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

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

1
2
3
# 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.)

1
2
# 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

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

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
# 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

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

1
2
3
4
5
6
Enclosure Device ID: 25
Slot Number: 14
Media Error Count: 0
Other Error Count: 1233
Firmware state: Failed
Inquiry Data: IBM-ESXSST3300657SS BA586SJ3SSL60825BA58

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# 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.

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

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

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

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

1
2
3
4
5
# megacli -Pdgetmissing -a0
Adapter 0 - Missing Physical drives

No. Array Row Size Expected
0 1 0 285148 MB

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

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

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

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

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

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

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

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

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

1
megacli -CfgForeign -Scan -a0

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

1
megacli -CfgForeign -Сlear -a0

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

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

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

1
2
3
4
5
# 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 и оставшееся время до окончания:

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

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

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

Бонусы

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

1
megacli -AdpSetProp AlarmSilence -a0

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

1
2
megacli -AdpSetProp AlarmEnbl -a0
megacli -AdpSetProp AlarmDsbl -a0

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

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

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

1
2
# megacli -AdpSetProp RebuildRate 80 -a0
Adapter 0: Set rebuild rate to 80% success.