Brocade SAN Часть 1: Введение, теория Fiber Channel, аппаратная часть
Прежде чем говорить об аппаратном обеспечении и SAN, нужно всё-таки начать с того, что из себя SAN представляет в принципе, откуда он появился и почему.
Когда то давно, на заре компьютерной эры, внешние устройства хранения обычно подключались напрямую к серверам (DAS — Direct-attached storage), используя SCSI, но из-за крайне стремительного роста требования к системам хранения данный подход стал слишком неэффективным. Для изменения конфигурации хранилища, подключенного по технологии DAS требовало физического отключения сервера, построение отказоустойчивых систем то же было затруднительно ввиду необходимости иметь физическое подключение всех серверов ко всем устройствам хранения, а жёсткие ограничения по максимальному расстоянию между устройствами делали подобные расширения порой слишком сложными, да и производительность SCSI оставляла желать лучшего. Изменение подхода к подключению внешних хранилищ позволило получить следующие преимущества:
- Изменение конфигураций хранилищ не затрагивает работу серверов и сервисов
- Расстояние между устройствами позволило строить катастрофоустойчивые хранилища, расположенные на удалённых площадках
- Любой сервер может получить доступ к любому устройству хранения в SAN сети
Обычно говоря SAN подразумевают сети на безе протокола Fibre Channel, но стоит отметить что протокол iSCSI позволяет строить аналогичные по своим характеристикам сети, основанные на IP сетях. Изначально, переход от SCSI к Fiber Channel был обусловлен желанием увеличить расстояние подключения, а не пропускную способность. Первая версия протокола, появившаяся в 1997 году, предоставляла скорость в 1Gb/s. Каждая новая версия прокола, постоянно «удваивает» скорость предыдущего поколения. На данный момент, актуальным является 6 поколение протокола, работающего на скорости 32/128Gb/s.
Fibre channel, как сетевой протокол, состоит из нескольких уровней:
FC-0 Физический: в котором описывается среда передачи данных, характеристики кабелей, трансиверов, HBA. Физические и электрические характеристики, скорость передачи данных.
FC-1 Кодирование: описывает как данные будут кодироваться/декодироваться (8/10 или 64/66) для передачи
FC-2 Кадрирование и сигнализация: определяет структуру передаваемой информации, занимается контролем целостности данных и управляет непосредственно передачей данных. На этом уровне происходит разбиение потока данных на кадры и сборка кадров. Определяет правила передачи данных между двумя портами, классы обслуживания.
FC-3 Общий для узла служб: заложен для нового функционала, который может быть реализован в протоколе, но на данный момент этот уровень не используется
FC-4 Отображения протоколов: описывает протоколы, которые для своей работы могут использоваться FC: проброс SCSI (SCSI-FCP) или TCP/IP (FC-LE)
Так же как и в сетевом протоколе, любое устройство в SAN сети имеет собственный уникальный 64-разряднй идентификатор — WWN, задаваемый производителем (аналогия с MAC-адресом сетевого устройства), так же каждое устройство получает 24-х битный адрес в сети, который дается при подключении устройства. Основой SAN сети является Фабрика — совокупность всех подключенных к сети устройств. Стоит отметить, что фабрика сама по себе является единой точкой отказа, по этому в SAN сетях нормальной практикой является построение нескольких параллельных фабрик (обычно двух), которые являются зеркальным отражением друг друга. Это позволяет строить отказоустойчивые решения. Хотя порой фабрики могут и отличаться (к примеру, дублируется подключение только критически важных систем) — всё зависит от возлагаемых на них задач.
Основой передачи данных в FC сетях является кадр. Кадр содержит в себе не только данные, но и заголовок, которые описывает служебную информацию из разряда — «откуда-куда», а так же разделитель, указывающие на начало и конец фрейма.
Start of Frame — 4 байта — идентификатор начала фрейма.
Header — 24 байта — заголовок. Содержит такую информацию как адрес источника и приёмника, тип фрейма, номер последовательности и порядковый номер фрейма в ней и прочая служебно-контрольная информация.
Data — 0-2112 байт — непосредственно данные.
CRC — 4 байта — контрольная сумма.
End of Frame — 4 байта — идентификатор конца фрейма.
Последовательность представляет собой набор кадров, которые передаются из одной точки в другую. Для исправления возможных ошибок каждый кадр содержит уникальный счетчик последовательности. Исправление ошибок осуществляется протоколом более высокого уровня, обычно на уровне FC-4. Несколько последовательностей составляют обмен (exchange). Обмены представляют собой последовательности двусторонних направлений; т.е. в обмен входят последовательности данных, передающихся в разных направлениях, хотя каждая последовательность передается только в одном направлении. При каждом обмене только одна последовательность может быть активна в текущий момент времени. Но, так как одновременно могут быть активны несколько обменов, различные последовательности из этих обменов также могут быть активны одновременно. Каждый обмен выполняет одну функцию, например реализует команду SCSI Read.
Типы портов:
Порты узлов:
N_Port (Node port), порт устройства с поддержкой топологии FC-P2P («Точка-Точка») или FC-SW (с коммутатором).
NL_Port (Node Loop port), порт устройства с поддержкой топологии FC-AL (arbitrated loop — управляемая петля).
Порты коммутатора/маршрутизатора (только для топологии FC-SW):
F_Port (Fabric port), порт «фабрики» (switched fabric — коммутируемая связная архитектура). Используется для подключения портов типа N_Port к коммутатору. Не поддерживает топологию петли.
FL_Port (Fabric Loop port), порт «фабрики» с поддержкой петли. Используется для подключения портов типа NL_Port к коммутатору.
E_Port (Expansion port), порт расширения. Используется для соединения коммутаторов. Может быть соединён только с портом типа E_Port.
EX_port порт для соединения FC-маршрутизатора и FC-коммутатора. Со стороны коммутатора он выглядит как обычный E_port, а со стороны маршрутизатора это EX_port.
TE_port (Trunking Expansion port (E_port)) внесен в Fibre Channel компанией CISCO, сейчас принят как стандарт. Это расширенный ISL или EISL. TE_port предоставляет, помимо стандартных возможностей E_port, маршрутизацию множественных VSANs (Virtual SANs). Это реализовано применением нестандартного кадра Fibre Channel (vsan-тегирование).
Общий случай:
U_Port (Universal port), порт, который ещё не определился в каком режиме он работает. Обычно после инициализации становится F_Port или E_Port.
L_Port (Loop port), любой порт устройства с поддержкой топологии «Петля» — NL_port или FL_port.
G_port (Generic port), порт с автоопределением. Автоматически может определяться как порт типа E_Port, N_Port, NL_Port.
SAN состоит из:
- Узлы, ноды
- Дисковые массивы (системы хранения данных)
- Серверы
- Ленточные библиотеки
- Сетевая инфраструктура
- Коммутаторы (и маршрутизаторы в сложных и распределённых системах)
- Директоры — многопортовые модульные коммутаторы с высокой степенью доступности.
- Выделенные коммутаторы (standalone switches) — коммутаторы с фиксированным количеством портов.
- Стэкируемые коммутаторы (stackable switches) — коммутаторы, имеющие дополнительные высокопроизводительные порты для связи независимых шасси между собой.
- Встраиваемые коммутаторы (embedded switches) — коммутаторы, встраиваемые в блейд-корзину, где есть разделение портов на функции (порты, предназначенные для подключения blade-серверов, не могут быть использованы для межкоммутаторных соединений).
Сердцем оборудование для SAN сетей является ASIC (application specific integrated circuit) — специализированная схема, разработанная компанией Brocade для возможности реализации большей части функционала оборудования на аппаратном уровне, что в итоге приводит к более высокой производительности и надёжности. Именно использование ASIC позволяет удерживать столь низкие задержки в SAN-сетях.
Он обеспечивает плавный переход между FC-0 и FC-1, занимаясь:
- Encoder / Decoder — обеспечивает кодирование каждых 8 бит передаваемых данных в 10-битное представление. И декодирование обратно принимаемых данных.
- SERDES (Serializer / Deserializer) — преобразует параллельный поток 10-битных порций данных в последовательный поток 10-битных порций данных.
- Transceiver — преобразует электрические импульсы в световые сигналы.
ASIC обслуживает сами порты, при этом — ОС коммутатора работает на отдельных чипах, по этому при обновлении прошивки коммутатора у вас нет недоступности. На момент перезагрузки ОС — ASIC продолжает обслуживать текущие соединения, но блокирует установление новых. Подробнее об этом мы поговорим 6 части материала.
И раз уж на картинке выше у нас есть SFP:
SFP — это отдельные модули, необходимые для подключения кабеля к порту, но о них подробнее, о их типах и различиях я буду говорить в следующих материалах.
Я очень надеюсь что всё что я смог выжать из себя сегодня — удобоваримо и понятно для читателя. Ведь без основ двигаться дальше очень сложно, с точки зрения понимания процессов работы системы. Лично для меня — теория всегда была самой сложной частью. Не все вещи можно просто понять, как «трава зелёная», некоторые вещи нужно просто принять и запомнить как они работают.