Active/Active или Active/Passive: как контроллеры СХД ведут себя под нагрузкой и при отказе

Обратная связь

Active/Active или Active/Passive: как контроллеры СХД ведут себя под нагрузкой и при отказе

Active/Active означает, что оба контроллера участвуют в работе, но это не гарантирует одинаковую производительность каждого пути к LUN. В ALUA multipath должен направлять I/O по оптимизированным путям; в Active/Passive рабочий I/O обслуживает один контроллер до failover. СХД NIMBUS «Гром» и «Молния» используют Active/Active и поддерживают ALUA/SLUA, зеркальный кэш и защиту кэша.

Инженеры ЦОД знают неприятный сценарий: оба контроллера на панели зелёные, все пути в ОС видны, а задержка базы растёт без очевидной причины. Чаще всего проблема не в RAID и не в дисках. Хост отправляет I/O к LUN через путь, который для данной логической единицы не является оптимальным.

Термин Active/Active нужно читать аккуратно. Он описывает доступность обоих контроллеров, но не обязательно симметрию маршрутов. Для проектирования SAN важны три вещи: кто обслуживает I/O к конкретному LUN, какие пути multipath считает предпочтительными и что произойдёт с незавершёнными операциями при отказе одного контроллера.

Что происходит в Active/Passive

В схеме Active/Passive один контроллер обслуживает тома и фронтальные подключения. Второй остаётся в резерве: он принимает на себя работу после отказа активного узла или при плановом переключении. До failover его вычислительный ресурс не используется для штатной обработки I/O конкретного сервиса.

  • Для LUN существует рабочая сторона и резервная сторона.
  • Multipath использует активный путь, а резервный держит для переключения.
  • При отказе требуется смена владения ресурсами и восстановление рабочих путей.
  • Короткая пауза I/O зависит от ОС, драйвера multipath, тайм-аутов приложения и настройки SAN.

Это понятная архитектура, но её нельзя оценивать только по формуле «второй контроллер простаивает». Для небольших и некритичных нагрузок она может быть достаточной. В инфраструктуре с высокой плотностью ВМ, базами данных и несколькими LUN важнее другое: не создавать единый активный узел, через который проходит весь штатный поток.

Active/Active: два варианта

У Active/Active есть два практических режима. В симметричной реализации оба контроллера могут обслуживать I/O к одному LUN по равноценным путям. В асимметричной реализации оба контроллера остаются активными, однако для конкретного LUN часть путей считается оптимизированной, а часть — активной, но неоптимизированной.

Модель доступа Штатный I/O Путь к LUN Что делает multipath Поведение при отказе
Active/Passive Рабочую нагрузку несёт активный контроллер Рабочий и резервный Использует активный путь, затем переключается Резервный контроллер принимает обслуживание после failover
Active/Active с ALUA Оба контроллера доступны, но LUN имеет предпочтительные маршруты Active/Optimized и Active/Non-Optimized Балансирует I/O только по оптимизированным путям конкретного LUN Оставшиеся доступные пути становятся рабочими, затем multipath обновляет выбор маршрута
Симметричный Active/Active Оба контроллера обслуживают I/O равноправно Все пути равноценны Может равномерно распределять I/O по всем активным путям Нагрузка остаётся на доступной стороне без выбора «владельца» LUN

ALUA — Asymmetric Logical Unit Access — сообщает хосту, какие target port group оптимизированы для конкретного LUN. Путь Active/Optimized ведёт к контроллеру, который обслуживает данный LUN напрямую. Путь Active/Non-Optimized остаётся доступным, но I/O может быть передан между контроллерами по внутреннему interconnect. Это добавляет задержку и расходует внутренние ресурсы пары.

ALUA и SLUA: не путайте термины

ALUA — стандартная модель асимметричного доступа к логической единице в SCSI. Её ключевая идея проста: хост должен знать не только о доступности путя, но и о его качестве для конкретного LUN. Поэтому multipath читает статусы групп портов и строит политику маршрутизации вокруг Active/Optimized.

В документации NIMBUS для СХД «Гром» и «Молния» указана Active/Active-архитектура с режимами ALUA/SLUA. Практический вывод для инженера не меняется: не стоит считать все видимые пути автоматически равноправными. Перед вводом СХД в эксплуатацию нужно проверить, как host multipath распознал состояние путей к каждому LUN и какие маршруты использует при реальной нагрузке.

  • ALUA помогает хосту отличить оптимизированный маршрут от неоптимизированного.
  • Наличие двух контроллеров не отменяет настройку multipath на стороне хоста.
  • Round Robin нельзя включать вслепую: он должен обходить оптимизированные пути к конкретному LUN.
  • Статусы путей необходимо проверять после создания LUN, изменения zoning и обновления host multipath.

Как переживается отказ контроллера

Отказоустойчивость контроллерной пары — не один механизм, а цепочка. Хост должен иметь несколько физических путей, SAN — независимые фабрики или сегменты, контроллеры — согласованное состояние кэша, а multipath — корректные тайм-ауты и политику повторных попыток. Если хотя бы один слой собран с ошибкой, два контроллера не обеспечат ожидаемой непрерывности.

