Книга: Серверные технологии хранения данных в среде Windows® 2000 Windows® Server 2003

4.6 Протокол Fibre Channel

4.6 Протокол Fibre Channel

В общем контексте Fibre Channel – это набор стандартов, разработанных в Национальном институте стандартизации США. Интерфейс Fibre Channel предоставляет высокопроизводительное последовательное подключение между хостом и единицами хранения, а также между самими единицами хранения. Стандарт позволяет обеспечить высокоскоростную передачу данных в сетях с топологией «точка-точка» и кольцо. Более того, Fibre Channel предоставляет все эти возможности вместе с проверкой ошибок.

В стандарте Fibre Channel определено пять функциональных уровней: от FC-0 до FC-4. Уровни рассматриваются в разделах 4.6.1–4.6.5. Обратите внимание, что по практическим соображениям уровни FC-0, FC-1 и FC-2 реализуются аппаратно.

4.6.1 Уровень FC-0

Определяет физические характеристики интерфейса и носителя. В частности, посредством FC-0 определяются спецификации уровней сигналов, носителя и получателей/отправителей. Уровень FC-0 позволяет использовать несколько интерфейсов, что дает возможность выбирать разные скорости передачи данных и различные передающие среды. В качестве примера физической передающей среды можно привести медный провод, одномодовый и мно- гомодовый кабели. Скорость передачи варьируется от 12,5 до 106,25 Мбайт/с.

Те, кто знаком с семиуровневой сетевой моделью ISO OSI[7], могут заметить, что FC-0 соответствует седьмому уровню модели ISO OSI.

4.6.2 Уровень FC-1

Определяет схемы кодирования и декодирования данных, сигналов и специальных символов, а также управление ошибками. Кроме того, уровень FC-1 отвечает за обслуживание лйЬий связи.

Уровень FC-1 использует схему кодирования, которая называется 8В/10В. Схема проектировалась для того, чтобы обеспечить следующее:

эффективную синхронизацию данных;

расширенное обнаружение ошибок;

эффективное обнаружение управляющих символов;

упрощенное проектирование аппаратного обеспечения приемников/передатчиков.

Схема кодирования 8В/10В преобразует каждые 8 бит в два возможных значения, объемом 10 бит. Эти 10 бит используются в виде Ann. m, где А – значение К для индикации команды или D для индикации данных; гш – десятичное значения последних пяти битов байта; М – десятичное значение первых трех битов байта.

Два возможных значения появляются потому, что посредством спецификации выбирается одно из значений для кодирования данных при их передаче на базе недавней истории передачи. Это необходимо для того, чтобы обеспечить минимальное количество переходов состояния (между 0 и 1), что повысит эффективность передачи. Недавняя история передачи называется динамическим рассогласованием.

Как уже отмечалось, все данные кодируются с помощью 10 бит. Некоторые неиспользованные 10-битовые символы (в контексте данных) применяются для отделения фреймов и сигналов, включая сигналы о готовности порта для принятия данных, а также другие типы сигналов. Основное внимание уделяется обнаружению и исправлению ошибок на этапе передачи. Данные Fibre Channel всегда передаются группами по 4 байта, которые называются словами передачи (transmission words).

4.6.3 Уровень FC-2

Определяет передачу данных от одного узла к другому, т.е. непосредственно транспортный механизм. Уровень FC-2 формирует кадры, определяет классы обслуживания и службы регистрации связной архитектуры или портов. Этот уровень можно представить в качестве аналога уровню MAC (Media Access Control) в модели ISO OS1.


Рис. 4.4. Иерархия передачи данных Fibre Channel

Уровень FC-2 определяет:

иерархию передачи данных Fibre Channel, которая включает в себя упорядоченные множества, кадры, последовательности и обмены;

управление потоком Fibre Channel;

протоколы FC-2;

классы обслуживания FC-2.

Эти компоненты рассматриваются в разделах 4.6.3.1 4.6.3.7, но перед этим следует выяснить, как соединяются различные структурные элементы иерархии.

