Storage Array (массив хранения данных) - это выделенная система, которая объединяет множество физических накопителей в единый пул и предоставляет его серверам по сети. В отличие от сервера с локальными дисками, массив выносит функции хранения на отдельный уровень инфраструктуры. Такой подход дает три ключевых результата: централизованное управление емкостью, высокая доступность данных при отказе компонентов и предсказуемая производительность для критичных приложений.
Современный массив состоит из контроллеров, дисковых полок и двух типов интерфейсов - back-end для связи с накопителями и front-end для подключения серверов. Контроллеры выполняют всю вычислительную работу: обсчитывают RAID, управляют кэшем, создают снапшоты и реплицируют данные. Дисковые полки (JBOD) содержат сами накопители - SAS, NL-SAS или NVMe SSD. Back-end и front-end каналы резервируются, чтобы единичный отказ кабеля или порта не остановил доступ к данным.
По способу предоставления доступа массивы делятся на SAN (блочный доступ по FC, iSCSI, NVMe-oF) и NAS (файловый доступ по NFS, SMB). Выбор между ними определяет, как именно серверы будут потреблять ресурсы хранилища - как «сырые» блочные устройства или как готовые файловые шары. Дальше разберем архитектуру детально, чтобы вы могли осознанно проектировать или эксплуатировать enterprise-хранилище в 2026 году.
Что такое Storage Array и зачем он нужен
Storage Array решает фундаментальную проблему: данные должны оставаться доступными даже при выходе из строя диска, контроллера или кабеля. Одиночный сервер с внутренними дисками такой гарантии не дает - отказ бэкплейна или RAID-контроллера на материнской плате оставляет данные недоступными до физического ремонта. Массив выносит хранение на специализированную платформу с дублированием всех критичных компонентов.
Ключевые преимущества массива перед локальным хранением:
- Централизованное управление. Вся емкость видна в единой консоли. Вы создаете LUN или файловую шару, назначаете ее серверу - и управляете ей без физического доступа к оборудованию.
- Высокая доступность. Два контроллера, два пути к каждому диску, резервные блоки питания и вентиляторы. Массив продолжает работу при отказе любого элемента.
- Масштабируемость. Емкость наращивается добавлением дисковых полок без остановки сервиса. Производительность масштабируется заменой контроллеров на более мощные в рамках одной линейки.
- Предсказуемая производительность. Выделенный кэш контроллера (до нескольких терабайт на старших моделях) сглаживает пиковые нагрузки и обеспечивает стабильные IOPS и задержки.
По типу доступа различают SAN-массивы (блочный доступ) и NAS-массивы (файловый доступ). Многие современные системы - унифицированные (Unified Storage), они одновременно обслуживают блочные LUN по FC/iSCSI и файловые шары по NFS/SMB. Это удобно для консолидации разнородных нагрузок на одной платформе.
Архитектура Storage Array: из чего состоит массив хранения
Физически массив - это шасси с контроллерами и подключаемые к нему дисковые полки. Контроллеры принимают запросы от серверов, обрабатывают их и направляют к нужным накопителям. Полки содержат диски и соединены с контроллерами резервированными back-end каналами. Разберем каждый компонент.
Контроллеры: мозг массива
Контроллер - это специализированный сервер, заточенный под операции ввода-вывода. В его состав входят:
- Процессор - обычно x86-совместимый (Intel Xeon или AMD EPYC) либо специализированный ASIC. Он выполняет расчет контрольных сумм RAID, обработку дедупликации и компрессии, управление снапшотами.
- Оперативная память (кэш) - объем от 16 ГБ в entry-моделях до 2 ТБ и более в high-end системах. Кэш критичен для производительности: он поглощает пиковые записи и хранит часто читаемые блоки.
- Порты front-end - FC 16/32/64 Гбит/с, Ethernet 10/25/100 Гбит/с для iSCSI или NVMe-oF. Количество портов определяет, сколько серверов можно подключить напрямую без коммутаторов.
- Порты back-end - SAS 12/24 Гбит/с или NVMe для подключения дисковых полок.
По архитектуре контроллеры бывают двух типов:
- Активный/пассивный. Один контроллер обслуживает все запросы, второй простаивает в режиме ожидания. При отказе активного пассивный подхватывает нагрузку. Плюс - простота и предсказуемость. Минус - половина вычислительных ресурсов не используется в нормальном режиме.
- Активный/активный. Оба контроллера одновременно обрабатывают запросы, деля нагрузку между собой. Каждый контроллер «владеет» своим набором LUN, но в случае отказа партнера подхватывает и его нагрузку. Такая архитектура обеспечивает вдвое большую производительность и быстрое восстановление - обычно за несколько секунд.
Для оптимизации путей доступа применяется ALUA (Asymmetric Logical Unit Access). Протокол сообщает хосту, какой контроллер является оптимальным для конкретного LUN. Запросы, пришедшие на неоптимальный контроллер, все равно обслуживаются, но с чуть большей задержкой из-за передачи по внутренней шине. Это позволяет балансировать нагрузку без жесткой привязки LUN к контроллеру.
Дисковые полки и back-end интерфейсы
Дисковая полка (JBOD - Just a Bunch Of Disks) содержит от 12 до 106 накопителей в зависимости от форм-фактора (2U, 4U или 5U). Полка не имеет собственного RAID-контроллера - это пассивное устройство с SAS-экспандерами, которое просто предоставляет диски в распоряжение контроллеров массива.
Подключение полок к контроллерам выполняется по резервированной схеме. Каждая полка имеет два SAS-экспандера и два входящих порта. От каждого контроллера идет отдельный кабель к своей цепочке полок. Если один кабель или экспандер выходит из строя, контроллер продолжает видеть все диски через второй путь. Это и есть back-end мультипасинг.
В высокопроизводительных системах вместо SAS применяется NVMe over Fabrics (NVMe-oF) для back-end. Это снижает задержки доступа к накопителям до десятков микросекунд и позволяет полностью реализовать потенциал NVMe SSD с их параллелизмом очередей. Такие массивы обычно используют топологию switched fabric - каждый диск подключается к обоим контроллерам через PCIe-коммутатор.
Выбор накопителей внутри полки определяет профиль производительности всего массива:
- NL-SAS (Nearline SAS) - 7.2K RPM, высокая емкость (до 22 ТБ на диск), низкая стоимость за терабайт. Для архивов, резервных копий, редко запрашиваемых данных.
- SAS 10K/15K RPM - средняя производительность, уходят с рынка, вытесняются SSD.
- SSD (SAS или NVMe) - высокая производительность чтения/записи, низкие задержки. Для баз данных, виртуализации, VDI.
Современные массивы автоматически распределяют данные между типами накопителей с помощью технологии tiering. Горячие блоки мигрируют на SSD, холодные - на NL-SAS. Это дает баланс между стоимостью и производительностью без ручного вмешательства администратора.
Front-end интерфейсы: как серверы подключаются к хранилищу
Front-end интерфейсы определяют, как серверы видят и потребляют ресурсы массива. Выбор протокола влияет на задержки, пропускную способность и сложность инфраструктуры.
Блочный доступ (SAN):
- Fibre Channel (FC). Специализированный протокол для хранения. Версии 32 Гбит/с и 64 Гбит/с обеспечивают предсказуемые задержки и полное отсутствие потерь кадров благодаря кредитному механизму управления потоком. Требует отдельных FC-коммутаторов и HBA-адаптеров. Стандарт для критичных enterprise-нагрузок.
- iSCSI. Инкапсулирует SCSI-команды в TCP/IP. Работает поверх стандартных Ethernet-коммутаторов, не требует специализированного оборудования. Подходит для средних нагрузок и сред, где бюджет ограничен. Производительность зависит от качества реализации TCP/IP стека и может варьироваться под нагрузкой.
- NVMe-oF (NVMe over Fabrics). Самый быстрый протокол блочного доступа на 2026 год. Работает поверх RDMA (RoCE v2 или InfiniBand) либо поверх FC (FC-NVMe). Обеспечивает задержки менее 100 микросекунд - в 5-10 раз ниже, чем у классического FC или iSCSI. Требует совместимых адаптеров и коммутаторов с поддержкой RDMA.
Файловый доступ (NAS):
- NFS (Network File System). Основной протокол для Linux/Unix-сред. Версия NFSv4 поддерживает Kerberos-аутентификацию, делегирование и параллельный доступ. Прост в настройке, работает поверх стандартного Ethernet.
- SMB/CIFS. Протокол для Windows-сред. Поддерживает ACL, интеграцию с Active Directory, блокировки файлов. Версия SMB 3.x добавляет многоканальность (multichannel) и прозрачную отказоустойчивость.
Для обеспечения отказоустойчивости на front-end применяется мультипасинг (MPIO). Сервер имеет минимум два физических пути к массиву - через разные HBA-порты и разные коммутаторы. При отказе одного пути трафик автоматически переключается на оставшийся. Политики переключения настраиваются на стороне хоста: failover (один путь активен, второй в резерве) или round-robin (трафик распределяется по всем доступным путям, агрегируя пропускную способность).
RAID в Storage Array: уровни, производительность и отказоустойчивость
RAID (Redundant Array of Independent Disks) - технология объединения физических накопителей в логический массив. Цели: повысить отказоустойчивость, производительность или и то и другое одновременно. Стандарт поддерживается организацией SNIA (Storage Networking Industry Association). В основе всех уровней лежат три принципа: striping (чередование), mirroring (зеркалирование) и parity (четность).
Выбор уровня RAID - это компромисс между тремя параметрами: полезной емкостью, производительностью и устойчивостью к отказам дисков. Рассмотрим основные уровни с практическими рекомендациями. Если вам нужны готовые команды для настройки RAID через mdadm и ZFS, обратитесь к нашему полному руководству по RAID-массивам.
RAID 0 и RAID 1: скорость против надежности
RAID 0 (striping) распределяет данные блоками по всем дискам массива. Каждый диск хранит уникальную часть информации, без дублирования. Результат: максимальная скорость чтения и записи, 100% полезной емкости, нулевая защита. Отказ любого диска уничтожает все данные без возможности восстановления.
Применение: временные файлы, кэш-серверы, рендер-фермы с отдельным резервным копированием. Не используйте RAID 0 для любых данных, потеря которых критична.
RAID 1 (mirroring) дублирует каждый бит на двух или более дисках. Полезная емкость равна объему одного диска (при двух дисках в зеркале). Отказоустойчивость: массив работает при выходе из строя одного диска, при двухдисковом зеркале. Производительность чтения высокая (можно читать с обоих дисков параллельно), записи - на уровне одного диска (нужно записать на все копии).
Применение: системные диски серверов, логи критичных приложений, небольшие базы данных. RAID 1 - простой и надежный выбор, когда емкость не является приоритетом.
RAID 5 и RAID 6: баланс с помощью четности
RAID 5 использует striping с распределенной четностью. Для каждого страйпа (набора блоков, расположенных на разных дисках) вычисляется контрольная сумма (XOR), которая записывается на один из дисков. При отказе диска недостающие данные восстанавливаются из оставшихся блоков и четности.
Параметры: минимум 3 диска, полезная емкость = (N-1) × размер диска, защита от одного отказа. Производительность чтения высокая, записи - ниже из-за необходимости вычислять и записывать четность (read-modify-write). Штраф записи особенно заметен при случайной нагрузке.
RAID 6 аналогичен RAID 5, но использует две независимые контрольные суммы. Это дает защиту от одновременного отказа двух дисков - критичное преимущество при использовании дисков большой емкости, где время восстановления (rebuild) может занимать часы или дни, и риск второго отказа во время rebuild высок.
Параметры: минимум 4 диска, полезная емкость = (N-2) × размер диска, защита от двух отказов. Штраф записи выше, чем у RAID 5, из-за вычисления двух контрольных сумм.
Рекомендация: для HDD-массивов из 8 и более дисков всегда выбирайте RAID 6. Вероятность второго отказа во время rebuild на дисках 16-22 ТБ достаточно высока, чтобы не рисковать. Для SSD-массивов, где rebuild проходит в разы быстрее, RAID 5 остается приемлемым вариантом для некритичных данных.
RAID 10: золотой стандарт для высоконагруженных систем
RAID 10 (или RAID 1+0) комбинирует зеркалирование и страйпинг. Сначала диски объединяются в зеркальные пары (RAID 1), затем эти пары объединяются в страйп (RAID 0). Результат: высокая производительность чтения и записи, отличная отказоустойчивость (массив выдерживает отказ любого одного диска и, с некоторой вероятностью, нескольких - если они находятся в разных зеркальных парах).
Цена: 50% полезной емкости. При 8 дисках по 4 ТБ вы получаете 16 ТБ полезного пространства.
RAID 10 - стандартный выбор для:
- СУБД (PostgreSQL, MySQL, Oracle) с интенсивной случайной записью
- Виртуализации (VMware ESXi, Hyper-V) с большим количеством VM
- Высоконагруженных почтовых серверов (Exchange)
В отличие от RAID 5/6, RAID 10 не имеет штрафа записи - контроллер просто записывает данные на оба диска зеркала. Это обеспечивает стабильную производительность под смешанной нагрузкой.
Кэширование в Storage Array: как ускорить операции чтения и записи
Кэш контроллера - самый быстрый уровень памяти в массиве. Он сглаживает разницу между скоростью обработки запросов процессором и скоростью физических накопителей. Без кэша даже массив из NVMe SSD будет работать с задержками, определяемыми медиа-уровнем флеш-памяти. С правильно настроенным кэшем задержки снижаются до десятков микросекунд.
Кэш чтения: предвыборка и часто запрашиваемые данные
Кэш чтения работает по двум механизмам:
- Хранение «горячих» данных. Часто запрашиваемые блоки остаются в оперативной памяти контроллера. При повторном запросе данные отдаются из кэша без обращения к дискам. Алгоритм вытеснения (обычно LRU - Least Recently Used) удаляет редко используемые блоки.
- Упреждающее чтение (read-ahead, prefetch). Когда контроллер обнаруживает последовательный паттерн чтения, он загружает в кэш следующие блоки, которые сервер еще не запросил. Это радикально ускоряет последовательные операции - резервное копирование, сканирование таблиц, потоковое видео.
Эффективность кэша чтения измеряется hit ratio - процентом запросов, обслуженных из кэша без обращения к дискам. Значение выше 80% считается хорошим для типовой смешанной нагрузки.
Кэш записи: ускорение и риски
Кэш записи маскирует медленную запись на диски. Контроллер принимает данные от сервера, помещает их в кэш и немедленно подтверждает завершение операции. Фактическая запись на диски происходит позже, когда накопится достаточный объем данных для эффективной операции (de-staging).
Два режима работы:
- Write-back (отложенная запись). Максимальная производительность. Подтверждение отправляется хосту сразу после попадания данных в кэш. Риск: при сбое питания данные в кэше, еще не сброшенные на диски, теряются безвозвратно.
- Write-through (сквозная запись). Безопасный режим. Подтверждение отправляется только после физической записи на диски. Производительность записи равна производительности дисковой подсистемы. Используется для данных, где целостность критичнее скорости.
Защита кэша записи от потери при сбое питания реализуется тремя способами:
- BBU (Battery Backup Unit). Аккумуляторная батарея поддерживает питание кэша при пропадании внешнего питания. Данные сохраняются в DRAM до восстановления питания, затем сбрасываются на диски.
- Суперконденсаторы + flash. При сбое питания энергия из конденсатора используется для копирования содержимого DRAM-кэша во встроенную flash-память. После восстановления питания данные переносятся обратно в DRAM и записываются на диски. Надежнее BBU, так как flash-память хранит данные неограниченно долго без питания.
- NVRAM. Энергонезависимая оперативная память, которая не теряет данные при отключении питания. Самый дорогой и самый надежный вариант.
Практический совет: всегда включайте защиту кэша записи, если массив используется для критичных данных. Настройку политик кэширования для конкретных нагрузок мы детально разобрали в руководстве по оптимизации производительности HP-массивов.
Высокая доступность и отказоустойчивость Storage Array
Отказоустойчивость массива обеспечивается на всех уровнях: диски (RAID + hot spare), контроллеры (дублирование), пути ввода-вывода (мультипасинг), питание и охлаждение (резервные модули). Каждый уровень проектируется так, чтобы единичный отказ не вызвал остановку сервиса.
Активный/активный vs активный/пассивный контроллер
Выбор архитектуры контроллеров определяет поведение массива при отказе:
- Активный/пассивный. В нормальном режиме все LUN обслуживаются одним контроллером. Второй находится в standby. При отказе активного контроллера пассивный активируется и подхватывает все LUN. Время переключения: 15-60 секунд. Недостаток: ресурсы пассивного контроллера не используются для обработки запросов.
- Активный/активный. Оба контроллера обслуживают запросы одновременно. LUN распределены между контроллерами (каждый «владеет» своим набором), но любой контроллер может обслужить запрос к любому LUN. При отказе одного контроллера второй берет на себя всю нагрузку. Время переключения: 3-10 секунд. Преимущество: удвоенная производительность в нормальном режиме.
Протокол ALUA (Asymmetric Logical Unit Access) оптимизирует маршрутизацию запросов в активном/активном режиме. Каждый LUN имеет «оптимальный» путь (к владеющему контроллеру) и «неоптимальный» (к партнеру). Хост знает об этом и направляет запросы по оптимальному пути, снижая нагрузку на внутреннюю шину массива.
Мультипасинг: как сервер видит несколько путей к данным
Мультипасинг (MPIO - Multipath I/O) создает избыточные пути от сервера к массиву. Если один путь отказывает (кабель, порт HBA, порт коммутатора), трафик автоматически переключается на оставшиеся пути без прерывания операций ввода-вывода.
Компоненты мультипасинга:
- Физические пути. Минимум два HBA-порта на сервере, два коммутатора (для FC или выделенного iSCSI), два front-end порта на массиве. Каждый элемент резервирован.
- MPIO-драйвер. Программный компонент на стороне хоста, который агрегирует физические пути в одно логическое устройство. В Linux это Device Mapper Multipath (dm-multipath), в Windows - Microsoft MPIO.
- Политика переключения. Определяет, как трафик распределяется по путям. Failover - активен один путь, остальные в резерве. Round-robin - запросы равномерно распределяются по всем активным путям, агрегируя пропускную способность.
Настройка мультипасинга требует согласованности: массив, коммутаторы и хост должны быть сконфигурированы единообразно. Типичная ошибка - разные политики на разных уровнях, приводящие к неоптимальной маршрутизации или ложным срабатываниям failover. Детальную инструкцию по настройке отказоустойчивого хранилища с дублированием контроллеров и MPIO мы приводим в отдельном руководстве.
SAN vs NAS: какой тип Storage Array выбрать
Выбор между SAN и NAS сводится к тому, как приложения потребляют данные - блоками или файлами.
SAN (Storage Area Network) предоставляет блочный доступ. Сервер видит LUN как «сырой» диск, форматирует его в свою файловую систему (ext4, XFS, NTFS) и управляет файловой структурой самостоятельно. Это дает полный контроль над файловой системой и низкие накладные расходы. SAN - стандарт для:
- Виртуализации (VMware vSphere, Hyper-V) - кластерные файловые системы VMFS/CSV работают поверх блочных устройств
- СУБД - прямой доступ к блокам без посредника в виде NAS-протокола
- Кластеров с shared storage - несколько серверов могут одновременно обращаться к одному LUN (при использовании кластерной файловой системы)
NAS (Network Attached Storage) предоставляет файловый доступ. Массив сам управляет файловой системой и экспортирует готовые шары по NFS или SMB. Серверы подключаются к шарам и работают с файлами, не заботясь о низкоуровневой структуре хранения. NAS удобен для:
- Файловых серверов и общих папок - несколько клиентов одновременно читают и пишут файлы
- Хранения резервных копий - запись потоковых данных по NFS
- Медиа-архивов и репозиториев - простой доступ к большому объему файлов
Тенденция 2026 года - унифицированные массивы (Unified Storage), которые одновременно поддерживают блочный и файловый доступ. Один массив может обслуживать LUN для кластера VMware и NFS-шары для отдела разработки. Это снижает количество единиц оборудования и упрощает администрирование.
Современные тенденции в Storage Array (2026)
Рынок корпоративных хранилищ развивается в четырех направлениях:
NVMe-oF (NVMe over Fabrics). Протокол, который выводит производительность на уровень, недостижимый для классических FC и iSCSI. NVMe-oF использует прямой путь от NVMe-накопителей к хосту через RDMA-сети (RoCE v2 или InfiniBand), минуя преобразование SCSI-команд. Задержки снижаются до 50-80 микросекунд - это уровень локального NVMe SSD. В 2026 году NVMe-oF стал стандартом для новых high-end инсталляций, постепенно вытесняя FC.
Storage Class Memory (SCM). Технология памяти с характеристиками на стыке DRAM и NAND - задержки близки к оперативной памяти, но данные сохраняются при отключении питания. Intel Optane (до снятия с производства) и аналоги используются как сверхбыстрый кэш-уровень перед SSD. Массив с SCM-кэшем выдает в 3-5 раз больше IOPS, чем массив только на NAND SSD, при задержках ниже 20 микросекунд.
AI-управление. Встроенные алгоритмы машинного обучения анализируют паттерны нагрузки и автоматически оптимизируют размещение данных. Предиктивная аналитика предсказывает отказы дисков за 2-3 недели до фактического сбоя, позволяя заменить накопитель без риска для данных. Автоматический tiering без предварительной настройки политик - массив сам определяет, какие блоки перенести на быстрые носители.
Облачная интеграция. Гибридные массивы автоматически вытесняют редко используемые данные в облачное хранилище (cloud tiering). Локально остается «горячий» кэш, полная копия данных находится в облаке. Это снижает затраты на локальное хранение и упрощает disaster recovery - данные уже находятся в удаленном дата-центре. Интеграция с AWS S3, Azure Blob и российскими облачными провайдерами становится стандартной функцией массивов среднего и верхнего ценового сегмента.
Если вы проектируете инфраструктуру хранения с нуля или планируете модернизацию, рекомендуем также изучить сравнение SDS и аппаратных массивов - это поможет выбрать между классическим подходом и программно-определяемым хранением.