Fibre Channel

Fibre Channel (или сокращенно FC, в переводе с английского fibre channel - волоконный канал) - класс протоколов, использующихся для высокоскоростной (гигабитной) передачи данных. Применяется в основном для сетей хранения данных. Находится в ведомстве Технического комитета T11 (входит в состав Международного комитета по стандартам в сфере ИТ (InterNational Committee for Information Technology Standards — INCITS). 

Первоначально семейство Fibre Channel применялось исключительно в суперкомпьютерах, затем перешло в сети хранения данных, там FC применяется как стандартная возможность подключения к система хранения данных. Получил широкое корпоративное использование.

Fibre Channel Protocol (FCP) - это транспортный протокол (аналогично TCP в IP-сетях),  использующий SCSI в сетях FC. Представляет собой базу для построения сетей хранения данных.

История

Fibre Channel впервые появился в 1988 году, но только в 1994 году был официально утвержден как стандарт, упрощающий интерфейс HIPPI. В устаревшем протоколе применялся массивный 50-парный кабель с громоздкими коннекторами. 

Первоначальными целями интерфейса Fibre Channel по выходу на рынок были повышение дальности действия и упрощение схемы подключения линий передачи. Примечательно, что перед разработчиками не стояло задачи увеличить скорость работы.

Когда Fibre Channel начал вести серьезную конкуренцию на рынке, главным соперником нового интерфейса стал SSA (Serial Storage Architecture) от IBM, с которым долгое время разворачивалась серьезная борьба. В конце концов, рынок выбрал Fibre Channel, таким образом, IBM потеряли контроль над технологиями хранения данных следующего поколения.

Почему покупатель выбрал Fibre Channel? Дело в том, что в процессе разработки интерфейса, основная концентрация усилий пришлась на упрощение подключения, увеличение расстояния действия, однако и не был сделан акцент на увеличение скорости.

Позже, разработчики добавили к приоритетным задачам по развитию FC еще и возможность подключения дисковых накопителей SCSI, обеспечивающих более высокую скорость при увеличенном числе подключенных устройств. Это сделало Fibre Channel практически недосягаемым даже для крупных конкурентов. Кроме того, позднее в Fiber Channel была добавлена поддержка любого количества протоколов "верхнего уровня" (включая ATM и IP) с SCSI, выступающего как приоритетный.

Версии Fibre Channel

Название

Пропускная способность (Gbps)

Производительность (~MBps)

Год

1GFC

1.0625

100

1997

2GFC

2125

200

2001

4GFC

4.25

400

2004

8GFC

8.5

800

2005

10GFC Последовательный

10.51875

1000

2006

10GFC Параллельный

12.75

1500

2007

16GFC

14025

2000

2008

20GFC

21.04

3200

2011

Топологии Fibre Channel

Топология определяет взаимное подключение устройств (трансмиттеров и ресиверов). Существует три типа топологии Fiber Channel:

  • "Точка-Точка" (point-to-point). В данном случае устройства подключены напрямую: трансмиттер одного устройства соединен с ресивером второго, и наоборот. Отправленные одним устройством кадры направлены ко второму устройству.
  • Управляемая петля (arbitrated loop). В данном случае устройства объединены в петлю: трансмиттер одного устройства соединяется с ресивером следующего. Устройствам присваиваются адреса, после чего петля может служить передатчиком данных.  Добавление устройства в петлю приводит к приостановке передачи данных. Чтобы построить управляемую петлю используют концентраторы, они способны замыкать/размыкать петлю, если добавляется/убирается устройство.
  • Коммутируемая связная архитектура (switched fabric). В данном случае применяется коммутатор. Это позволяет подключать большее количество устройств, в сравнении с управляемой петлей. Однако, при этом добавление новых устройств не влияет на передачу данных между уже подключенными устройствами, поскольку на основе коммутаторов можно строить сложные сети, на коммутаторах поддерживаются распределенные службы управления сетью (fabric services), которые отвечают за маршруты передачи данных, регистрацию в сети и присвоение сетевых адресов и другое.

Обычно под топологией Fibre Channel ошибочно подразумевают топологию сети хранения данных (взаимное подключение оборудования инфраструктуры и оконечных устройств).

Уровни

Fibre Channel имеет пять уровней:

  • FC-0 Физический. Он описывает среду передачи, трансиверы, коннекторы и типы используемых кабелей. Поддерживается как оптическая, так и электрическая среда (витая пара, коаксиальный или твинаксиальный кабели, а также многомодовое или одномодовое волокно), со скоростью передачи данных от 133 мегабит/с до 10 гигабит/с на расстояния до 50 километров.
  • FC-1 Кодирование. Он описывает процесс 8b/10b Кодирования (каждые 8 бит данных кодируются в 10-битовый символ (Transmission Character), специальные символы и контроль ошибок. 10GFC использует кодирование 64b/66b, 10GFC несовместим с 1/2/4/8GFC.
  • FC-2 Кадрирование и сигнализация. Он описывает сигнальные протоколы. Определяются слова, разбивается поток данных на кадры. Определяются правила передачи данных между двумя портами.
  • FC-3 Общих для узла служб. Он определяет базовые и расширенные службы для транспортного уровня. Кроме того, производит расщепление потока данных (страйпинг), передачу потока данных через несколько соединений (маршрутов), отображение множества портов на одно устройство.
  • FC-4 Отображения протоколов. Он предоставляет возможность инкапсуляции других протоколов (SCSI, ATM, IP, HIPPI , AV, VI, IBM SBCCS и многих других.)

Логические типы портов

Порты различаются в зависимости от поддерживаемой топологии и типа устройства:

  • Порты узлов
    • 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)). Расширенный ISL или EISL. TE_port предоставляет помимо стандартных возможностей E_port маршрутизацию множественных VSANs (Virtual SANs). Реализовано применением нестандартного кадра Fibre Channel (vsan тегирование).
  • Общее
    • L_Port (Loop port), любой порт устройства с поддержкой топологии «Петля» - NL_port или FL_port.
    • G_port (Generic port), порт с автоопределением. Автоматически может определяться как порт типа E_Port, N_Port, NL_Port.