В Fibre Channel данные передаются с помощью кадров (frame). Кадр представляет собой эквивалент пакета TCP/IP. Кадры создаются из упорядоченных множеств и символов данных. Несколько кадров группируются вместе и формируют последовательность, а несколько последовательностей формируют обмен (exchange). Это демонстрируется на рис. 4.4.

В разделах 4.6.3.1–4.6.3.4 все эти компоненты рассматриваются более подробно.

4.6.3.1 Упорядоченные множества Fibre Channel

Упорядоченные множества – это структуры последовательной передачи данных объемом 4 байта, которые представляют собой специальные символы или сигналы линии связи. Далее приведены примеры подобных множеств.

Разделители кадров SOF (Start Of Frame) и EOF (End Of Frame), которые являются аналогами пакетов SOF и EOF в сетях Ethernet. В отличие от Ethernet, в Fibre Channel определено несколько вариантов SOF и EOF, поскольку уровнем FC-1 используется схема кодирования, формирующая несколько представлений для каждого передаваемого символа.

Два базовых сигнала для указания состояния порта.

Idle – указание, что порт готов для передачи или приема данных.

Receiver Ready – указание, что буфер интерфейса (устройства взаимодействия) готов для приема данных.

Базовая последовательность. Простое упорядоченное множество, которое регулярно передается для указания особого статуса порта. К особым статусам относятся:

Not Operational (NOS) – используется только в сетях с топологией «точка-точка» или в связной архитектуре (но не в кольце с разделением доступа) для указания на отказ в работе линии связи или появление определенной ошибки;

Offline (OLS) – передается во время инициализации порта или при получении базового статуса NOS; таким образом, в ответ на NOS порт отправляет ответ OLS;

Link Reset (LR) – используется для указания на необходимость повторной инициализации линии связи;

Link Reset Response (LS) – используется для указания, что данные LR получены и обработаны.

4.6.3.2 Кадр Fibre Channel

Как пакет IP является базовым элементом протокола Internet (IP), так ? и кадр представляет собой основной структурный элемент интерфейса Fibre Channel. Существует три типа кадров.

1. Кадры управления линией связи (link control frames), используемые для отправки команды управления линией связи.


Рис. 4.5. Заголовок кадра Fibre Channel

Кадры данных линии связи (link data frames), используемые для отправки данных, необходимых для управления линией связи.

Кадры данных устройства (device data frames), которые содержат данные для протоколов более высокого уровня, например данные, считанные с жесткого диска.

На рис. 4.5 показан заголовок кадра Fibre Channel. Кадр проектировался для передачи 2048 байт данных и необйзательного заголовка размером 64 байт. Подобный размер кадра позволяет передавать за один раз большой объем данных с минимальными накладными расходами (около 1,5%). Однако при этом другому узлу придется ждать, пока завершится передача большого кадра, что подразумевает увеличение задержек в передаче. Сравним это с протоколом ATM (Asynchronous Transfer Mode), где кадр имеет размер 53 байт и накладные расходы протокола составляют около 10%. Это позволяет снизить задержки, но время передачи определенного объема данных возрастает.

Каждый кадр начинается и заканчивается специальным ограничителем, как и в других сетевых протоколах. Это SOF и EOF соответственно. Каждый кадр имеет заголовок, выполняющий несколько функций. Одна из них – это предоставление адресов назначения и источника для обеспечения коммута-

дии данных. Еще одна задача состоит в переносе информации для управления линией связи, включая управление самой передачей.

Другие поля заголовка кадра Fibre Channel рассматриваются ниже.

Поле Destination_Id используется для маршрутизации кадра. В топологиях «точка-точка» и кольцо с разделением доступа маршрутизация может проходить обычным образом, что не относится к топологии коммутируемой связной архитектуры. Поле Source_Id предназначено для передачи сообщений об ошибках и для предотвращения циклов данных при маршрутизации.

