Замена диска в рейде с помощью megacli на контроллере perc h700

Утилита MegaCli

Очень хорошее средство для мониторинга функционирования контролера и жёстких дисков под его управлением — утилита MegaCli.

Чтобы посмотреть свой контроллер:
lspci -vv | grep -i raid

Если пишет, что команда не найдена, нужно просто установить пакет:
yum install pciutils

Вывод команды примерно следующий:

Spoiler: Highlight to view

03:00.0 RAID bus controller: LSI Logic / Symbios Logic MegaRAID SAS 1078 (rev 04) Subsystem: Dell PERC 6/i Integrated RAID Controller

Установка MegaCli

Список поддерживаемых контроллеров в спойлере. Цитата с официального сайта:

Spoiler: Highlight to view

Release Date: 01/20/14
 
Supported Controllers
==================
 
MegaRAID SAS 9270-8i MegaRAID SAS 9271-4i MegaRAID SAS 9271-8i MegaRAID SAS 9271-8iCC MegaRAID SAS 9286-8e MegaRAID SAS 9286CV-8e MegaRAID SAS 9286CV-8eCC
MegaRAID SAS 9265-8i
MegaRAID SAS 9285-8e
MegaRAID SAS 9240-4i
MegaRAID SAS 9240-8i
MegaRAID SAS 9260-4i
MegaRAID SAS 9260CV-4i
MegaRAID SAS 9260-8i
MegaRAID SAS 9260CV-8i
MegaRAID SAS 9260DE-8i
MegaRAID SAS 9261-8i
MegaRAID SAS 9280-4i4e
MegaRAID SAS 9280-8e
MegaRAID SAS 9280DE-8e
MegaRAID SAS 9280-24i4e
MegaRAID SAS 9280-16i4e
MegaRAID SAS 9260-16i
MegaRAID SAS 9266-4i
MegaRAID SAS 9266-8i
MegaRAID SAS 9285CV-8e
MegaRAID SAS 8704ELP
MegaRAID SAS 8704EM2
MegaRAID SAS 8708ELP
MegaRAID SAS 8708EM2 MegaRAID SAS 8880EM2
MegaRAID SAS 8888ELP
MegaRAID SAS 8308ELP*
MegaRAID SAS 8344ELP*
MegaRAID SAS 84016E*
MegaRAID SAS 8408E*
MegaRAID SAS 8480E*
MegaRAID SATA 300-8ELP*
 
*These older controllers should work but have not been tested.

Скачать можно прямо из этой статьи:
wget http://alexxkn.ru/sites/default/files/attachments/MegaCli-8.07.14-1.noarch.rpm

Устанавливаем
rpm -i MegaCli-8.07.14-1.noarch.rpm

Проверяем, что утилита работает

MegaCli -v MegaCLI SAS RAID Management Tool Ver 8.07.14 Dec 16, 2013 (c)Copyright 2013, LSI Corporation, All Rights Reserved.

Может быть, что команда не будет найдена. Это связано с тем, что ссылка запуска не создаётся автоматически. Чтобы всё работало корректно нужно выполнить:

ln -s /opt/MegaRAID/MegaCli/MegaCli64 /usr/bin/MegaCli

Итак, кратко о главных возможностях:

  1. Информация о адаптере:
    MegaCli -AdpAllinfo -aAll
  2. Информация о конфигурации:
    MegaCli -CfgDsply -aAll
    Тут можно увидеть строчку, под названием RAID Level. К сожалению, расшифровка не совсем очевидна (нет?). Вот возможные варианты работы Вашего рейда:Raid levels: RAID0 : Primary-0, Secondary-0, RAID Level Qualifier-0 RAID1 : Primary-1, Secondary-0, RAID Level Qualifier-0 RAID5 : Primary-5, Secondary-0, RAID Level Qualifier-3 RAID6 : Primary-6, Secondary-0, RAID Level Qualifier-3 RAID10 : Primary-1, Secondary-3, RAID Level Qualifier-0
  3. Информация о всех физических устройствах
    MegaCli -PDList -aAll
  4. Информация о всех виртуальных устройствах
    MegaCli -LDInfo Lall -aAll
  5. Логи контроллера (много!):
    MegaCli -FwTermLog -Dsply -aALL
  6. Краткая полезная информация по адаптеру:
    MegaCli -ShowSummary -a0
  7. Очистка списка событий:
    MegaCli -AdpEventLog -Clear -a0
  8. Время на адаптере:
    MegaCli -AdpGetTime -aALL
  9. Количество физических дисков на первом адаптере:
    MegaCli -PDGetNum -a0

Это далеко не полный список возможностей! Кому интересно вот тут можно почитать ещё.

Вернёмся к скрипту проверки нормального состояния контроллера. Для этого нам будет необходимо знать кол-во жёстких дисков, установленных в нём. Для примера, у нас их 6. Вот пример скрипта, который будет проверять «живность» HDD и уведомлять, если что-то не так. Уже пару раз спал.

#!/bin/bash
count2=`/opt/MegaRAID/MegaCli/MegaCli64 -LDInfo -Lall -aALL | grep Optimal | wc -l`
if [ $count2 -lt 1 ]; then echo «`/opt/MegaRAID/MegaCli/MegaCli64 -LDInfo -Lall -aALL`» | mail -s «problem with raid YOUR_IP» itsme@gmail.com ; fi
count1=`/opt/MegaRAID/MegaCli/MegaCli64 -PDList -aALL | grep Online | wc -l`
if [ $count1 -lt 6 ]; then echo «`/opt/MegaRAID/MegaCli/MegaCli64 -PDList -aALL`» | mail -s «problem with disks YOUR_IP» itsme@gmail.com; fi

Собственно, он проверяет статусы ответов контроллера и дисков и если что-то не так — отправляет сообщение на почту.

Конец.

Источник: https://alexxkn.ru/node/23

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

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

Прежде всего определим тип RAID-контроллера.

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

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.)
Выводим информацию о состоянии дисков:

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<\p>

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<\p>

Enclosure Device ID: 25

Slot Number: 14

Media Error Count: 0

Other Error Count: 1233

Firmware state: Failed

