RAID и RAID-контроллеры

Расширение RAID и миграция уровня без остановки: условия и риски

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

15 минут
абстрактная иллюстрация добавления дисков и увеличения ёмкости RAID-массива
Добавить диски в работающий RAID, увеличить его ёмкость или выполнить миграцию RAID-уровня иногда можно без остановки сервисов. Для этого реализация должна поддерживать Online Capacity Expansion (OCE) или RAID Level Migration (RLM), а массив, диски, кэш и все верхние слои хранения должны быть исправны. Online означает, что хостовый ввод-вывод может оставаться доступным во время операции; это не обещает прежней производительности и не заменяет актуальную резервную копию с проверенным восстановлением.

Что именно меняется при добавлении диска и расширении RAID

В аппаратном RAID объектами могут быть disk group, array, Virtual Drive или Logical Drive; в Linux MD — md-устройство. Названия и границы объектов зависят от реализации.

ОперацияЧто меняетсяЧто не происходит автоматически
Добавление физического дискаКонтроллер или ОС видит новый физический диск.Диск не обязательно становится участником массива и не увеличивает объём ОС.
OCEПоддерживаемый массив перераспределяет данные с добавлением дисков или увеличением доступной ёмкости участников.Разделы, LVM, шифрование и файловая система обычно не растут сами.
RLMСуществующий массив преобразуется из одного RAID-уровня в другой, если переход документирован.Поддержка перехода, число нужных дисков и итоговый объём нельзя предполагать по общему названию RAID.
Увеличение Virtual Drive или Logical DriveЛогический диск, предоставленный ОС, получает больший размер.Файловая система не увидит свободное место, пока не расширены реально существующие верхние слои.
Увеличение файловой системыФайловая система начинает использовать свободное пространство своего блочного устройства.Нижележащий RAID, раздел или LVM не меняются.

Не смешивайте аппаратный RAID, программный RAID Linux с mdadm, ZFS и RAID-функции файловых систем. У них различаются метаданные, команды, допустимые изменения и восстановление. Для выбора реализации полезно сравнить программный и аппаратный RAID.

Сначала определите владельца RAID и схему слоёв

До изменения зафиксируйте, кто формирует массив: аппаратный RAID контроллера, mdadm, ZFS или другая подсистема. Если ОС получает один Virtual Drive от RAID-контроллера, она обычно не знает о составе физических дисков и не может расширить сам массив средствами LVM или файловой системы.

Показывает блочные устройства, файловые системы, точки монтирования и доступные устойчивые идентификаторы. Сохраните вывод до начала работ и после каждого изменения. За аппаратным RAID поля WWN и SERIAL логического устройства могут не идентифицировать физические диски, поэтому enclosure:slot, WWN и серийные номера участников дополнительно сверяйте в штатном средстве управления контроллером.
lsblk -o NAME,SIZE,TYPE,FSTYPE,FSVER,UUID,WWN,SERIAL,MOUNTPOINTS
Показывает файловую систему и цепочку монтирования для указанного пути. Замените путь на реальный каталог с данными.
findmnt -T /путь/к/данным
При использовании LVM показывает физические тома (PV), группы томов (VG), логические тома (LV) и устройства под ними. Не выполняйте эти команды, если LVM не установлен или не используется в рассматриваемой цепочке.
pvs; vgs; lvs -a -o +devices
Для Linux MD показывает активность синхронизации и подробности конкретного md-массива. Замените `/dev/mdX` только на подтверждённое устройство. Перед запуском нового reshape не должно быть незавершённого recovery, resync или reshape. Сохраните вывод, включая поля State, Active Devices и Working Devices, вместе с версиями mdadm и ядра.
cat /proc/mdstat; mdadm --detail /dev/mdX

Расширяют только присутствующие в конкретной схеме слои и только снизу вверх. LUKS/dm-crypt нельзя пропускать, если он расположен между RAID-устройством и LVM или файловой системой.

Фактическая схемаПорядок роста после увеличения RAID-устройства
Logical Drive → файловая системаУвеличить Logical/Virtual Drive → увеличить файловую систему.
Logical Drive → раздел → файловая системаУвеличить Logical/Virtual Drive → расширить раздел → увеличить файловую систему.
Logical Drive → LVM PV → LV → файловая системаУвеличить Logical/Virtual Drive → увеличить PV → увеличить нужный LV → увеличить файловую систему.
Logical Drive → раздел → LVM PV → LV → файловая системаУвеличить Logical/Virtual Drive → расширить раздел → увеличить PV → увеличить нужный LV → увеличить файловую систему.
Logical Drive или раздел → LUKS/dm-crypt → LVM либо файловая системаУвеличить нижнее устройство → выполнить документированное для используемой версии изменение размера LUKS/dm-crypt mapping → затем расширять PV, LV и/или файловую систему, если они есть.

