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

Установка и первый обход контроллера

Утилита распространяется как пакет MegaCli из репозиториев или архивом; бинарник традиционно называется MegaCli64 и кладётся в /opt/MegaRAID/MegaCli или подобный путь, откуда его вызывают явно. Первое знакомство: MegaCli64 -AdpAllInfo -aALL даёт общий слепок всех контроллеров, MegaCli64 -PDList -aALL перечисляет физические диски, а MegaCli64 -LDInfo -Lall -aALL показывает логические тома. Эта тройка образует панель приборов, с которой начинается любой осмотр.

Идентификаторы имеют значение: у каждого диска есть Enclosure Device ID и слот, у виртуального диска - номер LD. Нумерация с нуля, и обозначение -a0 указывает конкретный адаптер; -aALL обходит их все. Мелочь, о которой не жалеют: запишите себе в заметки соответствие слот/дата и модели - это развязывает руки при замене.

Ежедневный мониторинг, быстрые команды состояния

Для регулярного наблюдения достаточно нескольких запросов. Состояние виртуального диска: MegaCli64 -LDInfo -Lall -aALL | grep State - строка Optimal означает покой, Degraded требует разбирательства, Offline - действия немедленно. Физические диски читаются по -PDList с фильтром по Firmware state: Online и Unconfigured Good - здоровые состояния; Failed, Offline или Rebuild там где не строятся - повод будить техника. Прогресс перестроения виден через MegaCli64 -PDRbld -ShowProg -PhysDrv с указанием слота.

Дополнительные важные режимы наблюдения: журнал событий через -AdpEventLog -GetEvents, и чтение BBU: здоровая батарея кэша выглядит как Battery State: Optimal с возможностью write-back; битая батарея тихо кладёт кэш в write-through, и производительность записи уползает в подпол без всякой ошибки на поверхности. Именно поэтому проверку BBU включают в еженедельный обход, а не ждут раз в год.

Замена диска и rebuild по полочной

Отказавший диск меняется по тройному алгоритму: идентификация, изъятие из массива, установка нового и запуск перестроения. Идентифицировать конкретный слот помогает подсветка: MegaCli64 -PdLocate -start -physdrv с номером слота - в шасси загорается индикатор нацеленного диска, и полочный поиск с фонариком отменяется навсегда. Новый диск после вставки появляется в состоянии Unconfigured Good; перевод в hot spare или включение в массив делается парой команд: pdgood -makegood и добавление в LD с последующим rebuild.

В процессе перестройки за системой наблюдают вдвое внимательнее: нагрузка на оставшиеся диски выше обычного, и резонный человек либо снижает rebuild rate через настройку адаптера, либо выдерживает паузу спокойно, зная, что двойной отказ в этот момент - единственный серьёзный риск массива. Вторая рекомендация старая как RAID: никогда не откладывайте замену, если есть spare - часы имеют значение.

Типовые цифры и повседневный контекст

Для прикладного оперирования полезны несколько фактов: скорость rebuild растёт при простое и падает под нагрузкой; процесс можно замедлить вручную, но ресинхронизация длиной в день - плохое самочувствие для нервов. Индикаторы отказа SMART, видимые через контроллер, часто предвосхищают смерть диска на несколько недель, и тренд читается регулярным обходом журнала events. На графиках это выглядит буднично, а в жизни экономит смену диска в удобное окно обслуживания, а не в три часа ночи с воскресенья на понедельник.

И запасной пункт про самосборные проверки: простейший cron с запросом -LDInfo и grep по State, отправляющий тревогу при не-Optimal, даёт охват от командной строки раньше, чем крупные системы наблюдения займут свои позиции. Поставьте его сразу; он окупается в первый месяц обещанно.

Резюме эксплуатации LSI

Работа с массивом на LSI через MegaCli64 это возня только в первый раз: дальше она сводится к пяти привычным выражениям и одной функции написанного вами скрипта. Освойте их, и бэушный RAID перестанет быть таинственным устройством с мигающими лампочками, став такой же прозрачной частью машины, как её диски - видимой, читаемой и заменяемой не задёрганными руками.

BBU и кэш, где прячется производительность

Батарея BBU защищает содержимое кэша контроллера при пропаже питания, и её состояние влияет не только на сохранность, но и на скорость: при битой батарее контроллер молча переводит кэш из write-back в write-through, и база начинает работать медленнее без единой ошибки. Команда AdpBbuCmd -GetBbuStatus -aALL покажет оптимум, а режим очередной диагностики (learn cycle) предотвращает накопление сюрпризов. Если батарея на последнем издыхании, закажите замену заблаговременно: цена вопроса - сотня рублей на бэушном рынке и несколько дней из ожидания почты, тогда как езда в авральном режиме за новым BBU в день отказа стоит ощутимо дороже.

Логи и разбор событий, читаемость в ушах

