Однажды один из клиентов компании-интегратора, где я работал, попросил оперативно нарисовать проект небольшой системы хранения данных. Как назло, специальный человек по SAN оказался недоступен и задачу поручили мне. На тот момент мои знания по СХД сводились к непробиваемой идее "Fibre Channel – это круто, а iSCSI – не очень".
Для всех тех, кто попал в похожую ситуацию или немного интересуется темой SAN, мы подготовили цикл материалов в формате "конспект". Сегодняшняя статья посвящена технологиям хранения для небольших и средних организаций. Постараюсь не занудствовать с теорией и использовать побольше примеров.
СХД различные и в меру необычные
Если инженер не особенно знаком с сетями хранения данных (СХД), то выбор подходящего устройства часто начинается с изучения рынка в преломлении собственных стереотипов. Например, я в свое время обычно останавливался на простых DAS-системах, что удивительно дополняло своей нелогичностью тезис про "крутость" Fibre Channel. Зато DAS был понятным и не требовал чтения длинных руководств администратора и погружения в темный мир сетей хранения.
Если в организации просто заканчивается место на общем сетевом диске, то хватит и недорогого сервера с относительно высокой плотностью дисков, в качестве задела на будущее. Из специализированных систем неплохо подойдет сетевое файловое хранилище (NAS), вроде Synology DS414 SLim. На нем и общие папки создавать удобно, и права гибко настраиваются, и с Active Directory интеграция есть.
Чем мне нравятся хранилища Synology, так это удобным интерфейсом с множеством плагинов на любые сценарии использования. Но поведение у них бывает весьма странным. Например, у одного заказчика был Synology DS411+II. Работал прекрасно до очередной перезагрузки, после которой не включился. Не спрашивайте, как я до этого дошел, но алгоритм запуска после сбоя был следующий:
1. Вынуть все диски, включить устройство, выключить устройство;
2. Воткнуть один диск, включить устройство, выключить устройство;
3. Воткнуть второй диск, включить устройство, выключить устройство;
4. Повторить для третьего и четвертого диска. После установки четвертого диска, устройство включается и работает.
Способ был опубликован на форуме Synology и оказалось, что я не один такой везучий. С тех пор предпочитаю небольшие серверы с GNU\Linux на борту, у них хотя бы с диагностикой проще.
Из сборок для NAS могу порекомендовать Openmediavault.
Все усложняется когда нужно нарастить дисковый объем имеющихся серверов или появляются мысли о высокой доступности. Тут-то и возникает соблазн построить полноценную NAS или впасть в другую крайность, ограничившись простой дисковой полкой DAS.
SAN, Storage Area Network – архитектурное решение для подключения по сети внешних устройств хранения данных, вроде дисковых массивов и ленточных библиотек. Причем, подключить на блочном уровне, чтобы клиент работал с ними так же, как с обыкновенными локальными дисками. В русскоязычной литературе используется аббревиатура СХД (Сеть Хранения Данных) – не путайте с Системой Хранения Данных, которой может считаться любая дисковая полка.
- Direct Attached Storage (DAS) – внешний диск или дисковый массив, подключенный непосредственно к серверу на блочном уровне.
В этой статье я не буду касаться программных реализаций, вроде Storage Spaces в среде Windows, а ограничусь железными и архитектурными нюансами СХД.
Зачем отдельная сеть хранения
Начнем с типовых решений для хранения данных, которые предполагают использование специальных сетей и интерфейсов, так как с ними больше всего вопросов.
Самым недорогим способом организации SAN является интерфейс Serial Attached SCSI (SAS). Тот самый, с помощью которого подключаются диски в любом современном сервере. Используют SAS и для прямого подключения внешнего дискового массива к серверу.
Для массива DAS возможна организация отказоустойчивого подключения к нескольким серверам. Делается это с помощью Multipath, технологии коммутации клиента и СХД по нескольким маршрутам. Но большей популярностью пользуется разделение дисков между серверами, которые уже самостоятельно собирают из них группы RAID и делят на тома. Подобная схема называется "Разделяемый JBOD".
Для подключение к серверу используются адаптеры (HBA) под конкретный интерфейс, которые просто позволяют ОС увидеть готовые дисковые тома.
Стоит отметить, что SAS поддерживает три стандарта:
SAS-1, со скоростью 3 Гб/с на устройство;
SAS-2, со скоростью 6 Гб/с;
- SAS-3, предоставляющий уже 12 Гб/с.
При планировании архитектуры стоит также иметь в виду отличия в разъемах SAS, что часто приводит к путанице при заказе кабелей. Самыми популярными при подключении внешнего оборудования являются SFF-8088 (mini-SAS) и SFF-8644 (mini-SAS HD).
Являясь частностью SCSI, SAS поддерживает экспандеры, что позволяет подключать до 65 535 устройств к одному контроллеру и порту. Конечно, цифра скорее теоретическая и не учитывает различные накладные расходы. Чаще всего встречаются контроллеры с реальным ограничением в 128 дисков, но масштабировать подобный SAN для двух и более серверов простыми экспандерами уже не так удобно. В качестве более адекватной альтернативы можно использовать коммутаторы SAS. По сути, это те же экспандеры, но с поддержкой распределения ресурсов по серверам, т.н "зонирование". Например, для стандарта SAS-2 наибольшей популярностью пользуется LSI 6160.
С помощью коммутаторов SAS возможна реализация отказоустойчивых схем для нескольких серверов без единой точки отказа.
Из плюсов использования SAS можно отметить:
Низкую стоимость решения;
Высокую пропускную способность – даже при использовании SAS-2 получится 24 Гб/с на каждый порт контроллера;
- Низкая латентность.
Не обошлось и без минусов:
Отсутствуют механизмы репликации средствами дискового массива;
- Есть ограничение на длину кабельного сегмента: обычный медный SAS-кабель длиннее 10 м не встречается, активный – не более 25 м. Существуют и оптические кабели SAS с ограничением в 100 метров, но они ощутимо дороже.
В качестве типового решения для малых и средних организаций разберем создание небольшого отказоустойчивого кластера виртуальных машин. Под кластер выделим два узла с единственным дисковым массивом. В качестве условного среднего объема дискового тома выберем 1 ТБ.
Замечу, что программными решениями вроде StarWind Native SAN можно получить такой же кластер без отдельного дискового массива, или же с простыми JBOD. Кроме того, большинство гипервизоров поддерживают в качестве хранилищ сетевые ресурсы NFS или SMB 3.0. Но в программных реализациях больше нюансов и «слабых звеньев» из-за большей сложности системы. Да и производительность обычно ниже.
Для сборки такой системы понадобится:
Два сервера;
Дисковый массив;
HBA для серверов;
- Соединительные кабели.
Дисковый массив возьмем для примера HP MSA 2040 с двенадцатью отсеками под HDD. Для подключения будем использовать SAS 3.0 на скорости 12 Гб/с. Посчитаем первым попавшимся конфигуратором общую стоимость системы хранения:
Дисковая полка HP MSA 2040 | 360 250 ₽ |
Dual Raid Controller 8x12 Gb SAS | 554 130 ₽ |
HDD 600GB SAS 12G x4 | 230 560 ₽ |
Кабель mSAS внешний 2м x4 | 41 920 ₽ |
HP SmartArray P441 8-external channel SAS 12G x2 | 189 950 ₽ |
Итого | 1 376 810 ₽ |
А вот и схема подключения:
Каждый сервер будет соединятся с каждым контроллером СХД для Multipathing.
На мой взгляд, SAS 3.0 оптимален, если не нужны распределенные SAN-сети и не требуется детальное разграничение прав доступа к СХД. Для небольшой организации так можно достичь отличного баланса цены и производительности.
После приобретения второго массива в будущем станет возможным соединение каждого сервера с контроллером каждой дисковой полки, но при росте числа клиентов это серьезно усложнит архитектуру. Для большего числа клиентов лучше приобрести один SAS коммутатор. Или два, для построения отказоустойчивого решения.
Традиционным выбором для построения SAN является Fibre Channel (FC) – интерфейс, связующий узлы сети по оптическому волокну.
FC поддерживает несколько скоростей: от 1 до 128 Гб/с (стандарт 128GFC вышел как раз в 2016). В основном используются 4GFC, 8GFC и 16GFC.
Существенные различия по сравнению с SAS-системами проявляются при проектировании крупных SAN:
Расширение производится не за счет экспандеров, а возможностями топологии сети;
- Максимальная длина кабеля при использовании одномодового оптоволокна может достигать 50 км.
В небольших организациях обычно применяют структуру с одним коммутатором (single-switch), когда один сервер через один коммутатор подключается к дисковому массиву. Такая схема составляет основу остальных топологий: каскад (cascade), решетка (mesh) и кольцо (ring).
Наиболее масштабируемая и отказоустойчивая схема называется "центрально-распределенная" (core-edge). Она напоминает известную всем сетевую топологию “звезда”, но только в середине два центральных коммутатора, распределяющих трафик по периферийным. Частным случаем этой схемы является “коммутируемая архитектура” (switched fabric), без периферийных коммутаторов.
При проектировании стоит обратить внимание на разные типы трансиверов. Это специальные модули, которые преобразуют цифровой сигнал в оптический, для чего используются светодиоды или лазерные излучатели. Трансиверы поддерживают разные длины волны и разные оптические кабели, что влияет на протяженность сегмента.
Есть два типа трансиверов:
Коротковолновые (Short Wave, SW, SX) – подходят только для многомодовых волокон;
- Длинноволновые (Long Wave, LW, LX), совместимы с многомодовым и одномодовым волокном.
К обоим типам кабель подключается разъемом LC, а вот SC-разъемы встречаются довольно редко.
Типичный HBA c двумя портами FC
При выборе оборудования для SAN не лишним будет проверить все компоненты по таблицам совместимости производителя железа. Активное сетевое оборудование всегда лучше выбирать одного бренда, чтобы избежать проблем совместимости даже в теории – это стандартная практика для подобных систем.
К плюсам решений на FC можно отнести:
Возможность построения территориально распределенной SAN;
Минимальная латентность;
Высокая скорость передачи данных;
- Возможность репликации и создания снапшотов силами дискового массива.
На другой чаше весов традиционно лежит стоимость.
Системы хранения из раздела про SAS можно построить и на 16GFC, заменив лишь HBA и контроллер дисковой полки. Стоимость при этом вырастет уже до 1 845 790 ₽.
В своей практике я встречал у заказчика даже построенный на FC массив DAS, заполненным дисками менее, чем наполовину. Почему не использовали SAS? Самый оригинальный ответ был такой: «а что, можно было?».
В более сложной инфраструктуре FC становится структурно более похож на TCP\IP. У протокола также описаны уровни, как и у стека TCP\IP, существуют маршрутизаторы и коммутаторы, описано даже "тегирование" для изоляции сегментов на манер VLAN. Кроме того, на FC-коммутаторах исполняются службы разрешения имен и обнаружения устройств.
Не буду углубляться в тонкости, ведь на тему FC написано уже немало хороших статей. Обращу внимание лишь на то, что при выборе коммутаторов и маршрутизаторов для SAN нужно обращать внимание на логические типы портов. В разных моделях поддерживаются разные сочетания основных типов из таблицы:
Тип Устройства | Наименование | Описание |
Сервер | N_Port (Node port) | Используется для подключения к коммутатору или конечному устройству. |
NL_Port (Node Loop port) | Порт с поддержкой топологии «петля». | |
Коммутатор\ Маршрутизатор |
F_Port (Fabric port | Для подключения N_Port, «петля» не поддерживается. |
FL_Port (Fabric Loop port), | Порт с поддержкой «петли». | |
E_Port (Expansion port | Порт для соединения коммутаторов. | |
EX_port | Порт для соединения коммутатора и маршрутизатора. | |
TE_port (Trunking Expansion port) | E-port с поддержкой VSAN. | |
Общие | L_Port (Loop port) | Любой порт с поддержкой петли (NL_port или FL_port). |
G_port (Generic port) | Любой незанятый порт устройства с авто определением. |
Статья была бы неполной без упоминания варианта построения SAN на InfiniBand. Этот протокол позволяет достичь действительно высоких скоростей передачи данных, но по стоимости выходит далеко за рамки SMB.
Использование привычного Ethernet
Можно обойтись и без изучения новых видов сетей, используя старый добрый Ethernet.
Популярный протокол для создания SAN в Ethernet-сетях называется Internet Small Computer Systems Interface (iSCSI). Строится он поверх TCP\IP, и основной его плюс в приличной работе по обычной гигабитной сети. В обиходе такие решения часто называют "бесплатный SAN". Разумеется, гигабита под серьезные задачи не хватит, и к вашим услугам сети 10 Гб/с.
К безусловным плюсам можно отнести низкую стоимость базового оборудования. Так как iSCSI реализуется программно, можно установить соответствующие приложения на обычные серверы. Большинство NAS класса SOHO поддерживают этот протокол изначально.
У заказчика однажды остро встал вопрос перемещения Exchange 2003 с умирающего сервера. Решили виртуализировать его с минимальным простоем. Для этого подняли iSCSI-target на том самом NAS Synology DS411 из первой части статьи и подключили к Exchange. Далее перенесли туда БД и мигрировали на MS Virtual Server 2005 c помощью disk2vhd. После успешной миграции перенесли базу обратно. Позже такие операции проводились при переходе с MS Virtual Server на VMware.
Разумеется, для построения SAN на iSCSI, даже если для задач хватает и гигабитной сети, не стоит "выпускать" его в общий LAN. Работать оно будет, но широковещательные запросы и прочий служебный трафик непременно скажутся на скорости и создадут помехи пользователям. Лучше построить отдельную изолированную сеть со своим оборудованием. Или, в крайнем случае, хотя бы выделить подсеть с iSCSI в отдельный VLAN. Стоит отметить, что для достижения максимальной производительности таких систем необходимо включать поддержку Jumbo Frames на всем пути следования пакетов.
В качестве меры экономии бюджета может возникнуть мысль об объединении гигабитных портов при помощи агрегации каналов (LACP). Но, как правильно заметил VitalKoshalew в комментариях, реальной балансировки между отдельным сервером и хранилищем с помощью LACP не получится. Более правильным бюджетным решением будет использование технологий Multipath на верхних уровнях модели OSI.
К слову, совсем правильное iSCSI-решение на базе 10 Гб сети, с поддерживающими аппаратное ускорение iSCSI сетевыми картами и соответствующими коммутаторами приближается по стоимости к FC.
Подобная схема сети возможна благодаря тому, что iSCSI работает поверх TCP\IP.
Из интересных решений на базе iSCSI можно отметить работу тонких клиентов без сервера терминалов – вместо локальных дисков используется том iSCSI. Гигабитной сети вполне достаточно для такой работы, а реализовать что-либо подобное другими средствами не так просто.
Плюсы решения:
Низкая стоимость;
Возможность построения территориально распределенной сети;
- Простота проектирования и обслуживания.
Минусы:
Задержки при обращении к данным могут быть существенными, особенно при работе с пулом виртуальных машин;
- Повышенная нагрузка на процессор, если не используются специальные HBA с аппаратной поддержкой iSCSI.
Есть и более "взрослая" альтернатива iSCSI. Можно использовать ту же сеть Ethernet, но протокол хранения завернуть непосредственно в кадры Ethernet, минуя TCP\IP. Протокол называется Fibre Channel over Ethernet (FCoE) и для работы использует Ethernet 10 Гб. Помимо традиционной оптики, можно использовать специальные медные кабели или витую пару категории 6a.
Важное отличие от FC в том, что порт Ethernet можно использовать совместно с TCP\IP. Для этого нужны специальные сетевые адаптеры, так называемые Converged Network Adapter (CNA) с поддержкой FC и FCoE, хотя есть и программные решения. Поскольку протокол работает ниже уровня TCP\IP, то простой коммутатор не подойдет. Кроме того, обязательно должна быть поддержка Jumbo Frames и Data Center Bridging (DCB, иногда встречается Data Center Ethernet). Подобные решения обычно стоят дороже (например, Cisco серии Nexus).
В теории, FCoE можно запустить и в гигабитной сети без использования DCB, но это весьма неординарное решение, для которого я не встречал рассказов об успешных запусках.
Если вернуться к нашему маленькому, но гордому кластеру виртуализации, то для него решения на 10 Гб/с iSCSI и FCoE будут практически одинаковыми по стоимости, но в случае с iSCSI можно использовать дешевые гигабитные сети.
Также стоит упомянуть и довольно экзотичный протокол ATA over Ethernet (AoE), схожий по своей работе с FCoE. Дисковые массивы с ним – редкость, обычно используются программные решения.
Что в итоге
Выбор конкретной реализации системы хранения требует вдумчивого изучения конкретной ситуации. Не стоит подключать дисковый массив с помощью FC просто потому, что "оптика" звучит гордо. Решение на SAS даст аналогичную или даже большую производительность там, где оно архитектурно уместно. Если не брать в расчет стоимость и сложности обслуживания, то существенным отличием между всеми описанными технологиями подключения СХД будет дистанция соединений. Эту мысль хорошо иллюстрирует один из кадров презентации SNIA:
Если после прочтения статьи хотите подробнее изучить самобытный мир SAN, могу порекомендовать следующие бестселлеры:
Brocade – Основы проектирования SAN
HPE SAN Design Reference Guide
IBM – Introduction to Storage Area Networks
- Наилучшие практики построения FC SAN
Мы раздумываем над публикацией других статей по серверным технологиям в формате "ликбез", поэтому было бы здорово получить от вас обратную связь в виде оценки этого материала. Если какие-то темы вам особенно интересны – обязательно расскажите о них в комментариях.