Сначала составьте карту объектов мониторинга
Для каждого сервера зафиксируйте владельца RAID: аппаратный RAID-контроллер, Linux mdadm или другую подсистему хранения. Не смешивайте уровни: логический диск, который ОС видит как один /dev/sdX, может быть Online, пока один из физических дисков уже выдал предупреждение. И наоборот, недоступность логическог о диска не доказывает отказ конкретного накопителя.
- Логический уровень: имя и RAID-уровень массива, состояние logical/virtual drive, число ожидаемых и работающих членов, деградированный режим, Offline, Failed, активный Rebuild и его прогресс.
- Физические диски: enclosure:slot или иной неизменный адрес, модель, серийный номер, WWN при наличии, интерфейс, состояние, Predictive Failure, счётчики и журналы ошибок, участие в массиве или spare.
- Контроллер и путь подключения: модель контроллера, версия прошивки, драйвер, состояние портов, корзины и экспандера, события потери связи и одновременное исчезновение нескольких дисков.
- Кэш записи: текущая политика, состояние RAID-кэша, наличие грязного к эша, переходы между Write-Back и кэшем со сквозной записью.
- Защита кэша: состояние BBU, CacheVault, flash-модуля или суперконденсатора — именно того механизма, который установлен в данном контроллере.
Не используйте только имя устройства ОС
/dev/sdX могут измениться после перезагрузки, перестановки дисков или смены порядка обнаружения. Для аппаратного RAID сохраняйте соответствие physical drive → enclosure:slot → serial/WWN; для mdadm — serial/WWN, путь /dev/disk/by-id/ и членство в массиве. Это нужно до любого извлечения диска.Разделите непрерывные, ежедневные и еженедельные проверки
Интервалы фоновых сканирований выбирают не по универсальному числу дней, а по длительности операции, нагрузке и документации конкретной реализации.
| Период | Что контролировать | Результат |
|---|---|---|
| Непрерывно | Состояния массива и физических дисков, Predictive Failure, ошибки контроллера, кэша и защиты кэша, старт и остановка Rebuild, события корзины и путей подключения | Событие приходит ответственному через почту, webhook или централизованный мониторинг |
| Ежедневно | Сводка всех массивов, незакрытые предупреждения, новые ошибки и изменение счётчиков относительно базовой линии, прогресс активных фоновых задач | Нет неразобранных событий; известны массивы без избыточности и задачи, которые не завершились |
| Еженедельно | Журналы контр оллера и ОС, состояние резервных копий и результат проверки восстановления, план и результаты Patrol Read, Consistency Check либо mdadm check | Есть зафиксированные результаты и нет пересечения тяжёлых задач в одном окне |
| После изменения или перезагрузки | Видимость контроллера и всех ожидаемых дисков, состояние массива, политика кэша, защита кэша, foreign/preserved cache, автосборка mdadm, доставка события | Конфигурация соответствует зафиксированной карте объектов |
Для оценки роста ошибок важна базовая линия: сохраните исходные счётчики и сравнивайте новые значения с предыдущими снимками. Один счётчик не равен диагнозу. Например, ошибки нескольких дисков одновременно могут указывать на общую корзину, кабель, SAS-экспандер, питание или контроллер, а не на одновременный отказ накопителей.
Что проверяют S.M.A.R.T., Patrol Read и Consistency Check
| Механизм | Что делает | Чего не доказывает |
|---|---|---|
| S.M.A.R.T. и журналы накопителя | Показывают доступные диагностические признаки и историю ошибок отдельного диска | Что отказ обязательно случится или не случится; правильность RAID-чётности и пользовательских файлов |
| Patrol Read | Фоново читает доступные области физических дисков в поддерживаемой реализации и может выявить скрытые ошибки чтения до Rebuild | Согласованность чётности или зеркальных копий; целостность файловой системы и данных приложения |
| Consistency Check | Сравнивает избыточность: чётность с пересчитанным значением либо копии в зеркале, в зависимости от RAID-уровня и реализации | Какая версия пользовательских данных была правильной до расхождения |
| mdadm check | Запускает провер ку согласованности md-массива средствами ядра Linux | Число повреждённых файлов или корректность содержимого файлов |
| Фоновая инициализация | Служебно подготавливает избыточность нового массива или массива после поддерживаемого изменения конфигурации | Периодическую профилактику давно работающего массива |
Доступность диагностических данных диска зависит от протокола и пути подключения. У SATA часто доступны ATA S.M.A.R.T.-данные; у SAS применяются SCSI Informational Exceptions и log pages; у NVMe — SMART/Health log и другие журналы NVMe. Набор полей, пороги и смысл vendor-specific атрибутов определяет производитель накопителя. Не переносите пороги ATA-атрибутов на SAS или NVMe и не назначайте единый «безопасный» предел для всех моделей.
S.M.A.R.T. за аппаратным RAID
smartctl возможно только при документированном режиме обращения к конкретному контроллеру, драйверу и типу SATA, SAS или NVMe-диска. Не применяйте найденный в интернете ключ -d без проверки документации именно ваше й модели.Patrol Read, Consistency Check и Background Initialization могут иметь разные названия, расписания, приоритеты, охват дисков и поведение при ошибке у разных семейств контроллеров и версий прошивки. Перед включением автоматического запуска зафиксируйте модель контроллера, OEM-исполнение, версию прошивки, версию утилиты управления и дату проверки документации. Не переносите параметры Dell PERC, HPE Smart Array, Broadcom/MegaRAID или Adaptec SmartRAID между собой.
Проверка с исправлением — не обычный первый шаг
Мониторинг программного RAID mdadm в Linux
В mdadm событийный мониторинг и периодическая проверка согласованности — независимые механизмы. Монитор читает события массива и может отправлять почту или запускать программу-обработчик; check запускает операцию ядра над конкретным md-устр ойством. Создание массива и начальная настройка описаны отдельно в статье «Как создать и настроить программный RAID в Linux с mdadm».
Настройте и проверьте событийный мониторинг mdadm
Пути к конфигурации и имя systemd-службы отличаются между дистрибутивами и версиями пакета. Используйте файл и unit, поставляемые вашим дистрибутивом, и не запускайте второй постоянный монитор параллельно.
- 1Снимите текущий статус массиваВыполните
cat /proc/mdstatиmdadm --detail /dev/md0, подставив имя своего массива. Сохраните вывод: в нём нужны состояние, активные члены, spare и текущая синхронизация. - 2Задайте получателя событийВ конфигурации mdadm, используемой дистрибутивом, добавьте
MAILADDRдля работающего почтового маршрута либоPROGRAMдля собственного обработчика. Адрес или программа должны быть доступны службе mdadm, а не только интерактивному пользователю. - 3Найдите и проверьте штатный мониторПолучите сп исок кандидатов командой
systemctl list-unit-files | grep -Ei 'mdadm|mdmonitor', затем изучите назначение нужного unit черезsystemctl cat <имя-unit>и документацию пакета вашего дистрибутива. Включайте только unit, документированный как событийный монитор mdadm, и убедитесь черезsystemctl status <имя-unit>иjournalctl -u <имя-unit>, что не работает второй экземпляр монитора. - 4Проверьте канал разовым тестовым событиемПосле настройки почты или обработчика выполните
mdadm --monitor --scan --test --oneshot. Параметр--oneshotзавершает разовую проверку и не оставляет ещё один постоянный мо нитор. Успех — это не только отсутствие ошибки в консоли: ответственному должно прийти тестовое уведомление с понятным источником, а событие должно быть видно в журнале или системе мониторинга.
# Пример: укажите реальный адрес работающего почтового маршрута
MAILADDR storage-alerts@example.invalid
# Альтернатива или дополнение: путь к проверенному обработчику событий
# PROGRAM /usr/local/sbin/mdadm-event-handlermdadm --detail /dev/md0 && cat /proc/mdstatИщите `State`, список `Active Devices` и `Working Devices`, а при активной задаче — строку с progress/recovery/check в `/proc/mdstat`.Периодическая проверка mdadm: check, repair и mismatch_cnt
Для md-массива состояние фоновой операции доступно в /sys/block/mdX/md/sync_action. Значение check означает проверку согласованности и подсчёт расхождений без их исправления только на основании результата сравнения. Однако check не гарантирует полностью read-only-поведение: при ошибке чтения штатная обработка ошибки в md может восстановить и записать данные на устройство. Значение repair задаёт режим исправления обнаруженных несоответствий; idle означает отсутствие такой операции. Точное поведение зависит от RAID-уровня, версии ядра и реализации md, поэтому до включения расписания сверьте документацию используемых версий.
cat /sys/block/md0/md/sync_action; cat /sys/block/md0/md/mismatch_cnt; cat /proc/mdstatmismatch_cnt — публикуемый ядром sysfs-счётчик числа секторов, в которых проверка конкретного md-массива обнаружила несоответствие. Это не число файлов, блоков приложения или потерянных записей, и по нему нельзя определить объём повреждённых пользовательских данных. Для RAID с чётностью расхождение означает, что проверяемая избыточность не совпала с пересчитанным значением. Для зеркала счётчик не сообщает, какая копия семантически верна. Сначала зафиксируйте значение, тип массива, состояние дисков, недавние сбои и наличие проверяемой резервной копии.
Организуйте mdadm check без двойного расписания
- 1Проверьте штатный механизм дистрибутиваПросмотрите
systemctl list-timers --all | grep -Ei 'md|raid|check'и задания cron, поставляемые пакетом mdadm. Если штатная еженедельная проверка уже включена, настройте её по документации дистрибутива и не добавляйте второе расписание. - 2Выберите окноОцените длительность прошлых проверок, текущую нагрузку, резервное копирование, Rebuild, миграцию и другие сканирования. Не запускайте проверку в пиковое время без оценки влияния на задержки и I/O.
- 3Запустите только checkДля массива без активной конфликтующей операции администратор может запустить
printf check > /sys/block/md0/md/sync_action. До запуска убедитесь, что путь относится к нужному массиву, и сохраните исходныеsync_actionиmismatch_cnt. - 4Контролируйте и завершите проверкуСледите за
/proc/mdstat,sync_action, журналом ОС и задержками приложения. После завершения сохраните итоговыйmismatch_cntи не переключайте действие наrepairавтоматически только потому, что счётчик ненулевой.
Не запускайте repair по шаблону
repair в sync_action меняет режим операции. До неё нужны контекст расхождения, сохранённые статусы, пригодная резервная копия и понимание последствий для данного RAID-уровня и версии ядра. При уже возникшем отказе массива действуйте по статье «RAID Degraded, Offline или Failed: диагностика отказа дисков».Как планировать Patrol Read, Consistency Check и проверку RAID
Не существует общего безопасного расписания для всех RAID. Patrol Read, Consistency Check и mdadm check могут заметно нагружать диски, контроллер и общие пути ввода-вывода. Их период выбирают по длительности полного прохода, допустимому окну обслуживания, профилю нагрузки, возрасту и типу накопителей, требованиям производителя и наличию других задач.
- Соберите фактическую длительность первой операции на ненагруженном или согласованном окне и зафиксируйте влияние на задержки.
- Разнесите по времени Patrol Read, Consistency Check, mdadm check, резервное копирование, Rebuild, миграцию RAID и тяжёлые задачи приложения.
- Назначьте приоритет, который поддерживает именно ваша реализация, только после проверки документации контроллера и прошивки.
- Не запускайте новую проверку, если уже идут Rebuild, инициализация, расширение массива или иная фоновая операция, пока документация не описывает безопасное совместное выполнение.
- По завершении просмотрите журналы и результаты; незавершённая или регулярно прерываемая задача сама является поводом для диагностики.
Rebuild и Background Initialization — разные процессы
Сигналы RAID: срочность, фиксация и первое безопасное действие
| Сигнал | Срочность | Что зафиксировать | Первое безопасное действие |
|---|---|---|---|
| Offline логический диск, Failed массив или несколько одновременно исчезнувших дисков | Критическая | Статусы logical и physical drive, enclosure:slot, serial/WWN, события контроллера и корзины, состояние кэша, активные задачи | Остановить непроверенные изменения; проверить пригодность резервной копии; не создавать массив, не инициализировать и не выполнять Force Online |
| Degraded, потеря избыточности, неожиданная остановка или ошибка Rebuild | Высокая | RAID-уровень, работающие и отсутствующие члены, последний прогресс и причина остан овки Rebuild, ошибки оставшихся дисков, журналы | Уведомить ответственного, сохранить состояние и перейти к процедуре диагностики; не извлекать диск по одному только имени ОС и не перезапускать Rebuild вслепую |
| Ожидаемый старт Rebuild | Средняя; высокая, если запуск не был запланирован или выбран неожиданный диск | Причину запуска, исходный и целевой диски, enclosure:slot, serial/WWN, состояние массива и начальный прогресс | Подтвердить правильность выбранного диска и контролировать прогресс, ошибки оставшихся накопителей и нагрузку |
| Predictive Failure или PFA | Высокая | Точный статус, диагностические журналы, модель, serial/WWN, slot, счётчики и их изменение | Собрать данные, проверить резервную копию, запланировать замену по процедуре; не извлекать диск автоматически |
| Рост media errors, other errors, ошибок чтения, записи или связи | Высокая либо средняя — по скорости роста и влиянию | Значения до и после, время событий, затронутые диски и общий путь подключения, журналы ОС и контроллера | Сопоставить с другими дисками и инфраструктурой; исключить общую проблему корзины, кабеля, питания или контроллера |
| cache protection failed, Battery/CacheVault/supercapacitor fault | Высокая | Политику кэша, состояние защиты, dirty/preserved cache, текст и код события, модель и версию прошивки | Не включать Write-Back принудительно; сохранить статусы и действовать по инструкции по BBU и CacheVault |
| Неожиданный переход Write-Back в Write-Through | Высокая | Состояние защиты кэша, политику каждого logical drive, события контроллера, производительность до и после | Подтвердить причину по журналу; не обходить защитное ограничение принудительным изменением политики |
| Patrol Read, Consistency Check или mdadm check завершились с предупреждением | Средняя, повышается при ошибках дисков или потере избыточности | Имя операции, время, охват, режим исправления, результат, журналы, состояние массива до и после | Не включ ать коррекцию вслепую; проверить резервную копию и документацию конкретной реализации |
При критическом событии не меняйте RAID-метаданные наугад
Что сохранить перед диагностикой
- Время события, источник, полный текст, код и уровень срочности уведомления.
- Модель контроллера, OEM-исполнение, версия прошивки, драйвер и версия утилиты управления.
- RAID-уровень, состояние и идентификатор логического диска; список физических дисков с enclosure:slot, serial/WWN, моделью и состоянием.
- Состояние кэша, политика записи, BBU/CacheVault/суперконденсатора, dirty или preserved cache.
- Журналы контроллера, BMC/iDRAC/iLO при наличии, системный журнал ОС и журналы накопителей, доступные через поддерживаемый путь.
- Активные фоновые операции: Rebuild, Patrol Read, Consistency Check, Background Initialization, mdadm sync_action; их прогресс, приоритет и время старта.
- Статус последней резервной копии и свидетельство тестового восстановления, а не только отметка о завершении задания.
RAID не заменяет независимую резервную копию. В р егламенте достаточно регулярно подтверждать два факта: резервная копия существует для нужных данных и её восстановление периодически проверяется в подходящем тестовом контуре. Детали проектирования копирования разобраны в статье «Почему RAID — не резервное копирование: защита данных сервера».
Проверяйте не только настройки, но и доставку уведомлений
Включите тест оповещений в регламент
- 1Определите получателя и время реакцииДля каждого класса событий назначьте ответственного, резервного получателя и канал: почта, webhook, тикет-систем а или централизованный мониторинг. Уведомление без владельца не является рабочим мониторингом.
- 2Отправьте безопасное тестовое сообщениеИспользуйте функцию test в самом средстве мониторинга. Для разового теста mdadm подходит
mdadm --monitor --scan --test --oneshot; для аппаратного RAID используйте только документированный тест механизма оповещений контроллера или платформы, без имитации отказа рабочего диска. - 3Подтвердите весь маршрутПроверьте создание события у источника, прохождение через почтовый ретранслятор или webhook, получение ответственным и отображение понятного имени сервера и массива. Отсутствие ошибки отправителя не доказывает доставку.
- 4Повторяйте после измененийПовторите тест после изменения адресатов, почтового ретранслятора, webhook, системы мониторинга, обновления контроллера, переустановки mdadm или перезагрузки, если она меняла службы.
Термины в статье
- Аппаратный RAID
- Реализация RAID, в которой специализированный контроллер формирует логические диски и выполн яет операции массива. Наличие и защита кэша зависят от модели.
- Грязный кэш
- Грязный кэш содержит изменённые блоки, ещё не записанные в постоянное хранилище. Такие блоки нельзя безопасно отбросить до их сброса.
- Деградированный режим
- Состояние отказоустойчивого RAID-массива, потерявшего часть избыточности, но сохраняющего доступ, пока сочетание отказов допустимо для его уровня и раскладки.
- Кэш со сквозной записью
- Кэш со сквозной записью — режим, в котором кэш не подтверждает запись раньше нижележащего хранилища и не оставляет подтверждённые данные только в своей энергозависимой памяти.
- Логический диск
- Логический диск — блочное устройство, которое RAID-контроллер или программная RAID-подсистема предоставляет хосту как отдельный накопитель.
- Миграция RAID-уровня
- Миграция RAID-уровня — преобразование существующего массива в другой RAID-уровень без выгрузки данных, если эту операцию поддерживает контроллер.
- Системная служба
- Системная служба — программный компонент, которым ОС управляет как логической единицей для фонового выполнения задач или предоставления функций программам и пользователям.
- Суперконденсатор
- Накопитель энергии высокой мощности, применяемый для кратковременного питания кэша RAID-контроллера. При сбое питания он сохраняет данные до записи во флеш-память.
- Физический диск
- Физический диск — отдельный HDD, SSD или иной накопитель, распознанный RAID-контроллером как член массива либо как независимое устройство.
- Фоновая инициализация
- Фоновая инициализация — формирование или проверка RAID-контроллером данных избыточности нового массива без отключения логического диска.
- Чётность
- Избыточные контрольные данные, вычисляемые из блоков одной полосы RAID. Один блок чётности защищает от отказа одного диска, два независимых блока RAID 6 — от отказа двух.
- Adaptec SmartRAID
- Adaptec SmartRAID — семейство аппаратных RAID-контроллеров Microchip для SAS/SATA, а в новых tri-mode-моделях — также для NVMe-накопителей.
- BBU
- Аккумуляторный модуль, поддерживающий питание энергозависимого кэша RAID-контроллера при сбое питания до восстановления питания и записи данных на диски.
- CacheVault
- CacheVault — технология защиты кэша записи RAID-контроллера, сохраняющая во флеш-память подтверждённые хосту, но ещё не записанные на диски данные при потере питания.
- Consistency Check
- Consistency Check — фоновая проверка согласованности избыточности RAID: зеркальных копий либо рассчитанной и записанной чётности; расхождения могут исправляться.
- Cron
- Cron — служба-планировщик в Unix-подобных ОС, запускающая команды по расписаниям из таблиц crontab, обычно с минутной дискретностью.
- Dell PERC
- Семейство RAID-решений Dell для серверов PowerEdge: аппаратные контроллеры PERC H и программные PERC S. Возможности и совместимость зависят от модели и поколения платформы.
- Failed
- Failed — статус физического накопителя, который RAID-контроллер признал отказавшим и перестал использовать для штатного ввода-вывода в составе массива.
- Foreign Configuration
- Состояние, при котором RAID-контроллер считает найденную на дисках конфигурацию массива не зарегистрированной или не совпадающей с текущей. Её проверяют и импортируют либо очищают.
- HPE Smart Array
- Семейство аппаратных и программных RAID-решений HPE для локальных SAS/SATA-накопителей и, в поддерживаемых tri-mode-конфигурациях, NVMe.
- mdadm
- Утилита командной строки Linux для создания, сборки, мониторинга и изменения программных RAID-массивов подсистемы MD.
- MegaRAID
- Семейство аппаратных RAID-контроллеров Broadcom, которые объединяют накопители в массивы и предоставляют ОС логические диски, обрабатывая RAID на самом контроллере.
- NVMe
- NVMe — протокол обмена командами с энергонезависимыми накопителями, оптимизированный для параллельного ввода-вывода; локальные NVMe-SSD обычно подключаются по PCIe.
- Offline
- Offline — зависящий от реализации статус накопителя или виртуального диска RAID: первый исключён контроллером из работы, второй недоступен хосту.
- Patrol Read
- Patrol Read — фоновое сканирование накопителей RAID-контроллером для поиска скрытых ошибок чтения. В избыточном массиве контроллер может восстановить повреждённые блоки.
- PFA
- PFA — анализ предвестников отказа оборудования по диагностическим данным. Он формирует предупреждение, чтобы заменить компонент до фактической неисправности.
- Predictive Failure
- Predictive Failure — диагностический статус накопителя, указывающий на признаки вероятного отказа по SMART или данным контроллера до фактической недоступности диска.
- RAID
- Технология объединения нескольких накопителей в логические блочные устройства для повышения производительности и/или отказоустойчивости в зависимости от RAID-уровня.
- RAID 1
- RAID 1 — уровень RAID с зеркалированием данных на двух или более дисках. Полезная ёмкость равна ёмкости наименьшего участника, а доступ сохраняется, пока исправна хотя бы одна копия.
- RAID-контроллер
- Устройство или модуль, который формирует RAID-массивы из накопителей и предоставляет ОС логическ ие диски, управляя размещением данных, отказами и восстановлением избыточности.
- RAID-кэш
- Буфер быстрой памяти между хостом и накопителями RAID, используемый для кэширования чтения и записи. Может снижать задержку и повышать производительность ввода-вывода.
- RAID-уровень
- RAID-уровень — схема размещения данных и избыточности по накопителям массива, определяющая полезную ёмкость, отказоустойчивость и характеристики ввода-вывода.
- Rebuild
- Процесс восстановлен ия избыточности массива после замены отказавшего диска: контроллер вычисляет и записывает на новый диск недостающие данные из остальных дисков.
- S.M.A.R.T.
- S.M.A.R.T. — технология самодиагностики накопителей, собирающая показатели состояния и ошибок. Она помогает выявлять признаки деградации диска до отказа.
- SAS
- SAS — последовательный интерфейс и набор протоколов SCSI для подключения накопителей, поддерживающий адресацию устройств, экспандеры и обычно двухпортовое подключение дисков.
- SAS-экспандер
- Устройство коммутации SAS, расширяющее число подключаемых накопителей относительно числа портов контроллера. Передаёт SAS-трафик между инициаторами и целевыми устройствами.
- SATA
- SATA — последовательный интерфейс подключения HDD, SSD и оптических приводов; в обычной прямой схеме один порт контроллера соединён с одним накопителем.
- Write-Back кэш
- Политика кэша RAID-контроллера: запись подтверждается после помещения данных в кэш, а на накопители переносится позже. Кэш требует защиты от потери питания.