Шифрование и промежуточные отображения

LUKS, device-mapper, multipath, thin provisioning и иные промежуточные слои меняют порядок работ. Возможность изменения размера открытого LUKS-устройства и точный вызов утилиты зависят от версии cryptsetup, типа контейнера и схемы. Сверяйте процедуру с документацией именно используемой версии и фиксируйте исходный размер каждого слоя.

Какие возможности сверять в документации контроллера или реализации

  • Точную модель контроллера, версию его прошивки, драйвера и утилиты управления. Термины OCE, RLM, reconfigure, transform или expand virtual disk в разных семействах могут означать разные операции.
  • Исходный и целевой RAID-уровень, минимальное и максимальное число участников, необходимость добавлять диск и допустимую конфигурацию зеркальных и parity-массивов.
  • Какой объект расширяется: array, disk group, Virtual Drive, Logical Drive или md-устройство; появляется ли свободное место у существующего логического диска либо требуется отдельное поддерживаемое действие.
  • Совместимость новых дисков: интерфейс, секторный формат, ёмкость, прошивка, поддержка SSD и NVMe, ограничения корзины и контроллера. Особенности SSD, M.2 и NVMe разобраны в статье «RAID на SSD, M.2 и NVMe».
  • Поддержку операции на работающем хосте, доступные статусы и журнал событий, возможность изменить приоритет, поставить задачу на паузу или отменить её. Не считайте паузу и отмену доступными, пока это не подтверждено документацией.
  • Для mdadm: формат RAID-метаданных, версию ядра и mdadm, изменение числа участников и уровня, ограничения reshape, а также требуемый запас свободного места или резервная область по документации выбранной версии.

Даже контроллеры одного бренда и одного семейства могут иметь разные матрицы OCE/RLM. Поэтому здесь намеренно нет универсального списка переходов для Dell PERC, HPE Smart Array или Broadcom/MegaRAID. Для аппаратной конфигурации сначала соберите модель, firmware и текущую топологию; пример безопасной инвентаризации MegaRAID дан в статье «MegaRAID и StorCLI: настройка RAID и проверка состояния в Linux».

Стоп-критерии перед расширением RAID-массива

Не запускайте OCE, RLM или reshape при проблемном состоянии

Остановитесь, если массив находится в деградированном режиме, выполняется Rebuild, синхронизация или другая фоновая операция; есть статус Failed, предупреждения S.M.A.R.T., ошибки чтения/записи, события контроллера, потеря связи с диском либо нерасследованные ошибки. Также стоп-критерии — неподтверждённая совместимость новых накопителей, отсутствие актуальной копии с проверенным восстановлением и неприемлемая для сервисов деградация производительности.

Для аппаратного RAID отдельно проверьте защищённый кэш и его политику. Состояния BBU, CacheVault, flash-модуля или суперконденсатора могут отключить Write-Back кэш либо переключить контроллер в Write Through. Не включайте Write Back принудительно ради ускорения длительной операции: допустимое поведение определяет документация контроллера. Диагностика и замена модулей защиты кэша описаны в отдельной инструкции.

Маршрут: расширение RAID или смена RAID-уровня

