Современные сети хранения данных (SAN): архитектура, производительность, импортозамещение

Изображение: Magnific.com
Сетевые инженеры в своей деятельности сталкиваются с разнообразием сетевых решений. Если раньше их основной задачей было построение и обслуживание локальных (LAN), глобальных (WAN), городских (MAN) и беспроводных (WLAN) сетей, то сегодня к этому перечню добавились специализированные сети хранения данных (SAN, Storage Area Network). SAN — это особая категория инфраструктурных решений, которые ранее находились в зоне ответственности ИТ-специалистов, работающих с вычислительными комплексами. Такие сети обеспечивают высокоскоростной и надёжный доступ к информации в системах хранения данных (СХД) и соответствуют растущим потребностям бизнеса в эффективном управлении данными, их защите и обеспечении высокой доступности. Разбираемся в специфике SAN с помощью экспертов компании «Инфосистемы Джет».

История и предназначение сетей SAN. Отличие SAN от LAN

Если локальные сети (Local Area Network, LAN) соединяют между собой множество компьютеров, то SAN — соединяют компьютеры с системами хранения данных: например, дисковыми массивами или ленточными библиотеками.

В сетях LAN действует клиент-серверная модель, и роли её участников — клиентов и серверов — могут меняться в зависимости от текущих задач. В сетях SAN же роли строго определены: это инициаторы и таргеты. Инициатор — устройство (как правило, сервер), которое начинает сессию обмена данными, посылая целевому устройству — таргету (как правило, СХД) команды по протоколам таких стандартов, как NVMe или SCSI (чтобы показать их место в сетевых моделях, назовём их «протоколы прикладного уровня»). Это могут быть, например, команды на запись данных, на чтение данных, служебные или различные другие. Устройство хранения данных отвечает на эти команды, и таким образом осуществляется взаимодействие между инициаторами и таргетами.

 

Архитектурные особенности сетей LAN и SAN

Архитектурные особенности сетей LAN и SAN
Источник: «Инфосистемы Джет»

 

Говоря о предпосылках к развитию СХД и SAN-сетей, рассмотрим развитие стандарта IBM PC. Первые персональные компьютеры IBM PC (1981 год) были вообще без жёстких дисков, хранение информации происходило только на дискетах. Во второй версии (1983 год) уже появились первые жёсткие диски, однако интерфейс ПК позволял подключить только один диск на один порт: поэтому функцию хранения данных внутри компьютера выполняли только один-два HDD. Затем постепенно начали появляться сетевые протоколы для обмена файлами между несколькими компьютерами в сети LAN: Ethernet, IPv4, SMB, NFS, которые позволили использовать отдельные компьютеры в сети в качестве устройств централизованного хранения данных. В 1986 году появился стандарт SCSI, который дал возможность подключать на один шлейф множество жёстких дисков внутри компьютера, но их количество было ограничено вместимостью корпуса компьютера.

1989 год — время появления первых серверов (специализированных двухпроцессорных x86) как отдельной категории оборудования. В 1991 году вышли первые системы хранения данных, которые позволили вынести жёсткие диски наружу из серверов в отдельное устройство. Однако их можно было подключить только к одному-трём серверам по отдельным кабелям, так как не было сетей, которые бы связывали множество серверов с множеством СХД.

Наконец, в 1992 году появился первый протокол сетей хранения данных: Fibre Channel (FC). Это был большой прорыв в данной сфере: теперь стало возможно по оптическим линиям связи выносить жёсткие диски наружу из серверов в СХД и объединять их в полноценную коммутируемую сеть.

Архитектура СХД

Система хранения данных — это массив большого количества жёстких дисков, объединённых в единый пул с использованием технологии избыточности RAID (Redundant Array of Independent Disks): например, RAID 5, RAID 6 или TP (Triple Parity, тройной контроль чётности). Каждый диск имеет два порта, которыми он подключается к двум контроллерам СХД. Контроллеры СХД — это, по сути, отдельные компьютеры, которые, во-первых, обрабатывают все операции ввода-вывода с хостов, а во-вторых, управляют пулом жёстких дисков, в том числе выполняя различные полезные функции с логическими томами: репликацию, клонирование, снапшоты, дедупликацию, компрессию и прочее. Два контроллера необходимы для отказоустойчивости — если вышел из строя или перезагрузился один из них, то СХД всё равно продолжает свою работу.

 