Inquiry Data: IBM-ESXSST3300657SS BA586SJ3SSL60825BA58<\p>

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<\p>

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<\p>

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<\p>

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<\p>

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<\p>

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<\p>

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<\p>

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<\p>

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

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

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)<\p>

Inquiry Data: IBM-ESXSST3300657SS BA586SJ3SSL60825BA58<\p>

IBM FRU/CRU: 44W2235<\p>

FDE Enable: Disable

Secured: Unsecured

Locked: Unlocked

Needs EKM Attention: No

Foreign State: None<\p>

Device Speed: 6.0Gb/s<\p>

Link Speed: 6.0Gb/s<\p>

Media Type: Hard Disk Device

Drive Temperature :28C (82.40 F)

PI Eligibility: No<\p>

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<\p>

Port-1 :

Port status: Active

Port's Linkspeed: Unknown<\p>

Drive has flagged a S.M.A.R.T alert : Yes

Enclosure Device ID — идентификатор блока;
Slot Number — Номер слота физического диска.
Если диск в состоянии Online (в нашем случае Failed), то переводим в состояние Offline.

Adapter: 0: EnclId-25 SlotId-14 state changed to OffLine.

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

EnclId-25 SlotId-14 is marked Missing.

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

Adapter 0 — Missing Physical drives
No. Array Row Size Expected
0 1 0 285148 MB

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

Adapter: 0: Device at EnclId-25 SlotId-14 — PD Locate Start Command was successfully sent to Firmware

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

Adapter 0: Set Use Disk Activity For Locate to Enabled success.

Prepare for removal Success

После этого выполняем процедуру физической замены диска(-ов).
В случае с новым диском, если он содержит метаданные от старого RAID массива, эти данные необходимо затереть. Проверяем их наличие:

megacli -CfgForeign -Scan -a0

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

megacli -CfgForeign -Сlear -a0

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

Adapter: 0: Physical drive in array 1 at row 0 is not missing.

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

Cannot Rebuild Physical Drive at Enclosure — 25, Slot — 14.

FW error description:<\p>
The specified device is in a state that doesn't support the requested command.

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

Rebuild Progress on Device at Enclosure 25, Slot 14 Completed 38% in 10 Minutes.

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

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

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

Adapter 0: Rebuild Rate = 30%

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

Adapter 0: Set rebuild rate to 80% success.

+—+—+—-+—-+
| 8 | 9 | 10 | 11 |
+—+—+—-+—-+
| 4 | 5 | 6 | 7 |
+—+—+—-+—-+
| 0 | 1 | 2 | 3 |
+—+—+—-+—-+ Отобразить состояние дисков:
megacli -PDList -aAll | egrep «Enclosure Device ID:|Slot Number:|Inquiry Data:|Error Count:|state» Отключить пищалку на СХД
megacli -AdpSetProp AlarmDsbl -aALL Включить пищалку на СХД
megacli -AdpSetProp AlarmEnbl -aALL Информация по виртуальному диску
megacli -LDInfo -Lall -aALL
 

__________________________________________________________________________________

Данная утилита от LSI так же позволяет оперировать рейд-контроллерами от Dell. Но замена дисков через такую утилиту — целый hardcore, только для настоящих Tru-админов )).
Тестовый стенд: контроллер PERC 6/i, RAID-1, Linux MegaCli64, выпал 1 диск.
Смотрим состояние RAID’a:
# /usr/local/bin/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: 32 Slot Number: 0 Media Error Count: 0 Other Error Count: 0 Firmware state: Online, Spun Up Inquiry Data: FUJITSU MBC2073RC D506BV03P9605GU7 Enclosure Device ID: 32 Slot Number: 1 Media Error Count: 16655 Other Error Count: 15 Firmware state: Failed Inquiry Data: SEAGATE ST973452SS 00076TA0EDKH Enclosure Device ID: 32 Slot Number: 2 Media Error Count: 0 Other Error Count: 0 Firmware state: Online, Spun Up Inquiry Data: SEAGATE ST973451SS SM043PD1WB4Z Enclosure Device ID: 32 Slot Number: 3 Media Error Count: 0 Other Error Count: 0 Firmware state: Online, Spun Up Inquiry Data: SEAGATE ST973451SS SM043PD1WBN7 Enclosure Device ID: 32 Slot Number: 4 Media Error Count: 0 Other Error Count: 0 Firmware state: Online, Spun Up Inquiry Data: SEAGATE ST973451SS SM043PD1T7EG Enclosure Device ID: 32 Slot Number: 5 Media Error Count: 0 Other Error Count: 0 Firmware state: Online, Spun Up Inquiry Data: FUJITSU MBC2073RC D506BV03P9605GF0

Как видим, это диск [32:1]. Именно так к нему в дальнейшем нужно обращаться. Что бы заменить диск, нужно его перевести в offline, пометить как «пропавший» и удалить: общий вид команд:

# MegaCli -PDOffline -PhysDrv [E:S] -aN # MegaCli -PDMarkMissing -PhysDrv [E:S] -aN # MegaCli -PDPrpRmv -PhysDrv [E:S] -aN

в нашем случае это будет так:

# MegaCli -PDOffline -PhysDrv [32:1] -a0 # MegaCli -PDMarkMissing -PhysDrv [32:1] -a0 # MegaCli -PDPrpRmv -PhysDrv [32:1] -a0

Да! Но и это ещё не всё. Потом нужно задать команду замены диска (эту команду выполнить уже после замены диска).: общий вид:

# MegaCli -PdReplaceMissing -PhysDrv [E:S] -ArrayN -rowN -aN

в нашем случае это будет так:

# MegaCli -PdReplaceMissing -PhysDrv [32:1] -Array0 -row1 -a0

Если нужно подсветить диск (что бы было видно, какой нужно менять) делаем так (при этом диск будет непрерывно гореть зелёным светом):

# MegaCli -PdLocate -start -PhysDrv [32:1] -a0

Что бы прекратить:

# MegaCli -PdLocate -stop -PhysDrv [32:1] -a0