Последовательность не подменяет руководство производителя. Она помогает подтвердить, что документированная операция относится именно к вашему массиву и что верхние слои будут увеличены в безопасном порядке.

  1. 1
    Зафиксируйте исходную конфигурацию
    Сохраните отчёт контроллера или mdadm, модель и версию firmware/ПО, RAID-уровень, состав дисков, enclosure:slot или серийные номера, размер предоставленного ОС устройства, схему lsblk, LVM и точки монтирования. Зафиксируйте состояние массива, физических дисков, кэша и активных фоновых задач.
  2. 2
    Проверьте резервную копию восстановлением
    Копия должна быть завершённой, актуальной и независимой от изменяемого массива. Подтвердите восстановление хотя бы выборочных данных либо тестового экземпляра и определите, сколько времени оно займёт. RAID не заменяет резервное копирование: причины и требования к проверке разобраны в статье «Почему RAID — не резервное копирование».
  3. 3
    Подтвердите поддерживаемый переход
    По документации именно вашей модели и версии подтвердите исходный и целевой RAID-уровни, число и тип дисков, возможность OCE/RLM или md reshape, объект изменения, онлайн-режим и действия при ошибке. Если хотя бы один пункт не подтверждён, не применяйте команды или пункты GUI по аналогии с другой моделью.
  4. 4
    Убедитесь, что массив здоров
    Проверьте Optimal/Normal либо эквивалентный статус массива, отсутствие Rebuild, синхронизации RAID, background initialization и consistency check. Проверьте события контроллера, состояние каждого диска и для аппаратного RAID — кэш, BBU/CacheVault или суперконденсатор.
  5. 5
    Подготовьте окно наблюдения и критерии остановки
    Настройте оповещения, назначьте ответственного, определите допустимые задержки и нагрузку на период операции. Подготовьте документированный путь реакции на ошибку. Не планируйте отмену, перезагрузку или выключение как универсальный способ исправить ситуацию.
  6. 6
    Выполните только документированную операцию RAID
    Добавьте подтверждённые диски и запустите OCE, RLM или reshape в штатной утилите владельца массива. Не меняйте одновременно RAID-уровень, прошивку контроллера, топологию подключения и несколько независимых массивов без отдельного плана.
  7. 7
    Дождитесь завершения и проверьте новый размер нижнего устройства
    Убедитесь, что операция завершилась штатно, статус массива нормальный, все ожидаемые диски видны, а ОС обнаружила именно увеличенное Logical/Virtual Drive или md-устройство. Только после этого переходите к разделам, LUKS, LVM и файловой системе.
  8. 8
    Расширьте существующие верхние слои снизу вверх
    Следуйте фактической схеме: раздел, затем LUKS/dm-crypt при наличии, затем LVM PV, LV и файловая система. Не создавайте новые разделы или тома там, где требуется рост существующего объекта, пока не подтверждён план разметки и восстановления.
  9. 9
    Подтвердите результат
    Сверьте размер на каждом слое, UUID и точки монтирования, доступность приложений, журналы ОС и контроллера, задержки ввода-вывода и состояние кэша. Сохраните новый снимок конфигурации и проверьте, что резервное копирование продолжает выполняться.

Как расширять разделы, LVM и файловую систему

После OCE или RLM ОС может видеть прежний размер Logical/Virtual Drive, пока драйвер или подсистема хранения повторно не запросит ёмкость устройства. Безопасный способ повторного обнаружения зависит от ОС, драйвера и контроллера. Сначала подтвердите новый размер блочного устройства средствами ОС. Если в фактической схеме есть раздел, после этого отдельно расширьте его и обновите сведения о таблице разделов в ядре документированным для используемой ОС способом. Затем меняйте только те верхние слои, которые действительно присутствуют.

  • ext4 обычно поддерживает увеличение смонтированной файловой системы, если нижнее блочное устройство уже стало больше. Уменьшение требует размонтирования и отдельной процедуры.
  • XFS поддерживает рост смонтированной файловой системы; штатного уменьшения XFS нет. Если требуется меньший размер, обычно создают новую файловую систему нужного размера на другом томе и переносят либо восстанавливают данные.
  • Btrfs поддерживает изменение размера, включая уменьшение, но это не делает безопасным уменьшение нижележащего RAID, раздела или шифрованного отображения. Сначала подтверждают состояние файловой системы и процедуру для используемой версии.
  • LVM позволяет увеличивать PV и LV при наличии расширенного нижнего устройства. Уменьшение LV требует отдельной проверки файловой системы: нельзя сокращать LV ниже занятого или минимально допустимого размера файловой системы.
  • Если файловая система находится непосредственно на Logical Drive, раздела, LVM и LUKS в цепочке нет — их не нужно и нельзя «расширять для порядка».

Не сокращайте нижний слой раньше верхнего

Уменьшение RAID-массива не является обратной операцией к расширению. Даже если удалось уменьшить файловую систему, затем LV, PV, LUKS-отображение и раздел, это не доказывает, что контроллер или mdadm умеет сократить сам RAID. Сокращение Logical Drive, Virtual Drive или md-устройства раньше всех потребителей может немедленно сделать часть данных недоступной.

Можно ли работать во время OCE и RLM

При документированной онлайн-поддержке сервер обычно может продолжать читать и записывать данные, пока OCE, RLM или reshape выполняются в фоне. Но операция конкурирует с приложениями за диски, контроллер, шину и кэш: задержки могут вырасти, а пропускная способность — снизиться. Для баз данных, виртуальных машин и других чувствительных нагрузок заранее согласуйте ограничение фоновых заданий, перенос части нагрузки или окно пониженной активности.

  • Контролируйте процент и статус операции в штатной утилите контроллера либо в системных средствах MD.
  • Следите за состоянием логического массива, каждого диска, кэша и сообщениями контроллера; отдельный мониторинг S.M.A.R.T. может быть ограничен способом подключения дисков.
  • Измеряйте задержки и ошибки I/O на хосте, а не только процент выполнения операции.
  • Проверяйте, не запущены ли параллельно Rebuild, Patrol Read, Consistency Check, фоновая инициализация или задачи, которые документация считает конфликтующими.
  • Возможность паузы, отмены либо изменения приоритета проверяйте для конкретной модели и версии. Не останавливайте уже запущенную задачу вслепую.