Поля R_CTL и Туре используются для сортировки различных кадров уровня FC-4 по их прибытию в точку назначения. Таким образом, эти поля указывают, содержит ли прибывший кадр данные интерфейса SCSI, протокола IP или другие данные. Значения поля Туре описываются в табл. 4.3.

Поле R_CTL используется для указания содержимого кадра. Кадр может содержать данные или информацию для управления линией связи; в последнем случае кадры могут быть запрошенными и незапрошенными.

Таблица 4.3. Значения поля Туре в кадрах Fibre Channel


Поле F_CTL используется для описания информации кадра, например первой или последней последовательности.

Поле DF_CTL указывает на присутствие или отсутствие необязательных заголовков.

Поля SEQ_Id и SEQ_CNT уникально идентифицируют счетчик последовательности обмена (см. раздел 4.6.3.3).

Поле 0X_Id (идентификатор обмена источника) используется для связывания кадра с определенным обменом исходного порта.

Доле RX_Id (идентификатор обмена ответчика) используется для связывания кадра с определенным обменом отвечающего порта.

Поле Relative Offset идентифицирует относительное смещение первого байта основного содержания кадра от базового адреса.

4.6.3.3 Последовательность Fibre Channel

Последовательность представляет собой набор кадров, которые передаются из одной точки в другую. Для исправления возможных ошибок каждый кадр содержит уникальный счетчик последовательности. Исправление ошибок осуществляется протоколом более высокого уровня, обычно на уровне FC-4. Обратите внимание, что все кадры в последовательности передаются в одном направлении (а не в обоих одновременно). На рис. 4.4 показано, как кадры, последовательности и обмены взаимодействуют друг с другом.

4.6.3.4 Обмен Fibre Channel

Несколько последовательностей составляют обмен (exchange). Обмены представляют собой последовательности двусторонних направлений; т.е. в обмен входят последовательности данных, передающихся в разных направлениях, хотя каждая последовательность передается только в одном направлении. При каждом обмене только одна последовательность может быть активна в текущий момент времени. Но, так как одновременно могут быть активны несколько обменов, различные последовательности из этих обменов также могут быть активны одновременно.

Каждый обмен выполняет одну функцию, например реализует команду SCSI Read.

4.6.3.5 Управление потоком Fibre Channel

Конечные узлы Fibre Channel взаимодействуют непосредственно друг с другом и не создают сеансовых подключений к промежуточным узлам.

Устройства не «подозревают» о коммутаторе связной архитектуры и концентраторе. Конечно, при этом коммутаторы и концентраторы обмениваются пакетами управления потоком с этими устройствами.

Механизм управления потоком требует, чтобы передающий порт не отправлял кадры быстрее, чем принимающий порт может их обработать. Порты Fibre Channel имеют буфера для временного хранения кадров и последующей их обработки. Под обработкой подразумевается отправка кадра на другой порт или передача кадра протоколу более высокого уровня. Схема управления потоком, которая используется в Fibre Channel, очень напоминает протокол плавающего окна в TCP/IP. Размер окна, представляющий собой количество кадров, которые можно отправить без подтверждения их приема, устанавливается сторонами обмена заранее. При этом согласованное значение не может быть изменено. Для каждого отправленного кадра размер окна уменьшается на единицу, а для каждого подтвержденного кадра – увеличивается на единицу. Управление потоком может осуществляться одним из двух способов: «точка-точка» или «буфер-буфер». При этом требуется совместное использование обоих методов.

Управление потоком по схеме «точка-точка» осуществляется между двумя конечными точками: источником данных (например, сервером) и получателем данных (например, жестким диском). Управление потоком «точка- точка» проводится между двумя портами типа N (между ними могут находиться промежуточные узлы). Два порта типа N регистрируют друг друга, в процессе чего каждый порт выделяет для себя определенное количество буферов у другого порта. Это количество называется резервированием буфера. Отправитель может отправлять количество кадров, не превышающее это значение. Получатель отправляет кадр АСК (позитивное подтверждение) для каждого успешно полученного и обработанного кадра, а отправитель при получении кадра АСК может увеличить значение резервирования (credit count) на единицу для каждого полученного кадра АСК. Получатель может подтвердить успешное получение нескольких кадров или даже целой последовательности и получатель должен будет, не ожидая подтверждения для каждого кадра в отдельности, увеличить количество кадров, которое можно отправлять.

