Утилита MegaCLI для MegaRaid

В этой статье дана инструкция по работе с утилитой 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.

Оставьте комментарий