Но в моём случае мне повезло, так как в опциях рейда стояло autorebuild:
# MegaCli -adpallinfo -a0 | grep 'Auto Rebuild' Auto Rebuild : Enabled и поэтому, после замены диска не пришлось выполнять команду замены диска — он сам начал процесс перестройки рейда:

# MegaCli -PDRbld -ShowProg -PhysDrv [32:1] -a0 Rebuild Progress on Device at Enclosure 32, Slot 1 Completed 1% in 0 Minutes.

При этом Firmware state тоже в состоянии Rebuild:
# MegaCli -PDInfo -PhysDrv [32:1] -a0 | grep 'Firmware state' Firmware state: Rebuilding
Как заменить диск в массиве, если rebuild не начался автоматически (пример взят из http://wiki.hetzner.de)?
Статус нового диска должен быть «Unconfigured (good)«. Это можно проверить с помощью PDList. Если статус диска «Unconfigured (bad)«, то его надо сначала сделать пригодным для использования как показано ниже:
root@rescue ~ # megacli -PDList -a0 | grep Firmware Firmware state: Online, Spun Up Device Firmware Level: CC45 Firmware state: Online, Spun Up Device Firmware Level: CC45 Firmware state: Unconfigured(bad), Spun Up Device Firmware Level: CC45 Firmware state: Online, Spun Up Device Firmware Level: CC45
root@rescue ~ # megacli -PDMakeGood -PhysDrv [245:3] -a0 Ещё один момент. Иногда, после того, как вы перевели диск из bad в good, он может оказаться в «не родной» конфигурации:

Foreign State: Foreign

и при попытке что-то с ним сделать получаем ошибку:

# MegaCli -CfgLdAdd -r0[80:17] -a0 The specified physical disk does not have the appropriate attributes to complete the requested command. Exit Code: 0x26 Обнаружить сколько дисков в такой конфигурации можно так:

# MegaCli -CfgForeign -Scan -a0 There are 1 foreign configuration(s) on controller 0. Exit Code: 0x00 Очистить «не родную» конфигурацию:
# MegaCli -CfgForeign -Clear -a0 Foreign configuration 0 is cleared on controller 0. Exit Code: 0x00 Если диск «good«, то им можно заменить отсутствующий диск. Для этого надо указать массив и позицию, где надо произвести замену. Эти значения можно получить, например, из megacli -CfgDsply -a0. Если диск отсутствует в массиве, запись «Physical Disk:» будет показана, но без дополнительно информации. В следующем примере четвёртый диск первого массива (Array0) заменяется диком из Enclosure 245 Slot 3PhysDrv[245:3]«):
root@rescue ~ # megacli -PdReplaceMissing -PhysDrv[245:3] -array0 -row4 -a0 Adapter: 0: Missing PD at Array 0, Row 4 is replaced. Exit Code: 0x00 root@rescue ~ # megacli -PDRbld -Start -PhysDrv[245:3] -a0 Started rebuild progress on device(Encl-245 Slot-3) Exit Code: 0x00 root@rescue ~ # megacli -PDRbld -ShowProg -PhysDrv [245:3] -aAll Rebuild Progress on Device at Enclosure 245, Slot 3 Completed 1% in 0 Minutes.
А что если, у вас массив построен на JBOD дисках и нужно заменить диск в zpool’e? Тогда делаем так: — после физической замены диска он становится:

Firmware state: Unconfigured(good), Spun Up Foreign State: None Если не выходит его просто сделать JBOD’ом:

# MegaCli -PDMakeJBOD -PhysDrv[68:16] -a0
тогда делаем его просто RAID0:
# MegaCli -CfgLdAdd -r0[68:16] -a0

CopyBack state.

Это состояние диска, при котором информация переносится с hotspare диска на новый:
Enclosure Device ID: N/A Slot Number: 0 … Firmware state: Copyback … Посмотреть, сколько осталось:

# MegaCli -PDCpyBk -ShowProg -PhysDrv[:0] -a0 Copyback Progress on Device at Enclosure N/A, Slot 0 Completed 13% in 60 Minutes. Exit Code: 0x00

По завершению, диск перейдёт в состояние Unconfigured(good), Spun Up. До тех пор RAID будет в состоянии Degrade:
# MegaCli -LDInfo -Lall -aALL | grep State State : Degraded
Дальше, переводим в Online:
# MegaCli -PdReplaceMissing -PhysDrv[:0] -array0 -row0 -a0 # MegaCli -PDOnline -PhysDrv [:0] -a0 # MegaCli -LDInfo -Lall -aALL | grep State State               : Optimal

 

Источник: http://belozerovitw.blogspot.com/2017/10/raid-megacli.html

Мониторинг дисков используя megacli на RAID LSI

Смотрим какие у нас есть диски.

root@il-nv-s06:~# lshw -c disk *-disk:0 description: SCSI Disk product: SMC2108 vendor: SMC physical id: 2.0.0 bus info: scsi@0:2.0.0 logical name: /dev/sda version: 2.90 serial: 0074df64060b7e521510538600800403 size: 2791GiB (2996GB) capabilities: gpt-1.

00 partitioned partitioned:gpt configuration: ansiversion=5 guid=02712922-3f89-4077-8a1b-2ed197f3c54c *-disk:1 description: SCSI Disk product: SMC2108 vendor: SMC physical id: 2.1.0 bus info: scsi@0:2.1.0 logical name: /dev/sdb version: 2.90 serial: 00405d940d100d0a1810538600800403 size: 54GiB (58GB) capabilities: gpt-1.

00 partitioned partitioned:gpt configuration: ansiversion=5 guid=992168b5-1ecd-4e43-ab0f-f2e0b945ab27 *-disk:2 description: SCSI Disk product: SMC2108 vendor: SMC physical id: 2.2.0 bus info: scsi@0:2.2.0 logical name: /dev/sdc version: 2.90 serial: 00074cce4a116a071810538600800403 size: 7446GiB (7995GB) capabilities: gpt-1.

00 partitioned partitioned:gpt

configuration: ansiversion=5 guid=92c542ab-7199-4525-89e3-057744b8397d

SMC2108 – означает, что у нас Supermicro MC2108 контроллер. Так же можно убедиться, что у нас Megaraid контроллер используя эту команду.

root@il-nv-s06:~# cat /proc/devices | grep mega
250 megaraid_sas_ioctl
Как видим, у нас LSI SAS MegaRAID контроллер, диски которого можно мониторить используя smartctl или же используя специализированную утилиту megacli. Для начала присмотримся к megacli.

В стандартных репозиториях ее нет, но можно скачать с официального сайта и собрать с исходников.

Но я рекомендую использовать специальный репозиторий (за который хочу сказать ОГРОМНОЕ спасибо) в котором есть почти весь набор специализированных утилиты под любой тип аппаратных рейдов.

root@il-nv-s06:~# echo 'deb http://hwraid.le-vert.net/ubuntu precise main' > /etc/apt/sources.list.d/raid.list root@il-nv-s06:~# wget -O — http://hwraid.le-vert.net/debian/hwraid.le-vert.net.gpg.key | sudo apt-key add — root@il-nv-s06:~# apt-get update

root@il-nv-s06:~# apt-get install megacli

Перечень всех доступных в репозитории утилит наведен здесь

Проверяем на ошибки физический диск megaraid используя megacli.

root@il-nv-s06:~# megacli -pdinfo -physdrv [4:0] -aALL

Enclosure Device ID: 4 Slot Number: 0 Drive's position: DiskGroup: 0, Span: 0, Arm: 0 Enclosure position: 1 Device Id: 0 WWN: 5000C5002130CD08 Sequence Number: 2 Media Error Count: 38 Other Error Count: 0 Predictive Failure Count: 0 Last Predictive Failure Event Seq Number: 0

PD Type: SAS

Raw Size: 931.512 GB [0x74706db0 Sectors] Non Coerced Size: 931.012 GB [0x74606db0 Sectors] Coerced Size: 930.

390 GB [0x744c8000 Sectors] Sector Size: 0 Firmware state: Online, Spun Up Device Firmware Level: 0005 Shield Counter: 0 Successful diagnostics completion on : N/A SAS Address(0): 0x5000c5002130cd09 SAS Address(1): 0x0 Connected Port Number: 0(path0) Inquiry Data: SEAGATE ST31000424SS 00059WK1D042 FDE Capable: Not Capable 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: Not Certified Drive Temperature :29C (84.20 F) PI Eligibility: No Drive is formatted for PI information: No PI: No PI 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 : No Как видим, на первом физическом диске есть “Media Error Count: 38″. Это означает, что запасные(зарезервированные) сектора для remap(замены) битых секторов диска – закончились. И нужно проводить замену диска.

Так же нужно мониторить следующие параметры используя команду:

root@il-nv-s06:~# megacli -LdPdInfo -aALL | grep -E «(Id|State |Bad Blocks|Firmware state|Error Count|Predictive Failure Count)» # Первый виртуальный диск — он же /dev/sda Virtual Drive: 0 (Target Id: 0) # Статус RAID-a (Degraded — если проблема с одним из дисков; Optimal — нормальный статус) State : Degraded # Наличие бедблоков на виртуальном диске Bad Blocks Exist: No # ID физического диска Device Id: 14 # Количество ошибок, которые нет возможности исправить — самый важный компонент Media Error Count: 0 # Количество иных ошибок не связанных с бедблоками Other Error Count: 0 # Определение количества возможных ошибок Predictive Failure Count: 0 # Статус физического диска (Rebuild — добавляется в RAID; Online — в RAID-e) # Также есть «Failed», «Online, Spun Up», «Online, Spun Down», «Unconfigured(bad)», «Unconfigured(good), Spun down»,»Hotspare, Spun down», «Hotspare, Spun up» or «not Online». Firmware state: Rebuild Device Id: 1 Media Error Count: 0 Other Error Count: 0 Predictive Failure Count: 0 Firmware state: Online, Spun Up Device Id: 2 Media Error Count: 0 Other Error Count: 0 Predictive Failure Count: 0 Firmware state: Online, Spun Up Device Id: 3 Media Error Count: 0 Other Error Count: 0 Predictive Failure Count: 0 Firmware state: Online, Spun Up Virtual Drive: 1 (Target Id: 1) State : Optimal Bad Blocks Exist: No Device Id: 13 Media Error Count: 0 Other Error Count: 0 Predictive Failure Count: 0 Firmware state: Online, Spun Up Media Type: Solid State Device Device Id: 12 Media Error Count: 0 Other Error Count: 0 Predictive Failure Count: 0 Firmware state: Online, Spun Up

Media Type: Solid State Device

Теперь напишем маленький скрипт для мониторинга всех нужных параметров включая BBU.

root@il-nv-s06:~# cat megaraid.sh #!/bin/bash #Вся информация по физическим и логическим дискам VD_PDID_ERRORS=`megacli -ldpdinfo -aALL | grep -E «(Id|State |Media Error|Firmware state)»` #Вся информация по батарее BBU_OUT=`megacli -AdpBbuCmd -aAll | grep -E «(Full Charge|^Max Error|Battery State)»` while read line do #Ловим название (ID) логического диска VD=`echo ${line} | grep -Eo «Virtual Drive: [0-9]»` #Ловим название (ID) физического диска PD_ID=`echo ${line} | grep -E «Device Id:»` #Ловим важные ошибки физических дисков PD_ERRORS=`echo ${line} | grep -E «(Media Error)»` #Ловим статус рейда RAID_STAT=`echo ${line} | grep -E «State»` #Ловим статус прошивки PD_FIRMWARE=`echo ${line} | grep -E «Firmware»` if [ -n «${VD}» ] then DRIVE=»${VD} ==> » elif [ -n «${RAID_STAT}» ] then VD_RAID_STAT=`echo «${RAID_STAT}» | awk '{print $3}'` VD_RAID=»${DRIVE}${RAID_STAT} ==> » #Если статус рейда отличается от нормального — число ошибок растет if [ ${VD_RAID_STAT} != 'Optimal' ] then #echo «Raid with problem» VDRIVE_WITH_FAIL=»${VD_RAID} ${VDRIVE_WITH_FAIL}» let «ERROR_COUNT += 1» fi elif [ -n «${PD_ID}» ] then PD_DRIVE=»${DRIVE}${PD_ID} ==> » elif [ -n «${PD_ERRORS}» ] then #Если есть ошибка — ловим их количество PD_ERR=${PD_DRIVE}${PD_ERRORS} let «ERROR_COUNT +=`echo ${PD_ERRORS} | awk '{print $4}'`» TRAP=`echo ${PD_ERRORS} | awk '{print $4}'` if [ ${TRAP} -ne 0 ] then DISK_WITH_FAIL=»${PD_ERR} ${DISK_WITH_FAIL}» fi elif [ -n «${PD_FIRMWARE}» ] then #Проверяем или прошивка в порядке, если нет — число ошибок растет PD_FIRM_STATUS=`echo «${PD_FIRMWARE}» | cut —delimiter=»:» -f2 | sed 's/ //g'` PD_FIRM=${PD_DRIVE}${PD_FIRMWARE} if [ ${PD_FIRM_STATUS} != «Online,SpunUp» ] then #echo «PD firmware with problem» PDFIRM_WITH_FAIL=»${PD_FIRM} ${PDFIRM_WITH_FAIL}» let «ERROR_COUNT += 1» fi fi

done<\p>

Источник: http://butnet.ru/monitoring-diskov-ispolzuya-megacli-na-raid-lsi/

Замена диска RAID на Supermicro X9SCL-F

В статье Замена диска RAID на Supermicro X9SCL-F рассмотрен типичный сценарий для администраторов серверного оборудования — замена битого диска в массиве.

Да, это все та же дешевая серверная материнская плата Supermicro X9SCL-F как и в статье Управление встроенным RAID на Supermicro X9SCL-F, да, это все тот же RAID на встроенном контроллере.

Тем не менее одинаково важно что на дорогом, что на дешевом оборудовании прорабатывать базовые сценарии в случае возникновения аварийных ситуаций, чем я и займусь.

Если вам интересны raid-технологии и задачи администрирования raid-контроллеров, рекомендую обратиться к рубрике RAID на моем блоге.

Предположим из массива выпал один диск. Это может быть реальная ситуация или её моделирование. В моем случае это второй вариант и заключается он в том, что я просто выдернул находящийся в массиве диск и в соседнюю корзину вставил другой, заранее подготовленный.

Разумеется делал я это при выключенном сервере, хоть и он поддерживал возможность горячей замены (но в этом случае тоже не все так просто, на деле нужно обязательно переводить диск в Offline из ПО для управления массивами, как я это делал в статье Горячая замена диска Adaptec 6405)

В процессе загрузки сервера вы увидите нечто подобное:

На скриншоте выше массив находится в деградированном состоянии.

Лично мне непонятно почему строка состояния подсвечивается только желтым цветом, ведь по сути состояние массива критическое и ещё чуть-чуть и данные можно потерять безвозвратно и поэтому нужен красный цвет, чтобы явно сигнализировать о степени важности. Но не об этом речь.

Увидев сообщение при загрузке, нажимаем CTRL+M и заходим в меню утилиты LSI Software RAID Configuration Utility. На всякий случай проверим состояние массива, чтобы убедиться в проблеме. Для этого заходим в ObjectsVirtual Drive — выбираем наш массив и нажимаем Enter:

Статус — DEGRADED, все верно. В этом же меню заходим в Physical Drive и смотрим какие диски у нас есть. К этому моменту у меня уже был вставлен запасной диск в другую корзину сервера, а «битый» диск лежал рядом с сервером.

Система помнит вышедший из строя диск и потому отображает о нем информацию, но показывает состояние FAIL.

Не будем терять время и объясним системе, что новый диск можно использовать для замены, а то без нашего разрешения он так и будет оставаться без дела.

Для этого сделаем его диском Hot Spare (горячий резерв) — ставим указатель на нужный диск и нажимаем Enter, далее выбираем пункт меню Make Hot Spare — Enter — Yes.

Замечаем, что статус диска изменился:

Теперь вручную изменим его состояние. Также Enter по диску — Change Drv State.

Тут у меня все пошло не совсем так, как я предполагал.

По идее, поняв, что диск имеет статус Hot Spare, не используется ни в каком другом массиве и находится в состоянии Ready, контроллер должен был незамедлительно использовать этот диск для замены вышедшего из строя (разумеется если по характеристикам этот диск был аналогичен находящемуся в массиве исправному диску, а он таким и был). Этого не произошло. Почему непонятно.

Я бесцельно полазил по меню и в один прекрасный момент утилита управления RAID повисла! Чтобы зависло низкоуровневое ПО я ещё не видел, но факт остается фактом (теоретически просто мог повиснуть коннект к консоли IPMI, хоть и вероятность этого мала, но мне лень было идти до серверной и проверять что там действительно происходит).

В любом случае пришлось перезагружать по ALT+CTRL+DEL (в этом случае это норма, бояться ничего не стоит, это вам не полноценная ОС).

Тем не менее в процессе загрузки и пролистывании сообщений BIOS контроллер сказал, что в системе не обнаружено ни одного диска… Новость не очень.

А если бы там были полезные данные? На самом деле все закончилось благополучно — я снова перезагрузил сервер и после перезагрузки диски определились, я зашел в утилиту управления по CTRL+M и на свое удивление увидел прогресс бар выполнения ребилда:

Стоит отметить, что спустя 3 часа процесс продвинулся с 0 до 3 %, что как-то мало. Тем не менее не стоит ожидать подвигов от встроенных решений. В общем-то на этом я хочу закончить статью.

Мой вам совет — всегда прорабатывайте основные сценарии администрирования. В случае с контроллерами RAID — это управление массивами (или как их ещё называют логическими дисками), сценарии идентификации и замены битых дисков.

Источник: https://blog.bissquit.com/hardware/raid/disk-replace-on-raid-supermicro-x9scl-f/

Тестирование контроллеров Perc H200 и Perc H700 512MB cache

Тестирование проводилось на сервере Dell R510 на контроллерах Perc H200 и Perc H700 512MB cache с пятью разными винчестерами. 

К серверу R510 можно подключить до 12 дисков на скорости 6g благодаря чему можно подключать к нему SATA SSD и SATA диски с интерфейсом 6g без потери производительности.

Контроллер Perc H200 не показал существенной разницы в IR и IT mode режимах, поэтому результаты отображены в IT mode, поскольку именно этот режим используется для создания файловых хранилищ на базе FreeNAS, NAS4Free и ZFS

SSD диски.

Самую высокую скорость на 4k операциях (2 и 4 строчки) показал винчестер Intel SSD DC3500 300GB 3g 2.5

На последовательном чтении (1 и 3 строчки) видно что 3g интерфейс винчестера наложил свои ограничения на скорость

На контроллере Perc H700 с кешем скорость чтения на мелких операциях слегка повысилась, однако скорость записи довольно сильно упала

Perc H200 Perc H700

Самая высокая скорость на последовательном чтении и второе место по 4к операциям у обычного пользовательского SSD 120GB 6g 2.5

За счет интерфейса 6g видна очень сильная разница в последовательном чтении по сравнению с  Intel SSD DC3500 300GB 3g 2.5 однако почти все операции записи уступают этому же винчестеру.

Кеш контроллера Perc H700 немного ускоряет мелкие операции чтения однако замедляет их запись. 

Perc H200 Perc H700

Судя по этим двум результатам с SATA SSD лучше использовать контроллер Perc H200 без кеша.

SAS диски 3.5

Из 3.5 дисков использовались HP SAS 300GB 15k 6g и Dell SAS 146GB  15 k 6g

С контроллером H200 HP SAS 300GB оказался на 60% быстрее чем Dell 146GB на последовательных операциях и немножко быстрее на мелких операциях. 

Кеш контроллера H700 не повлиял на последовательные операции, ускорил мелкие операции чтения на10-15% и очень сильно ускорил мелкие операции записи. 60% на мелкие операции с очередью и почти в 6 раз на случайной записи мелких операций.

HP SAS 300GB 15k 6g 

Perc H200 Perc H700

Dell SAS 146GB  15 k 6g

Perc H200 Perc H700

Исходя из этих двух результатов с SAS дисками лучше использовать контроллер Perc H700 с кешем, который позволяет существенно увеличить скорость записи мелких операций.

Винчестер Seagate 3TB 6g 3.5 model 

Perc H200 Perc H700

Обычный SATA винчестер похож на HP SAS 300GB по скорости линейного чтения, однако очень сильно уступает на мелких операциях. В связке с контроллером H700 ситуация с записью на мелких операциях улучшается почти в 3 раза, однако до показателей SAS дисков все еще далековато. 

Такие диски хороши для бекапов с большими файлами, однако не очень годятся для «реальной» работы

Источник: https://servak.com.ua/blog/testy/testirovanie-kontrollerov-perc-h200-i-perc-h700-512mb-cache/

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

Установка MegaCli

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

apt-get install -y alien unzipПакетов для дебиан не нашел, поэтому придется распаковывать и устанавливать из rpm:

wget http://linux-bash.ru/docs/megacli/MegaCli-8.07.14-1.noarch.rpm
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/ASlot Number: 0Media Error Count: 0Other Error Count: 0Firmware state: Online, Spun UpInquiry Data: SEAGATE ST3300657SS 000B6SJ81PKF Enclosure Device ID: N/ASlot Number: 1Media Error Count: 0Other Error Count: 0Firmware state: Online, Spun UpInquiry Data: SEAGATE ST3300657SS 000B6SJ85JKR Enclosure Device ID: N/ASlot Number: 2Media Error Count: 0Other Error Count: 0Firmware state: Online, Spun UpInquiry Data: SEAGATE ST3300657SS 000B6SJ85MBY Enclosure Device ID: N/ASlot Number: 4Media Error Count: 0Other Error Count: 0Firmware state: Online, Spun UpInquiry Data: SEAGATE ST3300657SS 000B6SJ81PJE Enclosure Device ID: N/ASlot Number: 5Media Error Count: 0Other Error Count: 0Firmware state: Online, Spun UpInquiry Data: SEAGATE ST3300657SS 000B6SJ81PH6Enclosure Device ID: N/ASlot Number: 6Media Error Count: 0Other Error Count: 0Firmware 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/ASlot Number: 0Media Error Count: 0Other Error Count: 0Firmware state: Online, Spun UpInquiry Data: SEAGATE ST3300657SS 000B6SJ81PKF Enclosure Device ID: N/ASlot Number: 1Media Error Count: 0Other Error Count: 0Firmware state: Online, Spun UpInquiry Data: SEAGATE ST3300657SS 000B6SJ85JKR Enclosure Device ID: N/ASlot Number: 2Media Error Count: 0Other Error Count: 0Firmware state: Online, Spun UpInquiry Data: SEAGATE ST3300657SS 000B6SJ85MBY Enclosure Device ID: N/ASlot Number: 4Media Error Count: 0Other Error Count: 0Firmware state: Unconfigured(bad)Inquiry Data: SEAGATE ST3300657SS 000B6SJ81PJE Enclosure Device ID: N/ASlot Number: 5Media Error Count: 0Other Error Count: 0Firmware state: Online, Spun UpInquiry Data: SEAGATE ST3300657SS 000B6SJ81PH6 Enclosure Device ID: N/ASlot Number: 6Media Error Count: 0Other Error Count: 0Firmware 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 -a0Adapter 0: Rebuild Rate = 30%Exit Code: 0x00Изменить:
MegaCli -AdpSetProp RebuildRate 75 -a0Adapter 0: Set rebuild rate to 75% success.Exit Code: 0x00

Источник: http://linux-bash.ru/menudisk/113-megacli.html

Конфигурация RAID LSI через утилиту MegaCLI [Справочный центр RU-TLD]

help_system:servera:raid:nastroika-raidmegacli

Инструкция также подходит для RAID контроллеров DELL PERC , IBM ServeRaid , ASUS PIKE и другие контроллеры на базе чипсета LSI.

Первым делом нужно установить megacli

  • Скачиваем утилиту по ссылке

https://ru-tld.ru/h/_media/help_system:servera:raid:8.07.14_megacli.zip

8.07.14_megacli.zip

При необходимости устанавливаем unzip

yum -y install unzip

В архиве присутствует также утилита и для ОС Windows. Все команды приведенные ниже подходят и для нее.

Формат ввода C:megacli64 -CfgLdDel -Lall -aAll

rpm -i MegaCli-8.07.14-1.noarch.rpm

Перед настройкой массива, возможно, потребуется удалить использованную ранее конфигурацию. Для того чтобы просто удалить логические устройства вы можете использовать CfgLdDel.

/opt/MegaRAID/MegaCli/MegaCli64 -CfgLdDel -Lall -force -aAll
/opt/MegaRAID/MegaCli/MegaCli64 -CfgClr -Force -aAll
/opt/MegaRAID/MegaCli/MegaCli64 -CfgForeign -Clear -A0

Далее узнаем номер адаптера, на котором будем создавать новый RAID.

для Linux
/opt/MegaRAID/MegaCli/MegaCli64 Adpallinfo -aall | grep '^Adapter'
Adapter #0 для Windows MegaCli64 Adpallinfo -aall | findstr /c:»Adapter»
Adapter #0

Теперь, имея номер адаптера (их может быть несколько в зависимости от сервера), нужно узнать в каких слотах и какой корзине установлены диски подходящие для конфигурации в массив.

для Linux
/opt/MegaRAID/MegaCli/MegaCli64 -PDlist -aall | grep -e '^Enclosure Device ID:' -e '^Slot Number:' -e 'Firmware state' для Windows
MegaCli64 -PDlist -aall | findstr /c:»Enclosure Device ID:» /c:»Slot Number:» /c:»Firmware state:» Enclosure Device ID: 21
Slot Number: 0
Firmware state: Hotspare, Spun down Enclosure Device ID: 21
Slot Number: 1
Firmware state: Hotspare, Spun down Enclosure Device ID: 21
Slot Number: 2
Firmware state: Hotspare, Spun down Enclosure Device ID: 21
Slot Number: 3
Firmware state: Hotspare, Spun down

Везде где написано Firmware state: Hotspare, Spun down (либо Not configured) – это нужные адреса наших слотов, в которые установлены не сконфигурированные в массив 4 диска.

Теперь мы имеем всю нужную информацию для создания новых рейдов. В нашем случаи команда будет выглядеть так:

/opt/MegaRAID/MegaCli/MegaCli64 -CfgSpanAdd -r10 -Array0[21:0,21:1] Array1[21:2,21:3] WB RA Direct NoCachedBadBBU -a0

Т.е. создается новый RAID10 на 0-м адаптере из списка дисков, WriteBack включен, ReadCache адаптивный, Cache также выключен без BBU.
RAID 10 создается Array попарно, те если у Вас 12 дисков, то нужно создавать 6 Array. Таким же способом можно создать RAID1,RAID5 и остальные типы рейдов под LSI megaraid контроллером – требуются только адреса слотов.

После этого у нас появиться новый диск в папке /dev, который можно форматировать в нужную файловую систему и маунтить.

/opt/MegaRAID/MegaCli/MegaCli64 -CfgLdAdd -r1 [21:0,21:1] WB RA Direct NoCachedBadBBU -a0

Данный пример создает RAID1 на 0-м адаптере из списка дисков.

/opt/MegaRAID/MegaCli/MegaCli64 -CfgLdAdd -r5 [21:0,21:1,21:2,21:3] WB RA Direct NoCachedBadBBU -a0

Данный пример создает RAID5 на 0-м адаптере из списка дисков.

/opt/MegaRAID/MegaCli/MegaCli64 -LDInfo -Lall -aALL/opt/MegaRAID/MegaCli/MegaCli64 -AdpBbuCmd -aALL

, после установки дополнительного диска потребуется изменить настройки соответствующего массива. Пример добавления диска в RAID5:

/opt/MegaRAID/MegaCli/MegaCli64 -LDRecon -Start -r5 -Add -PhysDrv[21:5] -L0 -a0

По средствам создания RAID-0 на каждом диске:

/opt/MegaRAID/MegaCli/MegaCli64 -CfgEachDskRaid0 WB RA Direct CachedBadBBU -a0

Для сохранения настроек контроллера и всех массивов выполните команду:

/opt/MegaRAID/MegaCli/MegaCli64 -CfgSave -f raidcfg.txt -a0

Для восстановления настроек контроллера используйте следующую команду:

/opt/MegaRAID/MegaCli/MegaCli64 -CfgRestore -f raidcfg.txt -a0 /opt/MegaRAID/MegaCli/MegaCli64 -LDSetProp WB -LALL -aALL/opt/MegaRAID/MegaCli/MegaCli64 -LDSetProp CachedBadBBU -LALL -aALL/opt/MegaRAID/MegaCli/MegaCli64 -LDSetProp NoCachedBadBBU -LALL -aALL

Категорически не рекомендуется включать кэш при отсутствии батареи на RAID контроллере, так как при аварийном отключении питания возможна потеря данных влекущая к неработоспособности сервера!

/opt/MegaRAID/MegaCli/MegaCli64 -CfgSpanAdd -r10 -Array0[32:0,32:1] Array1[32:2,32:3] WB RA Direct CachedBadBBU -strpsz 1024 -a0 /opt/MegaRAID/MegaCli/MegaCli64 -LDSetProp RA -LALL -aALL

, чтобы физически подсветить неисправный диск на фронт-панели сервера

/opt/MegaRAID/MegaCli/MegaCli64 -PDLocate -start -PhysDrv [12:6] -aAll — Включить светодиод на HDD /opt/MegaRAID/MegaCli/MegaCli64 -PDLocate -stop -PhysDrv [12:6] -aAll — Отключить светодиод на HDD ,где [12:6] — это 12 — Enclosure Device ID 6 — Slot Number/opt/MegaRAID/MegaCli/MegaCli64 -AdpPR -Start -aALL — запуск верификации /opt/MegaRAID/MegaCli/MegaCli64 -AdpPR -Stop -aALL — остановка верификации /opt/MegaRAID/MegaCli/MegaCli64 -AdpPR -Info -aALL — проверка состояния //узнаем номер жесткого диска в корзине// for i in `/opt/MegaRAID/MegaCli/MegaCli64 -PDlist -aall | grep -e 'Device Id' | sed -s 's/Device Id: //g'`; do echo Device ID=$i;smartctl -a /dev/sda -d megaraid,$i|grep -E 'Serial|Product|Status:|defect list|error count';done; //проверяем S.M.A.R.T диска// smartctl -a /dev/sda -d sat+megaraid,28 — для sata дисков smartctl -a /dev/sda -d megaraid,28 — для sas дисков ,где 28 — номер жесткого диска (Device Id)

Далее после выявления сбойного диска, используя ранее полученные данные Enclosure Device ID: и Slot Number: мы можем подсветить сбойный диск светодиодом при помощи команды -PDLocate описанной выше.

/opt/MegaRAID/MegaCli/MegaCli64 -PDHSP -Set -PhysDrv [12:6] -a0 — добавление диска /opt/MegaRAID/MegaCli/MegaCli64 -PDHSP -Rmv -PhysDrv [12:6] -a0 — удаление диска

Если присутствуют JBOD диски, то перед тем как очистить конфигурацию контроллера необходимо их удалить командой:

/opt/MegaRAID/MegaCli/MegaCli64 -CfgLDDel -L0 -force -a0 ,где L0 номер диска /opt/MegaRAID/MegaCli/MegaCli64 -LDSetProp DisDskCache -LAll -aAll /opt/MegaRAID/MegaCli/MegaCli64 -LDSetProp EnDskCache -LAll -aAll /opt/MegaRAID/MegaCli/MegaCli64 -CfgSpanAdd -r10 -Array0[32:0,32:1] Array1[32:2,32:3] WB RA Direct NoCachedBadBBU -sz300000 -a0 , где -sz300000 размер раздела в Mb /opt/MegaRAID/MegaCli/MegaCli64 -AdpBootDrive -get -a0 /opt/MegaRAID/MegaCli/MegaCli64 -AdpBootDrive -set -L0 -a0 /opt/MegaRAID/MegaCli/MegaCli64 -adpfwflash -f mr2108fw.rom -a0

Источник: https://ru-tld.ru/h/help_system:servera:raid:nastroika-raidmegacli

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

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

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

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.)

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

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