Принцип работы СХД

Принцип работы СХД
Источник: «Инфосистемы Джет»

 

Через SAN-сеть контроллеры, играющие роль таргетов, подключаются к хостам — серверам, которые выступают в роли инициаторов. Так сервер получает доступ к дисковому пространству, которое физически находится в СХД.

Каждая SAN-сеть, построенная с использованием протокола FC, состоит не менее чем из двух фабрик, то есть отдельных, независимых друг от друга сетевых инфраструктур. Это необходимо прежде всего для отказоустойчивости: если какое-то устройство (например, коммутатор) одной фабрики начинает сбоить, выходит из строя или на нём проводятся регламентные работы, эта фабрика начинает либо работать очень медленно, либо вообще перестаёт работать. На помощь приходит вторая фабрика, которая продолжает работать стабильно и поддерживает нормальный ввод-вывод между хостом и системой хранения данных.

Для подключения к этим фабрикам каждый хост имеет два HBA-адаптера (Host Bus Adapter) — специализированные FC-сетевые карты. Помимо этого на хосте работает драйвер Multipathing — софт, позволяющий серверу использовать несколько независимых путей для доступа к одному логическому тому (LUN, Logical Unit Number) в СХД. Каждый LUN — это один из логических дисков, на которые разбивается единое дисковое пространство. Одному хосту может быть отдан один, два и более LUN, благодаря чему хранение данных становится более удобным: так единое пространство хранения по мере надобности распределяется по множеству хостов, в противоположность подходу, когда в каждый хост отдельно добавляются жёсткие диски, что приводит к нерациональному расходованию дискового пространства. При этом каждый хост видит LUN как локальный жёсткий диск — как если бы он стоял внутри него, — хотя на самом деле LUN подключен снаружи через SAN-сеть.

Механизмы предотвращения потери данных в SAN на основе FC

SAN-сеть — критически важная часть ИТ-инфраструктуры, где даже кратковременные сбои могут привести к серьёзным последствиям. Поэтому механизмы предотвращения потерь данных в ней имеют первостепенное значение.

 

Ключевые особенности Fibre Channel в SAN

Ключевые особенности Fibre Channel в SAN
Источник: «Инфосистемы Джет»

 

В Fibre Channel есть встроенный механизм предотвращения потерь.

«Конечно, единичные потери происходят в SAN практически всегда: например, если конечное устройство перезагружается или начинает сбоить его драйвер, они некритичны. Но если десятки, сотни и тысячи ошибок передачи фреймов регистрируются на коммутаторах сети за короткий промежуток времени, значит, есть серьёзная проблема: либо требуется заменить оптический линк, SFP-модули, либо сами коммутаторы нужно менять, либо достаточно обновить прошивку на коммутаторах или на конечном устройстве», — рассказывает Олег Кандальцев, старший инженер‑проектировщик систем хранения данных компании «Инфосистемы Джет».

Принцип действия этого механизма заключается в том, что, помимо фреймов с полезными данными, по сети передаются ещё и некие примитивы — служебный набор байт, так называемые IDLE. Даже когда передающее устройство не посылает никакие полезные данные и фреймы отсутствуют, примитивы передаются постоянно, они определяют параметры среды передачи и её состояние. Как только получающее устройство видит, что какой-то примитив не пришёл, данная ошибка фиксируется в счётчике ошибок и, если счётчик начинает быстро расти, администратор уведомляется о том, что в сети существует проблема, которая может привести к потере фреймов.

