Утилита 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 https://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
Итак, кратко о главных возможностях:
- Информация о адаптере:
MegaCli -AdpAllinfo -aAll - Информация о конфигурации:
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 - Информация о всех физических устройствах
MegaCli -PDList -aAll - Информация о всех виртуальных устройствах
MegaCli -LDInfo Lall -aAll - Логи контроллера (много!):
MegaCli -FwTermLog -Dsply -aALL - Краткая полезная информация по адаптеру:
MegaCli -ShowSummary -a0 - Очистка списка событий:
MegaCli -AdpEventLog -Clear -a0 - Время на адаптере:
MegaCli -AdpGetTime -aALL - Количество физических дисков на первом адаптере:
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” [email protected] ; 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” [email protected]; 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> |
Если получаем эту ошибку при выполнении команды, то 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 не начался автоматически (пример взят из https://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 3 («PhysDrv[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
Источник: https://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 https://hwraid.le-vert.net/ubuntu precise main' > /etc/apt/sources.list.d/raid.list root@il-nv-s06:~# wget -O – https://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>
Источник: https://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 https://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
Источник: https://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/