При отказе единственного контроллера тома обычно становятся недоступны до ремонта. Уже записанные на диски блоки могут сохраниться, но результат для данных в write-back cache зависит от защиты кеша и характера отказа. Сохранность и процедура восстановления определяются архитектурой конкретной СХД, а простой включает диагностику, доставку совместимого модуля, замену и проверку приложений.
Именно этот сценарий закрывает конфигурация с двумя контроллерами, которую в спецификациях обозначают как dual controller. Разберем, что она дает на самом деле, чего не закрывает и как посчитать, окупается ли доплата в вашем случае.
Что делает контроллер СХД и почему он критичен
В классической управляемой СХД контроллер принимает запросы серверов, предоставляет LUN, управляет дисковым массивом, рассчитывает четность, обслуживает кеш и host-порты. Без рабочего контроллера такая система не экспортирует тома, хотя накопители физически остаются в полке. Это описание не распространяется автоматически на JBOD и software-defined storage.
RAID и резервные блоки питания не компенсируют отказ единственного узла, который обслуживает тома и пути к хостам. Поэтому в одноконтроллерной управляемой СХД контроллер остается единой точкой отказа доступа к данным.
Реальное время восстановления одноконтроллерной системы зависит от наличия запасной части, совпадения прошивки, сохранности конфигурации и процедуры производителя. Эти условия проверяют до закупки и включают в план восстановления.
Как работает отказ: сценарий с одним и с двумя контроллерами
Разница между схемами лучше всего видна при сравнении последовательности событий.

- Одноконтроллерная система. После отказа серверы теряют путь к томам, а приложения могут получить ошибки ввода-вывода. RTO включает диагностику, доставку совместимого модуля, замену по процедуре производителя, восстановление конфигурации или кеша при необходимости и проверку доступа приложений. Итог для подтвержденных записей зависит от защиты write-back cache.
- Двухконтроллерная система. После обнаружения отказа массив передает владение томами и доступные пути второму контроллеру. При корректных MPIO/DSM, zoning, таймаутах и запасе производительности хост повторяет I/O по живому пути. Возможны краткая пауза, повтор запросов и рост задержки, поэтому поведение приложений подтверждают контролируемым тестом failover.
Перед подтверждением write-back записи хосту контроллер должен сохранить ее в защищенном кеше и, если так устроена модель, синхронно зеркалировать dirty cache на партнер. Режим кеша, защита от потери питания и поведение при отказе сверяются по документации конкретной СХД.
Активный-активный и активный-пассивный: в чем разница
Названия active-active и active-passive не описывают всю топологию. Важно выяснить владение каждым LUN и состояния путей ALUA или ANA.
В режиме активный-пассивный нагрузку обслуживает один контроллер, второй находится в готовности и вступает в работу при отказе первого. Ресурсы резервного узла в обычном режиме простаивают.
В active-active оба контроллера могут обслуживать разные тома, но путь через партнера для конкретного LUN бывает active/non-optimized. Распределение томов между узлами не гарантирует прирост для одного LUN. Паспортную производительность проверяют для штатного и single-controller режимов с выбранной политикой multipath.
После отказа оставшийся контроллер принимает фактическую нагрузку томов партнера. Ее рост не обязательно равен удвоению, но запас CPU, кеша, портов и дисков должен удерживать целевые p99 latency и пропускную способность в single-controller режиме.
Проект принимают только после теста нагрузки при отключенном контроллере. Проверяют, что том не исчезает, ошибки не доходят до приложения, пауза и p99 latency укладываются в допуск, а данные остаются консистентными.
Multipath: почему без него второй контроллер бесполезен
Это тот раздел, из-за отсутствия которого дорогая конфигурация иногда не срабатывает в нужный момент.

