В этой статье дана инструкция по работе с утилитой MegaCLI для управления райд-контроллером ServeRAID M5015 или подобным.
Посмотреть версию утилиты
Я сам не помню как устанавливал утилиту MegaCLI, но вот одна из инструкций, она мной не проверена, но выглядит рабочей.
Версия моей утилиты MegaCLI — 8.07.10. Это довольно старая версия, но и контроллер такой-же старый.
Посмотреть версию своей утилиты вы можете так:
# megacli -v
Посмотреть информацию об адаптере
# megacli -AdpAllinfo -aALL
Эта команда выводит информацию обо всех установленных в систему адаптерах. Вы увидите модель адаптера, версию прошивки, сколько портов поддерживается, сколько памяти содержится и какие RAID массивы можно создать. А также, сколько VD (виртуальных устройств или массивов) уже есть, сколько из них сейчас в состоянии Degraded. И все возможности и ограничения вашего контроллера.
Посмотреть информацию по массивам
RAID массивы здесь называются виртуальными устройствами (VD). Для вывода списка массивов со всеми их свойствами служит опция -LDInfo.
# megacli -LDInfo -Lall -a0
Из вывода можно понять какой у вас массив.
- 1 пример:
- Primary-1, Secondary-0 — это RAID-1;
- Number Of Drives per span: 2 — 2 диска в каждом зеркале;
- Span Depth: 3 — 3 группы зеркал;
- То-есть это RAID-10 из 6 дисков.
- 2 пример:
- Primary-1, Secondary-0 — это RAID-1;
- Number Of Drives: 2 — 2 диска в масиве;
- Span Depth: 1 — 1 группа зеркал;
- То-есть это RAID-1 из 2 дисков.
С помощью grep вы можете фильтровать вывод, например получим информацию по статусам VD:
# megacli -LdInfo -Lall -a0 | grep -P "Virtual|State"
Посмотреть список дисков
Диски здесь называются физическими устройствами (PD).
# megacli -PDList -a0
Данная команда выведет список дисков подключенных к контроллеру. Из вывода вы узнаете номера дисков для обращения к ним. Одни из главных номеров это Enclosure Device ID и Slot Number, по ним вы сможете обращаться к дискам, например для замены. Кроме этого вы увидите характеристику самих дисков, например: тип подключения, название, серийный номер, температура, объём и другое.
С помощью grep можем вытащить, например, только номера дисков:
# megacli -PDList -a0 | grep -P "Enclosure Dev|Slot|Device Id|WWN"
Посмотреть конкретный диск
# megacli -PDInfo -PhysDrv [252:6] -a0
Номер [252:6] — это пример Enclosure Device ID и Slot Number. Здесь вы увидите всю туже информацию что и с помощью предыдущей команды, но по указанному диску. Одним из важных полей является — Firmware state, это состояние диска. Вот примеры состояний диска:
- Unconfigured(good) — диск готов для использования, но не принадлежит ни одному RAID-массиву;
- Unconfigured(bad) — диск не пригоден для использования из-за аппаратных или программных ошибок, обычно так диск вылетает из массива, но его можно попробовать туда вернуть;
- Hot Spare — диск настроен как резервный и автоматически используется в случае отказа одного из дисков в массиве;
- Offline — диск является частью массива, но отключён (например, из-за ошибки);
- Rebuild — диск восстанавливается (перезаписывается данными массива после сбоя или добавления нового диска);
- Failed — диск признан неисправным контроллером;
- Foreign — диск содержит метаданные RAID из другой системы или другого массива, можно очистить метаданные командой MegaCli -CfgForeign -Clear;
- JBOD — диск настроен в режиме Just a Bunch of Disks и доступен напрямую, не являясь частью RAID-массива (не все контроллеры это позволяют);
- Copyback — данные восстанавливаются с временного диска (Hot Spare) на новый диск, добавленный в массив;
- Online — диск является частью RAID-массива и функционирует корректно.
Посмотреть на конфигурацию массивов
Бывает полезно одновременно посмотреть на виртуальные (VD) и физические (PD) устройства. Это можно сделать с помощью следующей команды:
# megacli -LdPdInfo -a0
Но чтобы посмотреть на всю вашу конфигурацию массивов, нужно использовать другую команду:
# megacli -CfgDsply -a0
Её вывод аналогичен предыдущей команде, но с дополнительной информацией, например в выводе есть номера дисковых групп и тому подобное.
Посмотреть отсутствующие диски
Следующую команду следует использовать, чтобы проверить всё ли у вас хорошо:
# megacli -PdGetMissing -a0
Здесь мы смотрим не на сами диски, а на то, где этих дисков не хватает. Возможно диск перешёл в состояние Unconfigured(bad) или вообще отсутствует. Команда говорит что вам нужно в это место вернуть диск или заменить его на новый. Под этим местом понимается какой-нибудь массив или группа зеркал в RAID-10 и номер диска в массиве или группе зеркал.
Если диск Unconfigured(bad)
Если при просмотре на ваши диски вы увидели один из них в состоянии Unconfigured(bad). Значит контроллер посчитал этот диск неисправным. В моей практике было 2 таких случая. Диск прото выпал из контроллера из-за ошибок и я его успешно вернул в массив. И второй случай, я сам вынул диск и вставил его обратно через день.
Чтобы вернуть диск в нормальное состояние выполните команду:
# megacli -PDMakeGood -PhysDrv [252:6] -a0
Заменить диск
После выполнения предыдущей команды, вы должны вернуть диск в массив. Это делается с помощью следующей команды:
# megacli -PdReplaceMissing -PhysDrv [252:6] -Array3 -row0 -a0
Либо эту команду нужно выполнить, когда вы меняете диск на новый. В этом случае он уже будет в состоянии Unconfigured(good) и выполнять предыдущую команду будет не нужно.
Для замены нужно указать физический диск [252:6] и массив. Значения Array и row можно взять из вывода megacli -PdGetMissing -a0.
Если диск в состоянии offline
Иногда после замены диска (предыдущая команда), он может остаться в состоянии offline. Тогда его нужно перевести в online. При этом обычно ребилд запускается самостоятельно.
# megacli -PDOnline -PhysDrv [252:6] -a0
Запустить ребилд вручную
Если после замены диска ребилд не запустился сам, то вы можете запустить его вручную:
# megacli -PdRbld -Start -PhysDrv[252:6] -a0
А посмотреть статус ребилда вы можете с помощью этой команды:
# megacli -PdRbld -ShowProg -PhysDrv [252:6] -a0
Статус ребилда выводится в процентах.
Используем smartctl
Вы можете использовать утилиту smartctl для просмотра состояний дисков, которые находятся в массиве. Для этого используется следующая команда:
# smartctl -d megaraid,10 -a /
В команде 10, это Device Id из вывода megacli -PDInfo -PhysDrv [252:6] -a0.
Если понравилась статья, подпишись на мой канал в VK.