Если Degraded, Offline, Failed или ошибки накопителя обнаружены до запуска OCE, RLM или reshape, не начинайте операцию. Если состояние ухудшилось во время уже выполняемой миграции, не запускайте новые фоновые задачи и не пытайтесь вслепую отменять операцию, перезагружать или выключать сервер. Сохраните статусы, прогресс и журналы, затем следуйте документированной процедуре конкретной реализации и материалу «RAID Degraded, Offline или Failed: диагностика отказа дисков».

Почему срок расширения RAID нельзя назвать заранее

Размер массива — только один из факторов. При OCE, RLM и reshape может перераспределяться значительная часть полос, зеркальных блоков или чётности, поэтому два массива одинаковой ёмкости способны завершиться за разное время.

  • исходный и целевой RAID-уровень, число дисков и объём данных, который нужно переразложить;
  • тип, ёмкость и фактическая производительность HDD, SSD или NVMe, а также состояние и ошибки накопителей;
  • текущая нагрузка хоста, очередь запросов, пиковые задания резервного копирования, базы данных или виртуальных машин;
  • приоритет фоновой операции, настройки контроллера или ядра, работа кэша и параллельные фоновые задачи;
  • возможные повторы операций чтения, коррекция ошибок и ограничение производительности при проблемах с кэшем или дисками.

Как планировать срок

Используйте оценку только как диапазон для конкретной конфигурации и нагрузки, если её даёт документация или измерение на сопоставимом стенде. Для окна работ важнее предусмотреть наблюдение, запас по задержкам и сценарий переноса либо восстановления, чем опираться на универсальное число часов.

Когда безопаснее создать новый массив и перенести данные

Контролируемое создание нового массива с переносом или восстановлением данных предпочтительнее, когда онлайн-изменение не документировано или его риск не укладывается в требования сервиса. Это не «устаревший» путь, а способ отделить создание новой конфигурации от сохранения исходной и иметь понятный откат.

  • Нужный переход RAID-уровней, добавление дисков, работа с SSD/NVMe или расширение Virtual/Logical Drive не поддерживаются для текущей модели, firmware или утилиты.
  • Нужно уменьшение RAID-массива либо переход требует уменьшения нижнего устройства.
  • Массив не находится в нормальном состоянии, есть предупреждения дисков, ошибки контроллера, Rebuild или неясные события.
  • Нужно сменить контроллер, тип дисков, секторный формат, топологию корзины или саму архитектуру хранения.
  • Ожидаемые задержки, снижение производительности или неопределённая длительность OCE/RLM неприемлемы для приложения.
  • Есть возможность подготовить новый массив, скопировать данные с проверкой, переключить сервис в запланированное окно и сохранить исходный массив до приёмки.

При переносе не удаляйте и не инициализируйте исходный массив до проверки данных и запуска приложений на новом хранилище. Если задача связана с отказом, Foreign Configuration или исчезновением массива, не используйте процедуру миграции как метод восстановления: сначала следуйте статье «Восстановление RAID после сбоя: что делать до любых изменений на дисках».

Термины в статье