Представьте: в полке два контроллера, все задублировано, но сервер подключен к хранилищу одним кабелем через один коммутатор к одному контроллеру. Что произойдет при отказе этого контроллера? Хранилище продолжит работать через второй, а вот конкретный сервер потеряет доступ к своим томам — просто потому, что его единственный путь до данных оборвался.
Multipath I/O, или MPIO, представляет несколько физических путей как один диск и при отказе выбирает доступный маршрут. Балансировка работает только при поддержке массива и соответствующей политике DSM. Иначе пути могут находиться в режиме failover-only либо active/optimized и active/non-optimized.
Каждый путь строят end-to-end: HBA или NIC, порт, фабрика либо подсеть и host-порт контроллера. Адаптеры, коммутаторы, зоны или VLAN, кабели и питание разводят по независимым отказовым доменам, после чего физически разрывают каждый путь по очереди. Такая отказоустойчивая сеть нужна, чтобы резервирование контроллеров работало на уровне приложения.
Что два контроллера не закрывают
Честный перечень ограничений важен не меньше списка преимуществ.
Резервирование контроллеров не защищает от отказа полки целиком — при аварии питания, пожаре или заливе площадки недоступным становится все хранилище. Не спасает оно и от логических проблем: если приложение записало некорректные данные, оба контроллера аккуратно запишут их на диски. Ошибочно удаленный файл удалится одинаково успешно в любой конфигурации. Работа программы-шифровальщика тоже пройдет штатно.
Репликация сокращает RTO при отказе массива или площадки, но может перенести логическую ошибку и шифрование. От удаления и ransomware защищают версионные, изолированные или неизменяемые резервные копии с регулярно проверяемым восстановлением. Дублирование контроллеров и backup решают разные задачи.
Когда доплата окупается: методика оценки
Вместо рассуждений о надежности посчитайте конкретные величины.
- Шаг первый: стоимость часа простоя. Что перестает работать при недоступности хранилища? Если это склад и продажи — считайте недополученную выручку. Если бухгалтерия в отчетный период — стоимость срыва сроков. Если производство — стоимость остановки линии. Часто эта цифра оказывается больше, чем ожидают до подсчета.
- Шаг второй: реальный срок восстановления. Не паспортный, а фактический: есть ли запасной контроллер на площадке, какой срок реакции по сервисному контракту, сколько занимает доставка в ваш город. Разница между «четыре часа» и «пять рабочих дней» меняет всю экономику.
- Шаг третий: сравните доплату за второй контроллер и независимые пути с ожидаемым ущербом от простоя. Упрощенная точка безубыточности равна доплате, деленной на ущерб за час, но решение также зависит от вероятности отказа, RTO, срока эксплуатации и стоимости испытаний.
Обслуживание также влияет на TCO. Если производитель поддерживает nondisruptive upgrade для конкретной модели, версии и host-конфигурации, контроллеры обновляют поочередно. До работ проверяют матрицу совместимости, backup, MPIO и failover в согласованном окне. Отдельные обновления могут требовать простоя.
Когда одного контроллера достаточно: архивное хранилище с некритичным доступом, тестовый контур, вторичная копия данных, задачи, где сутки недоступности не влекут ощутимых потерь.
Стоит учесть и то, как решение отразится на сроке службы системы. Одноконтроллерная полка со временем становится ограничением не только по отказоустойчивости: любое обслуживание требует согласованного окна, а окна в работающей компании находятся все хуже по мере роста нагрузки. Через два-три года эксплуатации это выливается в отложенные обновления прошивок и накопленные риски. Двухконтроллерная схема снимает организационную часть проблемы: работы планируются в обычном режиме, без переговоров с бизнесом о простое.
При сравнении моделей стоит уточнять, для какого режима приведены паспортные показатели: обычно они относятся к работе обоих узлов, а не одного.
Три вопроса перед закупкой
Решение принимается не в терминах «надежнее — не надежнее», а в конкретных цифрах вашей ситуации.
Первый вопрос: сколько времени сервис может быть недоступен без ощутимых последствий? Второй: за какой реальный срок вы получите и установите замену — с учетом наличия детали, сервисного контракта и логистики? Третий: рассчитана ли конфигурация так, что один контроллер вытянет всю нагрузку с приемлемым откликом?
Если допустимый простой короче реального RTO одноконтроллерной схемы, рассматривают второй контроллер и независимые пути. Если требования мягче, бюджет можно направить на backup или производительность. При подборе СХД под задачу схема проверяется по нагрузке, MPIO и контролируемому отказу.
