Массив с избыточностью переживает отказ накопителя без остановки сервиса — это его прямое назначение. Но событие «диск выпал» открывает интервал, в течение которого система защищена хуже, чем в любой другой момент своей жизни, и одновременно нагружена сильнее обычного. Понимание того, что именно происходит внутри этого окна, меняет и выбор конфигурации, и порядок реакции.
Что делает контроллер после отказа
Как только накопитель перестаёт отвечать или превышает порог по ошибкам, контроллер выводит его из состава набора и переводит массив в деградированный режим. Данные остаются доступны, но каждый запрос к блокам выбывшего диска теперь обслуживается вычислением: в схеме с чётностью читаются все остальные диски полосы и недостающий фрагмент восстанавливается. В зеркале проще — запросы уходят на уцелевшую копию, но и запаса больше нет.
Дальше начинается перестроение. Если в системе есть заранее назначенный резервный накопитель, процесс стартует автоматически; если нет — ждёт физической замены. Смысл перестроения одинаков для любой схемы: заполнить новый диск содержимым выбывшего. Для зеркала это последовательное копирование. Для чётности — чтение всех оставшихся дисков от начала до конца с вычислением недостающего блока для каждой полосы.
Почему это самая тяжёлая нагрузка за всё время
Обычная работа сервера редко читает диски целиком. Перестроение читает — от первого сектора до последнего, без пропусков, включая области, к которым не обращались годами. Объём этой работы определяется ёмкостью накопителя, а не количеством реальных данных: пустой на девять десятых массив восстанавливается ровно столько же, сколько заполненный. При нынешних ёмкостях механических дисков и их линейной скорости счёт идёт на многие часы даже в идеальных условиях, а под рабочей нагрузкой — на сутки и больше.
Именно сплошное чтение вскрывает то, что до сих пор было незаметно. Сектор, который потихоньку деградировал и ни разу не запрашивался, обнаруживается только сейчас — в тот момент, когда избыточности для его восстановления уже нет. В схеме с одинарной чётностью нечитаемый блок на одном из уцелевших дисков означает потерю этой полосы, а на многих контроллерах — остановку перестроения целиком.
Есть и второй фактор. Диски в массиве обычно ставились одной партией, отработали одинаковое время при одинаковой температуре и одинаковой нагрузке. Их ресурсы коррелируют. Вероятность того, что второй накопитель уйдёт именно во время многочасового сплошного чтения, ощутимо выше средней по времени работы. Требования к дискам, рассчитанным на такой режим, разобраны в разделе о серверных накопителях.
Скорость перестроения против скорости сервиса
Контроллер делит пропускную способность между восстановлением и обычными запросами приложения. Приоритет настраивается, и это компромисс без хорошего ответа. Низкий приоритет сохраняет отзывчивость сервиса, но растягивает окно уязвимости на дни. Высокий сокращает окно, но заметно тормозит приложение — на массиве с чётностью в деградированном режиме это может быть неприемлемо.
Разумная практика: если данные критичны, приоритет перестроения поднимают и по возможности снижают внешнюю нагрузку на время процесса. Если сервис важнее и есть свежая резервная копия, допустимо восстанавливаться медленно. Решение принимается заранее, а не в момент аварии.
Что сокращает риск
Первое — регулярное фоновое чтение массива. Контроллер по расписанию проходит все диски, находит нечитаемые сектора и переназначает их, пока избыточность ещё цела. Это единственный механизм, который предотвращает сюрприз во время перестроения, и его отключение ради производительности — плохой размен.
Второе — двойная чётность на широких наборах из крупных дисков. Она позволяет пережить обнаружение проблемы на втором накопителе в процессе восстановления первого.
Третье — резервный диск в составе системы. Он убирает из уравнения человека: перестроение стартует немедленно, а не через сутки, когда кто-то заметил письмо от системы мониторинга. Горячая замена в корзине позволяет поставить новый накопитель без остановки — про механику посадочных мест написано в разделе о шасси и корзинах.
Четвёртое — исправная сигнализация. Массив, о деградации которого никто не узнал, теряет смысл: он спокойно доживёт до второго отказа. Проверка того, что уведомления действительно доходят, стоит дешевле любого восстановления.
Порядок действий при отказе
Не выдёргивать диски наугад. Сначала — определить по журналу контроллера, какой именно накопитель выведен из набора, и сверить его позицию в корзине по серийному номеру, а не по догадке. Извлечение исправного диска из деградированного массива с одинарной чётностью означает потерю данных немедленно.
Затем — убедиться, что резервная копия свежая, и только после этого начинать перестроение. Замена накопителя моделью с меньшей полезной ёмкостью не сработает; чуть большая обычно допустима, но излишек пропадёт. И до окончания процесса не стоит планировать никаких работ с массивом: пока идёт восстановление, система живёт без запаса прочности.