Другое средство — механизм буферных кредитов — предотвращает переполнение сети (и, соответственно, тоже потенциальную потерю фреймов). Передающее устройство передаёт строго ограниченное количество фреймов. Когда фрейм приходит в получающий буфер, получающее устройство сразу отправляет примитив Receiver Ready: это означает, что передающий буфер может передать очередной фрейм. Пока Receiver Ready не приходит, следующий фрейм в сеть не отправляется. Поэтому, если буфер переполнен (например, за ним находится так называемое устройство Slow Drain Device, которое медленно обрабатывает полученные фреймы и тормозит всю сеть между коммутаторами), — фреймы просто ждут, когда смогут отправиться. Только когда у этого устройства сбросится его собственный буфер, оно начнёт принимать фреймы. И также, если счётчик времени переполнения буфера растёт, администратор уведомляется о том, что требуется устранить причину медленной обработки фреймов отдельными устройствами.

Быстродействие SAN. Основные метрики

Передача данных в сети SAN начинается с того, что какое-либо приложение генерирует запрос: например, на чтение или запись (операция ввода-вывода). У каждого приложения строго задан размер блока: чаще всего встречается 8 КБайт — например, у баз данных. Запрос уходит на драйвер контроллера HBA-адаптера, с него — на контроллер СХД, тот обрабатывает его и формирует новую команду уже к своим дискам, на которых лежат данные.

В этой цепочке бывают узкие места, которые можно выявить, например, измерив с помощью синтетического теста производительность SAN, выраженную в IOPS (Input/Output Operations Per Second — количество операций ввода-вывода за секунду). Если запустить тест на одном хосте, он покажет максимальную скорость взаимодействия этого хоста по сети с драйвером контроллера, если на нескольких — станет видна пропускная способность всей сети SAN и контроллеров СХД. К слову, современные СХД могут обрабатывать более миллиона IOPS (от нескольких хостов), но на этот показатель влияют множество факторов.

Основной компонент СХД, который вносит наиболее весомый вклад в производительность, — это сами диски. У классических шпиндельных дисков (HDD) типовое значение задержки обработки блока данных (latency) составляет 20–30 миллисекунд, у твердотельных накопителей (SSD) — менее одной миллисекунды. Так как в СХД одновременно могут обрабатываться множество операций ввода-вывода и части одного блока данных могут быть расположены на нескольких дисках, этот процесс равномерно распределяется по всему пулу дисков. Поэтому если производительность упирается в медленные диски, то можно увеличить количество дисков в пуле или заменить шпиндельные диски на твёрдотельные — и значение IOPS вырастет более чем на порядок.

Другие возможные причины низкой производительности — слабые или устаревшие контроллеры СХД или недостаточная пропускная способность сети. Соответственно, чтобы решить проблему, нужно либо модернизировать контроллеры, либо оптимизировать сеть.

Ещё одна причина — выбор протокола прикладного уровня. Дело в том, что долгое время единственным таким протоколом для построения сетей хранения данных был SCSI, удобный для работы со шпиндельными дисками. Но в 2011 году появился новый протокол — NVMe, оптимизированный специально для твёрдотельных накопителей, которые можно установить внутрь компьютеров. Он имеет ряд важных преимуществ: большая глубина очередей команд, большее количество очередей, оптимизированный набор команд (отдельные команды для данных и отдельные для управления), встроенный драйвер Multipathing, новые функции ускорения. Поэтому, если для повышения производительности SCSI оказывается недостаточно, то для достижения больших IOPS можно перейти на NVMe, но для этого может потребоваться модернизировать множество устройств в сети SAN — как минимум, целиком сменить СХД, а также, возможно, сменить коммутаторы и HBA-адаптеры хостов и обновить их операционные системы.

 

Требования к быстродействию SAN в зависимости от задачи

Требования к быстродействию SAN в зависимости от задачи
Источник: «Инфосистемы Джет»

 

Можно тратить сколько угодно денег в погоне за более высокими IOPS, но справедливости ради стоит отметить: максимальная производительность нужна только для решения ограниченного круга задач. «В большинстве задач высокая производительность не нужна, соответственно, не нужны и чрезмерные затраты на всё оборудование и сеть. Чаще всего пользователям хватает 10-25 Гбит/сек. Задачи, которые требуют максимальной производительности, больших показателей IOPS и минимальных задержек, — это, например, анализ больших объёмов данных, высокопроизводительные базы данных, высокопроизводительные вычисления, в том числе машинное обучение и ИИ», — поясняет Олег Кандальцев.