В СХД NIMBUS «Гром» и «Молния» заявлены два контроллера, зеркальный кэш, защита кэша и горячая замена. Эти свойства важны при потере одного узла: данные, принятые в кэш до сбоя, не должны зависеть от единственной контроллерной памяти, а обслуживание I/O должно продолжаться через оставшуюся сторону. Поддержка ALUA/SLUA относится к front-end-маршрутизации и помогает хосту выбирать доступные пути.

Параметр СХД «Гром» СХД «Молния»
Контроллерная конфигурация 2 контроллера 2 контроллера
Режим работы системы Active/Active Active/Active
Режим отказоустойчивости ALUA/SLUA ALUA/SLUA
Кэш Зеркалируемый кэш и защита кэша Зеркалируемый кэш и защита кэша
Горячая замена Поддерживается Поддерживается
Front-end-интерфейсы 10/25 Гбит/с Ethernet, 16/32 Гбит/с Fibre Channel 10/25/100 Гбит/с Ethernet, 16/32 Гбит/с Fibre Channel — в зависимости от модели

Практический сценарий для ЦОД

Представим кластер виртуализации с двумя fabric Fibre Channel и несколькими datastore. Каждый сервер подключён к обоим контроллерам через независимые коммутаторы. Для каждого LUN администратор проверяет, что multipath видит несколько путей, выделяет Active/Optimized и не направляет постоянный поток на Active/Non-Optimized.

После этого проводится контролируемый тест: на рабочем LUN создаётся предсказуемая нагрузка, затем один front-end-путь отключается, а потом моделируется недоступность одного контроллера. Контролируют не только доступность ВМ, но и задержку I/O, логи multipath, статусы путей и отсутствие ошибок файловой системы. Такой порядок позволяет проверить отказоустойчивость до аварии, а не во время неё.

Для систем с SAS-нагрузкой, смешанными сценариями и расширением ёмкости подойдёт СХД NIMBUS «Гром» для ЦОД. Для критичных БД и низких задержек применяется All-Flash NVMe-платформа «Молния». В обоих случаях финальную политику multipath нужно сверять с операционной системой, HBA, версией драйвера и фактическими статусами путей.

Чек-лист перед запуском

  • Подключите каждый host к обоим контроллерам по независимым путям.
  • Разделите SAN-фабрики или Ethernet-сегменты так, чтобы отказ одного коммутатора не отрезал сервер от СХД.
  • Проверьте обнаружение всех LUN и всех путей на каждом хосте.
  • Убедитесь, что multipath различает оптимизированные и неоптимизированные маршруты.
  • Настройте балансировку с учётом ALUA, а не только с учётом количества путей.
  • Протестируйте потерю пути, перезагрузку контроллера и возврат контроллера в пару.
  • Зафиксируйте базовые значения latency, IOPS и ошибок до перевода системы в промышленную эксплуатацию.

FAQ

Active/Active всегда быстрее Active/Passive?

Не всегда. Преимущество Active/Active проявляется, когда host multipath корректно использует доступные оптимизированные пути и нагрузка распределена по LUN и контроллерам. При отправке I/O через неоптимизированные маршруты ALUA можно получить дополнительную внутреннюю пересылку и рост задержки.

Зачем нужен ALUA, если оба контроллера активны?

ALUA передаёт host multipath информацию о предпочтительности путей к конкретному LUN. Это позволяет направлять штатный I/O по Active/Optimized-маршрутам, а Active/Non-Optimized оставлять для переходных ситуаций и отказов.

Можно ли балансировать трафик по всем путям Round Robin?

Только после проверки политики multipath для конкретной ОС и статусов ALUA. Корректная схема балансирует запросы по оптимизированным путям, а не безусловно по каждому видимому target path.

Что защищает данные при отказе контроллера?

Нужна совокупность механизмов: два контроллера, зеркальный кэш, защита кэша, несколько host-путей и multipath. В СХД NIMBUS «Гром» и «Молния» заявлены зеркальный кэш, защита кэша и горячая замена компонентов.

ALUA и метрокластер — одно и то же?

Нет. ALUA относится к выбору путей между host и контроллерами СХД. Метрокластер — отдельная функция ПО «Юпитер» для распределённой отказоустойчивости между площадками; в документации NIMBUS он указан вместе с удалённой репликацией, но не является её синонимом.


Гром

система хранения данных

Active/Active или Active/Passive: как контроллеры СХД ведут себя под нагрузкой и при отказе

В реестре

Active/Active или Active/Passive: как контроллеры СХД ведут себя под нагрузкой и при отказе

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

Заказать

Молния

система хранения данных

Active/Active или Active/Passive: как контроллеры СХД ведут себя под нагрузкой и при отказе

В реестре

Active/Active или Active/Passive: как контроллеры СХД ведут себя под нагрузкой и при отказе

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

Заказать