Firmware state: Online, Spun UpInquiry Data: IBM-ESXSST3300657SS BA586SJ3SJKY0825BA58 Firmware state: Online, Spun UpInquiry Data: IBM-ESXSST3300657SS BA586SJ3SJSY0825BA58 Inquiry Data: IBM-ESXSST3300657SS BA586SJ3SSL60825BA58 Firmware state: Online, Spun UpInquiry Data: SEAGATE ST3300657SS 00086SJ47FF1 Firmware state: Online, Spun UpInquiry Data: SEAGATE ST3300657SS 00086SJ47GS5 Firmware state: Online, Spun UpInquiry Data: SEAGATE ST3300657SS 00086SJ684J5 Firmware state: Online, Spun UpInquiry Data: SEAGATE ST3300657SS 00086SJ60R8S Firmware state: Online, Spun UpInquiry Data: SEAGATE ST3300657SS 00086SJ47JG1 Firmware state: Online, Spun UpInquiry Data: SEAGATE ST3300657SS 00086SJ47FKV Firmware state: Online, Spun UpInquiry Data: SEAGATE ST3300657SS 00086SJ67CCL Firmware state: Online, Spun UpInquiry Data: SEAGATE ST3300657SS 00086SJ67CLB Firmware state: Online, Spun UpInquiry Data: IBM-ESXSST3300657SS BA586SJ3R65E0825BA58

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