Управление потоком по схеме «буфер-буфер» выполняется между двумя соседними узлами, которые представляют собой промежуточные узлы или находятся между конечным и промежуточным узлом. Таким образом, управление потоком от буфера к буферу выполняется между портами типа N или между портом F и портом N. Кале уже отмечалось, порты обменивают-г ся данными, указывающими на количество буферов, зарезервированных для каждого узла. Эти значения могут отличаться, например один порт может выделить два буфера, а второй – четыре буфера. Получение кадра подтверждается кадром Receiver Ready, а не кадром АСК как в управлении потоком «точка-точка».

4.6.3.6 Протоколы FC-2

В стандартах Fibre Channel определены протоколы для управления передачей данных и линией связи. Кроме того, описаны дополнительные стандарты для поддержки протоколов более высокого уровня, применяемых на уровне FC-4. Эти протоколы описаны ниже.

Протокол Fabric Login, который определяет обмен параметрами между портом и коммутатором связной архитектуры. Протокол и служба Fabric Login более подробно описываются в разделе 4.4.3.6.

Протокол Port Login, требующий, чтобы независимо от топологии («точка-точка», кольцо с разделением доступа или коммутируемая связная архитектура) два порта проводили взаимную регистрацию перед подключением друг к другу. Взаимная регистрация выполняется с помощью специального кадра PL0GI. С помощью протокола Port Login обеспечивается использование двух важных функций.

Возможность получения информации о порте N, на котором выполняется регистрация. К такой информации относится описание классов обслуживания, поддерживаемых портом N.

Инициализация буфера резервирования для управления потоком «точка-точка». Обратите внимание, что в контексте прямого подключения управление потоком «точка-точка» ничем не отличается от управления потоком «буфер-буфер».

Протокол Data Transfer, определяющий, как данные протокола верхнего уровня (уровня FC-4) передаются с помощью схем управления потоком, описанных в разделе 4.6.3.5.

Протокол Arbitrated Loop, который определяет методы инициализации и управления кольцом.

4.6.3.7 Классы обслуживания FC-2

Интерфейс Fibre Channel проектировался для обеспечения различных способов передачи данных. Ряд служб отличается такими характеристиками:

тип сервисного подключения, т.е. аналогично TCP или без установки подключения, как в UDP;

поддержка многоабонентской доставки (multicast);

поддержка уведомления о доставке или невыполненной доставке;

поддержка гарантированной доставки кадров в том же порядке, в котором они были отправлены;

тип предоставляемых служб, например резервирование пропускной способности для соединения, если служба ориентирована на соединение;

тип механизмов управления потоком данных.

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

Тип Class 1 определяет выделенное подключение, подобное подключению TCP/IP. Как и в TCP, Class 1 гарантирует, что кадры доставляются в той же последовательности, в которой они были отправлены. Тип Class 1 используется при передаче больших объемов данных, когда время, потраченное на установку соединения, на порядок меньше времени, необходимого для передачи данных.

Тип Class 2 определяет обслуживание без подключения (по аналогии с дейтаграммами), при котором кадры потенциально могут быть доставлены не в той последовательности, в которой они отправлялись (что подразумевает смену последовательности кадров протоколом более высокого уровня). Как и в случае использования сетевых протоколов, обслуживание Class 2 имеет смысл тогда, когда объем передаваемых данных достаточно мал и накладные расходы на установку соединения сравнимы с расходами на передачу самих данных. Получатель кадра Class 2 должен'отправить подтверждение при получении кадра.