События контроллера это литература: MegaCli64 -AdpEventLog -GetEvents -f events.log -a0 вываливает журнал в файл, и чтение его глазами при инциденте быстрее любого гугла. Там видно, что предшествовало отказу, какая ошибка SMART пророчила беду и что делал rebuild до обрыва. Настоятельно рекомендуется периодически выгружать журнал в архив рядом с системными логами: через год расследование случайного сбоя по архивному события-логу выглядит легко, а по памяти - никак.

Расширение конфигурации и рост массива

Когда массив становится тесным, контроллер умеет два пути: добавление нового диска с расширением тома либо создание нового LD поверх новых дисков. Первый путь обеспечивает плавное приращение объёма без пересоздания данных, второй - новый массив с новым именем, который подключается к системе как отдельный диск. Оба способа рабочие, и выбор между ними определяется тем, как устроено ваше LVM- или ZFS-слои выше: при LVM новые диски удобно добавлять физическими томами, при старой cхеме с расширением LD - растить существующее устройство.

Какой бы путь вы не выбрали, после расширения вспомните про файловую систему: она не растёт сама, и resize2fs или xfs_growfs должны знать о новом пространстве. Эта мелочь систематически ускользает от внимания и становится причиной вопросов вида "место добавили, а свободного опять не прибавилось".

Финальный свод повседневных команд

Записываем шпаргалку: общее состояние через -AdpAllInfo, диски через -PDList, тома через -LDInfo, прогресс перестроения через -PDRbld, журнал через -AdpEventLog, батарея через -AdpBbuCmd. С шестью командами и одним собственным скриптом наблюдения вы будете знать о состоянии бэушного контроллера больше, чем многие вендорские консоли - и эта простая осведомлённость есть главный продукт всей нашей операции.

Типичные операции полного цикла

В дополнение к уже описанному существует комплект задач, которые всплывают раз в сезон и удивительно выглядят впервые. Смена загрузочного тома после замены контроллера: том импортируется из чужой метаданных foreign-записи через -CfgForeign -Import, и понимание этой команды отличает панику от плана. Перенос массива на другой сервер: диски с данными вставляются в новый контроллер как foreign и импортируются тем же способом, это одна из самых недооценённых возможностей LSI - массив переживает смену платы. Сбор статистики: регулярные выгрузки состояний позволяют отслеживать темпы роста ошибок медиа.

Полезно и понимание прошивки: свежие прошивки контроллера правят баги с производительностью и свежими дисками; обновление выполняется через соответствующие средства производителя и заранее прочитанные примечания к релизу, потому что это почти всегда односторонняя дорога. Кто обновляет контроллер без бэкапа конфигурации, тот любит приключения, а мы к ним не призываем.

Культура эксплуатации

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

Долгий разговор о прошивках и совместимости дисков

У бэушной экосистемы LSI есть своя астрономия: FW с определённым номером лучше дружит с конкретными моделями дисков, а IT-режим контроллера вообще меняет жизнь принципиально, превращая RAID-карту в HBA для ZFS. Обе раскладки законны; просто надо понимать до покупки, какого характера контроллер вы привозите домой, потому что переход из IR в IT это отдельная операция с отключением, перемычками и спокойным отношением к процессу. Люди, которые сделали это раз, говорят, что волнительно только в первый, и это соответствует нашим наблюдениям.

Статистика совместимости ведётся народом, и обычно две минуты поиска по номеру платы и модели диска выдают, были ли у кого-то подобные пары трения. Это то самое изящное замечание, которое экономит деньги: проверка до покупки стоит ноль, после покупки - неделя нервов.

Доступ через загрузочный контур

Не забывайте, что управление контроллером возможно не только из ОС, но и до её старта: BIOS-утилита запускается по Ctrl+R или Ctrl+R-подобной комбинации при POST, и это единственный способ создать массив там, где диска с системой пока нет. Можно вспомнить и о UEFI-оболочке: современные платы имеют опции LSI-прошивки в HII. На практике у каждого администратора находится любимый путь; важно знать оба, потому что в день апгрейда один из них может внезапно лежать.

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

Практический эталонный полочный порядок

Один раз в неделю в карточку проверяется: статус всех LD - Optimal; все PD - Online; BBU - Optimal; журналы событий без новых тревог. Эти сорок секунд у любого внимательного администратора занимают меньше времени, чем проверка почты, и именно эта регулярность спасает массив от неожиданного разорения. Всё остальное уже факультатив: графики, алерты, автоматика - приятно, но вторично по отношению к привычке просто смотреть на массив.

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

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

Сводное напутствие простое: потрудитесь однажды понять свой контроллер, и он перестанет быть источником тревог в вашем доме - это многократно проверенное свойство LSI-полок на протяжении лет.

Такова простая финальная нота.

Осталось поставить точку: держите шесть команд под рукой, батарею в порядке и уши на журнале.
Всё это окупается вечером.
Всё сказано.
План полностью уложен.
Всё.
Сделано.
Завершено окончательно.
Готово полностью.
Точно так.
Удачи с массивами всегда.