Варианты оптической среды передачи данных

Коннекторы Fibre channel LC (слева) и SC (справа)

Тип среды

Скорость (Mbyte/s)

Передатчик

Модификация

Расстояние

Одномодовое волокно

400

1300 нм Длинноволновой лазер

400-SM-LL-I

2 м - 2 км

100

1550 нм Длинноволновой лазер

100-SM-LL-V

2 м - >50 км

1300 нм Длинноволновой лазер

100-SM-LL-I

2 м - 2 км

200

1550 нм Длинноволновой лазер

200-SM-LL-V

2 м - >50 км

1300 нм Длинноволновой лазер

200-SM-LL-L

2 м - 10 км

1300 нм Длинноволновой лазер

200-SM-LL-I

2 м - 2 км

Многомодовое волокно (50µм)

400

850 nm Коротковолновой лазер

400-M5-SN-I

0.5 м - 150 м

200

200-M5-SN-I

0.5 м - 300 м

100

100-M6-SN-I

0.5 м - 300 м

100-M6-SL-I

2 м - 175 м

Инфраструктура

  • Директоры — многопортовые модульные коммутаторы, обладающие высокой степенью доступности.
  • Выделенные коммутаторы (standalone switches) — коммутаторы, обладающие фиксированным количеством портов.
  • Стэкируемые коммутаторы (stackable switches) — коммутаторы, обладающие дополнительными высокопроизводительными портами для связи независимых шасси между собой.
  • Встраиваемые коммутаторы (embedded switches) — коммутаторы, встраиваемые в блейд-корзину (blade enclosure). В корзине имеется разделение портов по функции.
  • Концентраторы (hubs) — связующие устройства в управляемой петле (Arbitrated Loop).
  • Концентраторы-коммутаторы (loop-switches) — связующие коммутаторы в управляемой петле (Arbitrated Loop). Концентраторы и концентраторы-коммутаторы практически не используются для подключения оконечных устройств; используются для подключения дисков к контроллерам в дисковых массивах.