Тип Class 3 также подразумевает обслуживание без установки подключения. Основное отличие от Class 2 состоит в том, что подтверждать успешное получение кадра нет необходимости. Это сравнимо с дейтаграммами IP, метод использования которых иногда в шутку называется «отправь и молись».

Тип Class 4, который также называется Intermix, является необязательным классом обслуживания. Класс гарантирует определенную пропускную способность кадрам Class 1, а оставшаяся пропускная способность используется для кадров Class 2 и Class 3;

Тип Class 6 представляет собой однонаправленное, ориентированное на подключение обслуживание с предоставлением возможности многоабонентской доставки (Class 5 зарезервирован).

В табл. 4.4 собрана вся информация о классах обслуживания Fibre Channel.

Обратите внимание, что большинство поставщиков поддерживают классы 1, 2 и 3. В то же время некоторые поставщики поддерживают только классы, не ориентированные на соединение (Class 2 и Class 3).



4.6.4 Уровень FC-3

Определяет общие службы, включая службы по управлению и общему транспортному механизму. Уровень FC-3 – общий для всех портов узла. Уровни FC-1, FC-2 и FC-4 реализованы отдельно для каждого порта. В этой схеме поддерживается использование разными портами различной конфигурации (рис. 4.6). Например, один порт может передавать данные SCSI, а другой в это же время будет передавать данные ATM.

Кроме того, обратите внимание, что уровни FC-0, FC-1 и FC-2 относятся к различным портам, а уровень FC-3 относится к узлу. Верхний уровень FC-4 также относится к порту. На рис. 4.6 показан узел с четырьмя портами и двумя протоколами верхнего уровня – SCSI и IP. Если бы узел поддерживал больше протоколов верхнего уровня, на диаграмме присутствовали бы дополнительные блоки FC-4.

Далее представлены некоторые функции, реализованные на уровне FC-3.

Транкинг (trunking) или канальное уплотнение (striping), при котором параллельные линии связи и порты «сворачиваются» для обеспечения большей пропускной способности между узлами.

Многоабонентская доставка, при которой единая передача данных может быть направлена одновременно к нескольким портам. Реализуется посредством службы регистрации на коммутаторе связной архитектуры, с помощью которой узлы регистрируются и отменяют регистрацию для многоабонентской доставки. Доставка в этом случае очень похожа на режим групповой отправки (multicast) в IP. Обратите внимание: многоабонентская доставка может осуществляться на все порты коммутато-

pa связной архитектуры, т.е. может использоваться как широковещание (broadcast).

Свободный поиск (hunting), при котором несколько портов используют одинаковый псевдоним. Это похоже на объединение нескольких телефонных линий компании под одним номером, когда звонок на этот номер перенаправляется на одну из свободных линий. Очевидным преимуществом такой схемы будет повышение вероятности получить свободный порт.

Компания Brocade одна из многих реализует функцию транкинга в своих продуктах, хотя функция получила названия ISL (Inter Switch Link) Trunking. Называние подчеркивает высокую производительность коммутаторов Brocade, которые предназначены для подключения к другим коммутаторам, а не к серверам и устройствам хранения данных. Обратите внимание, что тран- кинг поддерживается и другими поставщиками.

4.6.5 Уровень FC-4

Определяет связывание протоколов верхнего уровня с Fibre Channel. Вот эти протоколы (со временем будет реализована поддержка и других протоколов):

SCSI;

IP;

IPI (Intelligent Peripheral Interface);

HIPPI (High-Performance Parallel Interface);

IEEE 802.2;

SBCCS (Single-Byte Command Code Sets);

AAL5 (ATM Adaptation Layer);

FC-LE (Link Encapsulation).

Обратите внимание: одна линия связи Fibre Channel может одновременно передавать пакета данных нескольких протоколов верхнего уровня.

Оглавление книги


Генерация: 0.036. Запросов К БД/Cache: 0 / 0
поделиться
Вверх Вниз