В условиях современного бизнеса, где данные являются главным активом, обеспечение высокой доступности (High Availability) и предсказуемой производительности систем хранения данных (СХД) — это критически важная бизнес-задача. Для CIO, системных архитекторов и ИТ-директоров выбор архитектуры СХД напрямую влияет на капитальные затраты (CAPEX), операционные риски и выполнение SLA.
Ключевым аппаратным элементом, определяющим эти характеристики, является модель работы контроллеров хранения. Три основные архитектуры контроллеров предлагают принципиально разные подходы к балансировке I/O, обработке сбоев и утилизации вычислительных мощностей.
| Критерий | Active-Passive (A/P) | ALUA (Asymmetric A/A) | SAA (Symmetric A/A) |
|---|---|---|---|
| Утилизация мощностей | 50% (Один работает, второй простаивает) | 100% (Оба активны, но привязаны к своим LUN) |
100% (Полное равноправие для всех томов) |
| Доступность путей | Активен только 1 путь к LUN. |
Разделение на Optimized и Non-Optimized. | Все пути активны и Optimized. |
| Балансировка I/O | Отсутствует. | Гранулярность на уровне томов (LUN). | Гранулярность на уровне блоков ввода-вывода. |
| Влияние при аппаратном сбое | Заметная задержка (переключение путей и кэша). | Кратковременный всплеск задержки (переход на неоптимальный путь). | Минимальное или незаметное для бизнес-приложений. |
| Уровень TCO и Сложности | Низкий (Экономичная архитектура) | Средний (Баланс цены и производительности) | Высокий (Системы класса Tier-0/1) |
Исторически самая распространенная и простая модель обеспечения высокой доступности. В нормальном режиме всю полезную нагрузку обрабатывает Контроллер А, в то время как Контроллер Б находится в режиме ожидания (Standby).
При сбое Контроллера А, Контроллер Б выполняет процедуру перехвата управления (trespass). Задержка обслуживания зависит от нескольких факторов. Математически время остановки ввода-вывода (freeze time) выражается формулой:
Где $t_{\text{detect}}$ — время обнаружения сбоя, $t_{\text{cache\_flush}}$ — дестейджинг зеркалированного кэша, а $t_{\text{path\_switch}}$ — время, требуемое MPIO серверов для перестройки маршрутов. В этот период приложения могут поставить транзакции на паузу.
ALUA — это стандарт протокола SCSI (SAM-5), сочетающий в себе черты A/A и A/P. Оба контроллера активны одновременно, но для настройки производительности сохраняется концепция «владения» логическим томом. Для LUN_1 оптимальным будет Контроллер А, а для LUN_2 — Контроллер Б.
Внутренняя шина синхронизации
Если сервер отправляет I/O запрос к LUN_1 по пути через Контроллер Б (неоптимальный путь), Контроллер Б пробросит пакет через внутреннюю шину на Контроллер А, и только тот запишет данные. Задержка (latency) описывается так:
MPIO на стороне хоста использует метки TPGS (Target Port Group Support), чтобы всегда приоритетно выбирать оптимальные маршруты и минимизировать $\Delta T_{\text{interconnect\_overhead}}$.
Вершина технологического развития, используемая в Hi-End системах. Концепция привязки тома (LUN) к контроллеру отсутствует полностью. Все пути к СХД всегда являются оптимальными. Любой контроллер имеет прямой и независимый доступ к блокам данных.
Реализация истинного SAA требует сложных алгоритмов. Поскольку два контроллера могут параллельно изменять один и тот же блок данных, необходим менеджер распределенных блокировок (Distributed Lock Manager). Итоговая производительность системы описывается как:
Где $O_{\text{lock\_overhead}}$ — накладные расходы на арбитраж и синхронизацию блокировок. В СХД премиум-сегмента используются специализированные ASIC-чипы для сведения этого параметра к минимуму.
Выбор профиля СХД напрямую зависит от ценности обрабатываемых данных и профиля нагрузки (Workload Profile):