Также возможно увеличить дальность соединения, благодаря использованию дополнительного трансмиссионного оборудования (мультиплексоров, созданных на основе WDM и прочее)

Главные производители оборудования Fibre Channel: Brocade, Cisco, QLogic, Emulex.

Логические элементы передачи данных

Упорядоченные наборы (Ordered Sets)

Слова размером в 4 байта (Transmission Words) со специальными данными и символами. Разбиение потока данных на упорядоченные наборы сохраняет синхронизацию между передатчиком и ресивером на уровне битов и слов. Упорядоченные наборы начинаются с символа K28.5. Типы наборов определяются сигнальным протоколом.

Разделители кадров

Разделители кадров используются для отделения одного кадра от другого. Существует два кадра:

  • Начало кадра (Start Of Frame, SOF)
  • Конец кадра (End Of Frame, EOF)

Базовые сигналы

  • Сигнал бездействия (Idle). Обозначает готовность принимать и отправлять кадры.
  • Сигнал готовности ресивера (Receiver Ready, R_RDY). Управление потоком данных, применяется для индикации наличия места в буфере ресивера.
  • Базовые последовательности. Служат для повещения о нестандартном состоянии порта. В ответ отправляется соответствующая последовательность или сигнал бездействия. Поддерживается четыре последовательности:
  1. Offline (OLS)
  2. Not Operational (NOS)
  3. Link Reset (LR)
  4. Link Reset Response (LRR)

Уникальный адрес устройства

Каждое устройство имеет уникальный 8-байтовый адрес, называемый NWWN (Node World Wide Name), состоящий из нескольких компонентов:

A0:00:BB:BB:BB:CC:CC:CC

| |   |        |

| |   |        ±------ Назначаются производителем устройства.

| |   ±--------------- Назначаются IEEE для каждого производителя.

| ±------------------- Всегда 0:00 (Зарезервировано стандартом)

±--------------------- Число произвольно выбирается производителем.

Классы служб (CoS)