Реализация RAID, в которой специализированный контроллер формирует логические диски и выполняет операции массива. Наличие и защита кэша зависят от модели.
Изолированная вычислительная среда с виртуальными процессорами, памятью, дисками и сетевыми адаптерами, в которой под управлением гипервизора работает гостевая ОС.
Состояние отказоустойчивого RAID-массива, потерявшего часть избыточности, но сохраняющего доступ, пока сочетание отказов допустимо для его уровня и раскладки.
Логический диск — блочное устройство, которое RAID-контроллер или программная RAID-подсистема предоставляет хосту как отдельный накопитель.
Метаданные RAID — служебные записи на дисках или контроллере, описывающие состав, уровень, состояние и параметры RAID-массива для его распознавания и сборки.
Миграция RAID-уровня — преобразование существующего массива в другой RAID-уровень без выгрузки данных, если эту операцию поддерживает контроллер.
Онлайн-расширение ёмкости — поддерживаемое контроллером увеличение ёмкости действующего RAID-массива без прекращения доступа к нему, обычно путём добавления накопителей.
RAID, реализованный ОС или другим программным стеком хоста без отдельного аппаратного RAID-контроллера. Использует вычислительные ресурсы сервера.
Фоновая операция, восстанавливающая согласованность избыточности RAID: зеркальных копий либо блоков данных и чётности.
Накопитель энергии высокой мощности, применяемый для кратковременного питания кэша RAID-контроллера. При сбое питания он сохраняет данные до записи во флеш-память.
Физический диск — отдельный HDD, SSD или иной накопитель, распознанный RAID-контроллером как член массива либо как независимое устройство.
Фоновая инициализация — формирование или проверка RAID-контроллером данных избыточности нового массива без отключения логического диска.
Избыточные контрольные данные, вычисляемые из блоков одной полосы RAID. Один блок чётности защищает от отказа одного диска, два независимых блока RAID 6 — от отказа двух.
Аккумуляторный модуль, поддерживающий питание энергозависимого кэша RAID-контроллера при сбое питания до восстановления питания и записи данных на диски.
CacheVault — технология защиты кэша записи RAID-контроллера, сохраняющая во флеш-память подтверждённые хосту, но ещё не записанные на диски данные при потере питания.
Consistency Check — фоновая проверка согласованности избыточности RAID: зеркальных копий либо рассчитанной и записанной чётности; расхождения могут исправляться.
Семейство RAID-решений Dell для серверов PowerEdge: аппаратные контроллеры PERC H и программные PERC S. Возможности и совместимость зависят от модели и поколения платформы.
Failed — статус физического накопителя, который RAID-контроллер признал отказавшим и перестал использовать для штатного ввода-вывода в составе массива.
Состояние, при котором RAID-контроллер считает найденную на дисках конфигурацию массива не зарегистрированной или не совпадающей с текущей. Её проверяют и импортируют либо очищают.
Семейство аппаратных и программных RAID-решений HPE для локальных SAS/SATA-накопителей и, в поддерживаемых tri-mode-конфигурациях, NVMe.
M.2 — спецификация компактного разъёма и модулей расширения, определяющая размеры и ключи; накопители M.2 могут использовать интерфейс SATA или PCIe.
Утилита командной строки Linux для создания, сборки, мониторинга и изменения программных RAID-массивов подсистемы MD.
Семейство аппаратных RAID-контроллеров Broadcom, которые объединяют накопители в массивы и предоставляют ОС логические диски, обрабатывая RAID на самом контроллере.
Offline — зависящий от реализации статус накопителя или виртуального диска RAID: первый исключён контроллером из работы, второй недоступен хосту.
Patrol Read — фоновое сканирование накопителей RAID-контроллером для поиска скрытых ошибок чтения. В избыточном массиве контроллер может восстановить повреждённые блоки.
Технология объединения нескольких накопителей в логические блочные устройства для повышения производительности и/или отказоустойчивости в зависимости от RAID-уровня.
RAID 1 — уровень RAID с зеркалированием данных на двух или более дисках. Полезная ёмкость равна ёмкости наименьшего участника, а доступ сохраняется, пока исправна хотя бы одна копия.
Устройство или модуль, который формирует RAID-массивы из накопителей и предоставляет ОС логические диски, управляя размещением данных, отказами и восстановлением избыточности.
RAID-уровень — схема размещения данных и избыточности по накопителям массива, определяющая полезную ёмкость, отказоустойчивость и характеристики ввода-вывода.
Процесс восстановления избыточности массива после замены отказавшего диска: контроллер вычисляет и записывает на новый диск недостающие данные из остальных дисков.
S.M.A.R.T. — технология самодиагностики накопителей, собирающая показатели состояния и ошибок. Она помогает выявлять признаки деградации диска до отказа.
Метод предоставления логической ёмкости LUN, томам или виртуальным дискам, при котором физическое место выделяется по мере записи, а не резервируется целиком заранее.
Политика кэша RAID-контроллера: запись подтверждается после помещения данных в кэш, а на накопители переносится позже. Кэш требует защиты от потери питания.
ZFS — файловая система и менеджер томов с пулами хранения, контрольными суммами и копированием при записи, объединяющий управление дисками и данными.

Вопросы по теме

Все вопросы и ответы

Можно ли добавить один диск в RAID 1 и увеличить его размер?

Обычная пара RAID 1 не становится больше от добавления третьего диска. Возможные операции зависят от реализации: она может не поддерживать такую конфигурацию, предложить миграцию в другой уровень или создать отдельный массив. Это нужно сверять с матрицей конкретного контроллера либо программной реализации.