Inquiry Data: IBM-ESXSST3300657SS BA586SJ3SSL60825BA58

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

Drive's postion: DiskGroup: 0, Span: 1, Arm: 0Predictive Failure Count: 136Last Predictive Failure Event Seq Number: 69159Raw Size: 279.396 GB [0x22ecb25c Sectors]Non Coerced Size: 278.896 GB [0x22dcb25c Sectors]Coerced Size: 278.464 GB [0x22cee000 Sectors]Device Firmware Level: BA58Successful diagnostics completion on : N/ASAS Address(0): 0x5000c50043e6c069Connected Port Number: 0(path0) Inquiry Data: IBM-ESXSST3300657SS BA586SJ3SSL60825BA58 Media Type: Hard Disk DeviceDrive Temperature :28C (82.40 F)Drive is formatted for PI information: NoDrive's write cache : DisabledPort's Linkspeed: 6.0Gb/s Port's Linkspeed: Unknown Drive has flagged a S.M.A.R.T alert : Yes

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

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

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

Adapter: 0: EnclId-25 SlotId-14 state changed to OffLine.

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

EnclId-25 SlotId-14 is marked Missing.

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

Adapter 0 — Missing Physical drives No. Array Row Size Expected

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

Adapter: 0: Device at EnclId-25 SlotId-14 — PD Locate Start Command was successfully sent to Firmware

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

Adapter 0: Set Use Disk Activity For Locate to Enabled success.

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

Prepare for removal Success

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

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

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

megacli -CfgForeign -Scan -a0

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

megacli -CfgForeign -Сlear -a0

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

Adapter: 0: Physical drive in array 1 at row 0 is not missing.

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

Cannot Rebuild Physical Drive at Enclosure — 25, Slot — 14. The specified device is in a state that doesn't support the requested command.

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

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

Rebuild Progress on Device at Enclosure 25, Slot 14 Completed 38% in 10 Minutes.

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

Adapter: 0: Device at EnclId-25 SlotId-14 — PD Locate Stop Command was successfully sent to Firmware

Бонусы

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

megacli -AdpSetProp AlarmSilence -a0

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

megacli -AdpSetProp AlarmEnbl -a0megacli -AdpSetProp AlarmDsbl -a0

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

Adapter 0: Rebuild Rate = 30%

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

Adapter 0: Set rebuild rate to 80% success.

Источник: https://bogachev.biz/2016/03/30/vosstanovlenie-apparatnogo-raid-s-pomoshchyu-utility-megacli-dlya-lsi/

Ссылка на основную публикацию