В Fibre Channel поддерживается такие классы служб (Classes of service, CoS):

  • Класс 1 — Acknowledged Connection Service (выделенные каналы с подтверждением). Выделенное соединение образуется между двумя устройствами через коммутатор или фабрику. Принимающее устройство отправляет на передающее подтверждение приема каждого кадра. Соединение остается открытым до того момента, пока передача данных не будет завершена. Соединение устанавливается всего несколько микросекунд. Канал, как правило, дуплексный, но в случае необходимости есть возможность организовать симплексный (к примеру, в случае необходимости одновременной передачи данных от одного и другого узла). Доступна максимальная пропускная способность устройства. Применяется сквозное управление потоком. Гарантированы высокая скорость обмена и правильный порядок приема кадров. Данный класс идеально подходит приложениям, работающим с большими массивами данных, к примеру, системы моделирования или обработки видео. Если пропускная способность не используется полностью, она все равно недоступна для других приложений до тех пор, пока соединение не будет закрыто. Главным недостатком данного класса является невозможность работы между собой портов с разной скоростью работы. Стандартизованные в FC-PH-2 однонаправленная передача, буферизация класса 1 и Camp on, начиная с FC-FS, считаются устарелыми.
  • Класс 2 — Acknowledged Connectionless Service (передача без организации соединения с подтверждением). Каждый кадр коммутируется независимо от остальных, конечный порт может одновременно передавать и принимать данные от нескольких узлов. Однако при этом канал между двумя взаимодействующими не выделяется (происходит мультиплексирование коммутатором трафика). Каждый кадр подтверждается принимающим устройством. Кадры могут доставляться по различным маршрутам. Упорядочивание последовательности кадров осуществляется на уровне FC-2. Утилизация доступной полосы пропускания ниже, чем в Классе 1, по причине включения механизмов регулирования потока на покадровой основе.
  • Класс 3 — Unacknowledged Connectionless Service, иногда называется Datagram Connectionless Service (передачи без организации соединения и без подтверждения). Схож с предыдущим классом, за исключением того, что в нем не существует подтверждения доставки. Пропускная способность в отсутствие ошибок, из-за отсутствия подтверждений немного увеличивается (от 0% до 3%), в сравнении с классом 2, однако гарантий доставки нет.  Упорядоченная доставка кадров не гарантирована. Упорядочивание последовательности кадров осуществляется на уровне FC-2, запрос на повторную передачу потерянных кадров осуществляется протоколами верхних уровней. При возникновении ошибок в передаче, а также если кадр отклоняется или ресурс занят, кадр теряется, и подключаются протоколы верхних уровней. Пропускная способность снижается, поскольку у протоколов верхних уровней время реакции и тайм-ауты существенно выше, чем на уровне FC-2. Однако для протоколов реального времени, задержка с повтором может быть такой, что передаваемая информация уже устарела. Данный класс применяется для организации многоадресных и широковещательных рассылок, также используется в системах массовой памяти. Это наиболее распространенный класс коммутируемых FC-сетей, поскольку наиболее прост в реализации и в нем работают наиболее распространенные протоколы верхних уровней SCSI и IP.
  • Класс 4 — Fractional Bandwidth Connection-oriented Service (соединение с дробной полосой пропускания) между N_Ports. Схож с Классом 1, поскольку также предполагает установление соединения, подтверждение доставки, фиксированную задержку, соблюдение порядка кадров. Соединение устанавливается в виде виртуального канала с полосой пропускания между портами. Полоса достаточна для предоставления услуг с предсказуемым качеством. Виртуальный двунаправленный канал состоит двух однонаправленных виртуальных соединений (Virtual Circuit, VC), причем на каждом VC могут обеспечиваться различные QoS. Каждый N_port может устанавливать несколько таких соединений (до 254). Применяется для критичных ко времени доставки данных (видео-, аудиопотоки).
  • Класс 5 — Isochronous Service (изохронное соединение). Не стандартизован. Предназначается для приложений, требующих немедленной доставки данных без промежуточной буферизации.
  • Класс 6 — Unidirectional Connection Service (однонаправленное соединение). Аналогичен Классу 1, однако является исключительно однонаправленным. Используется для широковещательных и многоадресных рассылок через соответствующий сервер. N_port может затребовать соединения Класса 6 на одно или несколько устройств (портов). Установленное соединение существует, пока инициатор в явном виде не закроет его. Применяется для доставки трафика реального времени (видео-, аудиопотоки).
  • Смешанный класс — Intermix — подвид класса 1. Позволяет передавать кадры класса 2 или 3 в те моменты, когда приложение первого класса не занимает канал. При этом кадры классов 2 или 3 необязательно должны быть адресованы тому же получателю, что и у класса 1. Разработан для частичного устранения блокировки фабрики передачами первого класса.
  • Класс F — применяется для управления и передачи служебной информации. Передача осуществляется без установления соединения по Inter Switch Links (ISL) между E_ports.

Стандарт FC-PH определяет Классы 1-3, Класс 4 определается в стандарте FC-PH-2 (в FC-FS-2 установлен устарелым), Класс 5 - для изохронного режима, однако недостаточно стандартизирован, Класс 6 определился в стандарте FC-PH-3, Класс F — в стандартах FC-SW и FC-SW2.

Где применяется?

Fibre Channel широко применяется для создания сетей хранения данных (Storage Area Networks). Высокая скорость передачи данных, низкая задержка и расширяемость, не имеющая аналогов в этой области делают Fibre Channel поистине уникальным интерфейсом. Впрочем, за последние несколько лет, область его применения постепенно перемещается в сегмент высокопроизводительных систем, бюджетный сегмент активно осваивается недорогими решениями iSCSI, простренными на базе Gigabit Ethernet и 10G Ethernet.

#