Новое поколение сетей SAN. Возможности импортозамещения

На сегодняшний день существует множество стандартов, которые позволяют обеспечить быстрый доступ по сети к высокоскоростным накопителям СХД: например, NVMe over FС, NVMe over TCP, NVMe over RoCE. Все вместе они называются NVMe over Fabrics.

Наиболее совершенным из них считается NVME over RoCE (здесь и далее предполагается версия NVME over RoCE v2) — вариант реализации NVMe over Fabrics, который использует технологию RDMA (Remote Direct Memory Access) для передачи команд NVMe по сети Ethernet с минимальной задержкой и нагрузкой на CPU.

 

Преимущества RDMA

Преимущества RDMA
Источник: «Инфосистемы Джет»

 

«Fibre Channel хорошо развивался и до сих пор развивается, но у него есть свои недостатки. В первую очередь, это достаточно закрытая, проприетарная история. Основных производителей Fibre Channel, фактически, всего два: Brocade и Cisco. Из этого следует второе, что актуально в России: отечественного импортозамещённого FC быть не может. И третье, что немаловажно, — скорость и стоимость порта в Fibre Channel и в Ethernet кардинально отличается. Если сейчас в Fibre Channel речь идёт о скорости порта 128 Гбит/с, то в Ethernet 400 Гбит/с уже не удивит никого. Да и людей, которые разбираются в Ethernet, больше», — замечает Алексей Цемарков, руководитель группы поддержки продаж решений для корпоративных СПД компании «Инфосистемы Джет».

Неслучайно аналитики подтверждают, что рынок Ethernet Storage Fabric растёт с каждым годом, и, по прогнозам, не намерен сбавлять темп. Это всемирный тренд, а в России он особенно актуален из-за необходимости импортозамещения. Практически все популярные зарубежные вендоры СХД уже реализовали протоколы NVMe over TCP и NVMe over RoCE. Отечественные вендоры пока делают первые шаги: в прошлом году один производитель реализовал NVMe over TCP, в этом году несколько производителей анонсировали появление NVMe over RoCE.

 

Рост рынка Ethernet Storage Fabric, аналитика Future Market Insights

Рост рынка Ethernet Storage Fabric, аналитика Future Market Insights
Источник: «Инфосистемы Джет»

 

Преимущество NVMe over RoCE — в использовании специализированных сетевых карт с поддержкой RDMA. Это позволяет сетевой карте аллоцировать оперативную память чужого устройства в сети как свою собственную, писать прямо в память стороннего устройства и читать её же, причём именно на уровне сетевой карты: процессор при этом не задействуется, он только подтверждает, что передачи завершены.

Кроме того, в NVMe over RoCE используется целый стек передовых технологий. Самые важные его блоки — ECN (Explicit Congestion Notification, end-to-end-управление нагрузкой в сети) и PFC (Priority-based Flow Control, оперативное hop-by-hop-управление перегрузками между устройствам в сети), входящий в стек протоколов DCB (Data Center Bridging), а также DLB (Dynamic Load Balancing, позволяющий более эффективно балансировать потоки трафика).

 

Сравнение протоколов для организации SAN

Сравнение протоколов для организации SAN
Источник: «Инфосистемы Джет»

 

«Зарубежное оборудование уже давно и успешно работает на этом, поддерживая большие нагрузки. Отечественные сети уже готовы под это, а вот СХД развиваются немного медленнее. Конечно, мы не советуем компаниям сломя голову переходить на новую SAN-инфраструктуру. Но необходимо как минимум присматриваться к новым реализациям, к новым стандартам и новым возможностям. Вероятно, в конце года, когда выпустят отечественное оборудование, бизнес придёт к вам и скажет: "Давайте мы теперь это у нас будем разворачивать". К этому вы должны быть готовы», — советует сетевым инженерам Алексей Цемарков.

Автор: Андрей Блинов.

Тематики: Интеграция, Оборудование

Ключевые слова: сетевое оборудование, Инфосистемы Джет, хранение данных, СХД, Импорто­замещение